BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
IFresnelMap Class Referenceabstract

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). More...

Inheritance diagram for IFresnelMap:
[legend]

Public Member Functions

 IFresnelMap (std::unique_ptr< ISpecularStrategy > strategy)
 
virtual ~IFresnelMap ()
 
void disableCaching ()
 Disables caching of previously computed Fresnel coefficients. More...
 
template<typename T >
std::unique_ptr< const ILayerRTCoefficientsgetInCoefficients (const T &sim_element, size_t layer_index) const
 Retrieves the amplitude coefficients for an incoming wavevector. More...
 
virtual std::unique_ptr< const ILayerRTCoefficientsgetOutCoefficients (const SimulationElement &sim_element, size_t layer_index) const =0
 Retrieves the amplitude coefficients for a (time-reversed) outgoing wavevector. More...
 
virtual void setSlices (const std::vector< Slice > &slices)
 
const std::vector< Slice > & slices () const
 

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
 
std::unique_ptr< ISpecularStrategym_Strategy
 
bool m_use_cache
 

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 34 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:64
bool m_use_cache
Definition: IFresnelMap.h:62

◆ ~IFresnelMap()

IFresnelMap::~IFresnelMap ( )
virtualdefault

Member Function Documentation

◆ 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().

◆ 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 45 of file IFresnelMap.h.

47  {
48  return getCoefficients(sim_element.getKi(), layer_index);
49  }
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:

◆ 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().

◆ 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:61
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

Member Data Documentation

◆ m_slices

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

◆ m_Strategy

◆ m_use_cache

bool IFresnelMap::m_use_cache
protected

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