25     : m_Strategy(
std::move(strategy)){};
 
   40                                                const std::vector<Slice>& slices)
 const 
   58                               const std::vector<Slice>& slices)
 const 
   76     const complex_t result = (polarization * R.adjoint() * analyzer * R).trace();
 
   78     return std::abs(result);
 
   91                               const std::vector<Slice>& slices)
 const 
std::complex< double > complex_t
 
Defines class DelayedProgressCounter.
 
Defines and implements class ILayerRTCoefficients.
 
Defines classes SpecularComputationTerm, SpecularScalarTerm, SpecularMatrixTerm.
 
Declares the class SpecularSimulationElement.
 
Eigen::Matrix2cd getAnalyzerOperator() const
Gets the polarization analyzer operator (in spin basis along z-axis)
 
Eigen::Matrix2cd getPolarization() const
Gets the polarization density matrix (in spin basis along z-axis)
 
Maintains information about progress of a computation.
 
Computes the specular scattering.
 
std::unique_ptr< ISpecularStrategy > m_Strategy
 
std::unique_ptr< DelayedProgressCounter > m_progress_counter
 
virtual void eval(SpecularSimulationElement &elem, const std::vector< Slice > &slices) const =0
 
void setProgressHandler(ProgressHandler *p_progress)
 
virtual ~SpecularComputationTerm()
 
void computeIntensity(SpecularSimulationElement &elem, const std::vector< Slice > &slices) const
 
SpecularComputationTerm(std::unique_ptr< ISpecularStrategy > strategy)
 
void eval(SpecularSimulationElement &elem, const std::vector< Slice > &slices) const override
 
~SpecularMatrixTerm() override
 
SpecularMatrixTerm(std::unique_ptr< ISpecularStrategy > strategy)
 
SpecularScalarTerm(std::unique_ptr< ISpecularStrategy > strategy)
 
void eval(SpecularSimulationElement &elem, const std::vector< Slice > &slices) const override
 
~SpecularScalarTerm() override
 
Data stucture containing both input and output of a single image pixel for specular simulation.
 
bool isCalculated() const
Returns calculation flag (if it's false, zero intensity is assigned to the element)
 
std::vector< complex_t > produceKz(const std::vector< Slice > &slices)
Returns kz values for Abeles computation of reflection/transition coefficients.
 
void setIntensity(double intensity)
 
const PolarizationHandler & polarizationHandler() const
Returns assigned PolarizationHandler.