15 #ifndef BORNAGAIN_CORE_MULTILAYER_MATRIXFRESNELMAP_H 
   16 #define BORNAGAIN_CORE_MULTILAYER_MATRIXFRESNELMAP_H 
   23 #include <unordered_map> 
   43     std::unique_ptr<const ILayerRTCoefficients>
 
   45                        size_t layer_index) 
const final override;
 
   47     void setSlices(
const std::vector<Slice>& slices) 
final override;
 
   54         size_t operator()(
const kvector_t& kvec) 
const noexcept;
 
   57     using CoefficientHash = std::unordered_map<kvector_t, ISpecularStrategy::coeffs_t, HashKVector>;
 
   59     std::unique_ptr<const ILayerRTCoefficients> getCoefficients(
const kvector_t& kvec,
 
   60                                                                 size_t layer_index) 
const override;
 
   61     std::unique_ptr<const ILayerRTCoefficients> getCoefficients(
const kvector_t& kvec,
 
   63                                                                 const std::vector<Slice>& slices,
 
   64                                                                 CoefficientHash& hash_table) 
const;
 
   65     std::vector<Slice> m_inverted_slices;
 
   66     mutable CoefficientHash m_hash_table_out;
 
   67     mutable CoefficientHash m_hash_table_in;
 
   69     const ISpecularStrategy::coeffs_t& getCoefficientsFromCache(
kvector_t kvec,
 
   70                                                                 const std::vector<Slice>& slices,
 
   71                                                                 CoefficientHash& hash_table) 
const;
 
Defines class IFresnelMap.
 
Defines class MatrixRTCoefficients.
 
Defines class SpecularMagneticStrategy.
 
Holds the necessary information to calculate the radiation wavefunction in every layer for different ...
 
Interface to access reflection/transmission coefficients.
 
Implementation of IFresnelMap for matrix valued reflection/transmission coefficients.
 
std::unique_ptr< const ILayerRTCoefficients > getOutCoefficients(const SimulationElement &sim_element, size_t layer_index) const final override
Retrieves the amplitude coefficients for a (time-reversed) outgoing wavevector.
 
Data stucture containing both input and output of a single detector cell.
 
Data structure containing the data of a single slice, for calculating the Fresnel coefficients.