BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Classes | |
class | HashKVector |
Public Member Functions | |
MatrixFresnelMap (std::unique_ptr< ISpecularStrategy > strategy) | |
~MatrixFresnelMap () override | |
MatrixFresnelMap (const MatrixFresnelMap &other)=delete | |
MatrixFresnelMap & | operator= (const MatrixFresnelMap &other)=delete |
std::unique_ptr< const ILayerRTCoefficients > | getOutCoefficients (const SimulationElement &sim_element, size_t layer_index) const final override |
void | setSlices (const std::vector< Slice > &slices) final override |
template<typename T > | |
std::unique_ptr< const ILayerRTCoefficients > | getInCoefficients (const T &sim_element, size_t layer_index) const |
const std::vector< Slice > & | slices () const |
void | disableCaching () |
Protected Attributes | |
std::vector< Slice > | m_slices |
bool | m_use_cache |
std::unique_ptr< ISpecularStrategy > | m_Strategy |
Private Types | |
using | CoefficientHash = std::unordered_map< kvector_t, ISpecularStrategy::coeffs_t, HashKVector > |
Private Member Functions | |
std::unique_ptr< const ILayerRTCoefficients > | getCoefficients (const kvector_t &kvec, size_t layer_index) const override |
std::unique_ptr< const ILayerRTCoefficients > | getCoefficients (const kvector_t &kvec, size_t layer_index, const std::vector< Slice > &slices, CoefficientHash &hash_table) const |
const ISpecularStrategy::coeffs_t & | getCoefficientsFromCache (kvector_t kvec, const std::vector< Slice > &slices, CoefficientHash &hash_table) const |
Private Attributes | |
std::vector< Slice > | m_inverted_slices |
CoefficientHash | m_hash_table_out |
CoefficientHash | m_hash_table_in |
Implementation of IFresnelMap for matrix valued reflection/transmission coefficients.
Definition at line 34 of file MatrixFresnelMap.h.
|
private |
Definition at line 57 of file MatrixFresnelMap.h.
MatrixFresnelMap::MatrixFresnelMap | ( | std::unique_ptr< ISpecularStrategy > | strategy | ) |
Definition at line 21 of file MatrixFresnelMap.cpp.
|
overridedefault |
|
delete |
|
delete |
|
finaloverridevirtual |
Retrieves the amplitude coefficients for a (time-reversed) outgoing wavevector.
Implements IFresnelMap.
Definition at line 34 of file MatrixFresnelMap.cpp.
References getCoefficients(), SimulationElement::getMeanKf(), m_hash_table_out, and m_inverted_slices.
|
finaloverridevirtual |
Reimplemented from IFresnelMap.
Definition at line 40 of file MatrixFresnelMap.cpp.
References m_inverted_slices, IFresnelMap::setSlices(), and IFresnelMap::slices().
|
overrideprivatevirtual |
Implements IFresnelMap.
Definition at line 51 of file MatrixFresnelMap.cpp.
References m_hash_table_in, and IFresnelMap::m_slices.
Referenced by getOutCoefficients().
|
private |
Definition at line 57 of file MatrixFresnelMap.cpp.
References getCoefficientsFromCache(), IFresnelMap::m_Strategy, IFresnelMap::m_use_cache, and IFresnelMap::slices().
|
private |
Definition at line 70 of file MatrixFresnelMap.cpp.
References IFresnelMap::m_Strategy, and IFresnelMap::slices().
Referenced by getCoefficients().
|
inlineinherited |
Retrieves the amplitude coefficients for an incoming wavevector.
Definition at line 41 of file IFresnelMap.h.
References IFresnelMap::getCoefficients().
Referenced by DepthProbeComputationTerm::compute(), GISASSpecularComputation::compute(), FormFactorCoherentPart::evaluate(), FormFactorCoherentPart::evaluatePol(), and RoughMultiLayerComputation::get_sum8terms().
|
inherited |
Definition at line 28 of file IFresnelMap.cpp.
References IFresnelMap::m_slices.
Referenced by getCoefficients(), getCoefficientsFromCache(), IFresnelMap::setSlices(), and setSlices().
|
inherited |
Disables caching of previously computed Fresnel coefficients.
Definition at line 35 of file IFresnelMap.cpp.
References IFresnelMap::m_use_cache.
|
private |
Definition at line 65 of file MatrixFresnelMap.h.
Referenced by getOutCoefficients(), and setSlices().
|
mutableprivate |
Definition at line 66 of file MatrixFresnelMap.h.
Referenced by getOutCoefficients().
|
mutableprivate |
Definition at line 67 of file MatrixFresnelMap.h.
Referenced by getCoefficients().
|
protectedinherited |
Definition at line 57 of file IFresnelMap.h.
Referenced by getCoefficients(), ScalarFresnelMap::getCoefficients(), ScalarFresnelMap::getCoefficientsFromCache(), IFresnelMap::setSlices(), and IFresnelMap::slices().
|
protectedinherited |
Definition at line 58 of file IFresnelMap.h.
Referenced by IFresnelMap::disableCaching(), ScalarFresnelMap::getCoefficients(), and getCoefficients().
|
protectedinherited |
Definition at line 60 of file IFresnelMap.h.
Referenced by ScalarFresnelMap::getCoefficients(), getCoefficients(), ScalarFresnelMap::getCoefficientsFromCache(), and getCoefficientsFromCache().