15 #ifndef BORNAGAIN_CORE_MULTILAYER_SCALARFRESNELMAP_H
16 #define BORNAGAIN_CORE_MULTILAYER_SCALARFRESNELMAP_H
21 #include <unordered_map>
41 std::unique_ptr<const ILayerRTCoefficients>
49 size_t operator()(
const std::pair<double, double>& doubles)
const noexcept;
52 std::unique_ptr<const ILayerRTCoefficients> getCoefficients(
const kvector_t& kvec,
53 size_t layer_index)
const override;
54 const ISpecularStrategy::coeffs_t& getCoefficientsFromCache(
kvector_t kvec)
const;
55 mutable std::unordered_map<std::pair<double, double>, ISpecularStrategy::coeffs_t, Hash2Doubles>
Defines class IFresnelMap.
Defines class ScalarRTCoefficients.
Holds the necessary information to calculate the radiation wavefunction in every layer for different ...
Interface to access reflection/transmission coefficients.
Implementation of IFresnelMap for scalar valued reflection/transmission coefficients.
std::unique_ptr< const ILayerRTCoefficients > getOutCoefficients(const SimulationElement &sim_element, size_t layer_index) const 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.