BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IFresnelMap Class Referenceabstract
Inheritance diagram for IFresnelMap:
Collaboration diagram for IFresnelMap:

Public Member Functions

 IFresnelMap (std::unique_ptr< ISpecularStrategy > strategy)
 
virtual ~IFresnelMap ()
 
virtual std::unique_ptr< const ILayerRTCoefficientsgetOutCoefficients (const SimulationElement &sim_element, size_t layer_index) const =0
 
template<typename T >
std::unique_ptr< const ILayerRTCoefficientsgetInCoefficients (const T &sim_element, size_t layer_index) const
 
virtual void setSlices (const std::vector< Slice > &slices)
 
const std::vector< Slice > & slices () const
 
void disableCaching ()
 

Protected Member Functions

virtual std::unique_ptr< const ILayerRTCoefficientsgetCoefficients (const kvector_t &kvec, size_t layer_index) const =0
 

Protected Attributes

std::vector< Slicem_slices
 
bool m_use_cache
 
std::unique_ptr< ISpecularStrategym_Strategy
 

Detailed Description

Holds the necessary information to calculate the radiation wavefunction in every layer for different incoming (outgoing) angles of the beam in the top layer (these amplitudes correspond to the specular part of the wavefunction).

Definition at line 29 of file IFresnelMap.h.

Constructor & Destructor Documentation

◆ IFresnelMap()

IFresnelMap::IFresnelMap ( std::unique_ptr< ISpecularStrategy strategy)

Definition at line 18 of file IFresnelMap.cpp.

19  : m_use_cache(true), m_Strategy(std::move(strategy))
20 {
21 }
std::unique_ptr< ISpecularStrategy > m_Strategy
Definition: IFresnelMap.h:60
bool m_use_cache
Definition: IFresnelMap.h:58

◆ ~IFresnelMap()

IFresnelMap::~IFresnelMap ( )
virtualdefault

Member Function Documentation

◆ getOutCoefficients()

virtual std::unique_ptr<const ILayerRTCoefficients> IFresnelMap::getOutCoefficients ( const SimulationElement sim_element,
size_t  layer_index 
) const
pure virtual

Retrieves the amplitude coefficients for a (time-reversed) outgoing wavevector.

Implemented in ScalarFresnelMap, and MatrixFresnelMap.

Referenced by FormFactorCoherentPart::evaluate(), and FormFactorCoherentPart::evaluatePol().

◆ getInCoefficients()

template<typename T >
std::unique_ptr<const ILayerRTCoefficients> IFresnelMap::getInCoefficients ( const T &  sim_element,
size_t  layer_index 
) const
inline

Retrieves the amplitude coefficients for an incoming wavevector.

Definition at line 41 of file IFresnelMap.h.

43  {
44  return getCoefficients(sim_element.getKi(), layer_index);
45  }
virtual std::unique_ptr< const ILayerRTCoefficients > getCoefficients(const kvector_t &kvec, size_t layer_index) const =0

References getCoefficients().

Referenced by DepthProbeComputationTerm::compute(), GISASSpecularComputation::compute(), FormFactorCoherentPart::evaluate(), FormFactorCoherentPart::evaluatePol(), and RoughMultiLayerComputation::get_sum8terms().

Here is the call graph for this function:

◆ setSlices()

void IFresnelMap::setSlices ( const std::vector< Slice > &  slices)
virtual

Reimplemented in MatrixFresnelMap.

Definition at line 23 of file IFresnelMap.cpp.

24 {
25  m_slices = slices;
26 }
std::vector< Slice > m_slices
Definition: IFresnelMap.h:57
const std::vector< Slice > & slices() const
Definition: IFresnelMap.cpp:28

References m_slices, and slices().

Referenced by MatrixFresnelMap::setSlices().

Here is the call graph for this function:

◆ slices()

const std::vector< Slice > & IFresnelMap::slices ( ) const

◆ disableCaching()

void IFresnelMap::disableCaching ( )

Disables caching of previously computed Fresnel coefficients.

Definition at line 35 of file IFresnelMap.cpp.

36 {
37  m_use_cache = false;
38 }

References m_use_cache.

◆ getCoefficients()

virtual std::unique_ptr<const ILayerRTCoefficients> IFresnelMap::getCoefficients ( const kvector_t kvec,
size_t  layer_index 
) const
protectedpure virtual

Implemented in ScalarFresnelMap, and MatrixFresnelMap.

Referenced by getInCoefficients().

Member Data Documentation

◆ m_slices

std::vector<Slice> IFresnelMap::m_slices
protected

◆ m_use_cache

bool IFresnelMap::m_use_cache
protected

◆ m_Strategy


The documentation for this class was generated from the following files: