BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
IInterference Class Referenceabstract

Description

Abstract base class of interference functions.

Inheritance diagram for IInterference:

Public Member Functions

IInterferenceclone () const override=0
 
double DWfactor (R3 q) const
 structureFactors the Debye-Waller factor for a given wavevector transfer More...
 
virtual double particleDensity () const
 If defined by this interference function's parameters, returns the particle density (per area). Otherwise, returns zero or a user-defined value. More...
 
double positionVariance () const
 Returns the position variance. More...
 
void setPositionVariance (double var)
 Sets the variance of the position for the calculation of the DW factor It is defined as the variance in each relevant dimension. More...
 
virtual double structureFactor (R3 q, double outer_iff=1.0) const
 The interference function for a given wavevector transfer. More...
 
virtual bool supportsMultilayer () const
 Indicates if this interference function can be used with a sample (DWBA mode) More...
 

Protected Member Functions

 IInterference (const std::vector< double > &PValues)
 
 IInterference (double position_var)
 
double iff_no_inner (R3 q, double outer_iff) const
 Calculates the structure factor in the absence of extra inner structure. More...
 
virtual double iff_without_dw (R3 q) const =0
 Calculates the structure factor without Debye-Waller factor. More...
 

Protected Attributes

double m_position_var
 

Constructor & Destructor Documentation

◆ IInterference() [1/2]

IInterference::IInterference ( const std::vector< double > &  PValues)
protected

◆ IInterference() [2/2]

IInterference::IInterference ( double  position_var)
protected

Member Function Documentation

◆ clone()

◆ DWfactor()

double IInterference::DWfactor ( R3  q) const

structureFactors the Debye-Waller factor for a given wavevector transfer

◆ iff_no_inner()

double IInterference::iff_no_inner ( R3  q,
double  outer_iff 
) const
protected

Calculates the structure factor in the absence of extra inner structure.

◆ iff_without_dw()

virtual double IInterference::iff_without_dw ( R3  q) const
protectedpure virtual

Calculates the structure factor without Debye-Waller factor.

◆ particleDensity()

virtual double IInterference::particleDensity ( ) const
virtual

If defined by this interference function's parameters, returns the particle density (per area). Otherwise, returns zero or a user-defined value.

Reimplemented in InterferenceHardDisk, InterferenceFinite2DLattice, Interference2DParaCrystal, and Interference2DLattice.

◆ positionVariance()

double IInterference::positionVariance ( ) const

Returns the position variance.

◆ setPositionVariance()

void IInterference::setPositionVariance ( double  var)

Sets the variance of the position for the calculation of the DW factor It is defined as the variance in each relevant dimension.

◆ structureFactor()

virtual double IInterference::structureFactor ( R3  q,
double  outer_iff = 1.0 
) const
virtual

The interference function for a given wavevector transfer.

Reimplemented in Interference2DSuperLattice.

◆ supportsMultilayer()

virtual bool IInterference::supportsMultilayer ( ) const
virtual

Indicates if this interference function can be used with a sample (DWBA mode)

Reimplemented in InterferenceFinite3DLattice, and Interference3DLattice.

Member Data Documentation

◆ m_position_var

double IInterference::m_position_var
protected