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

Abstract base class for form factor evaluations. More...

Inheritance diagram for IComputeFF:
[legend]

Public Member Functions

 IComputeFF ()=delete
 
virtual ~IComputeFF ()
 
virtual double bottomZ (const IRotation &rotation) const
 
virtual IComputeFFclone () const =0
 
virtual complex_t evaluate (const WavevectorInfo &wavevectors) const =0
 
virtual Eigen::Matrix2cd evaluatePol (const WavevectorInfo &wavevectors) const
 Returns scattering amplitude for matrix interactions. More...
 
virtual double radialExtension () const
 
virtual void setAmbientMaterial (const Material &material)
 
virtual void setSpecularInfo (std::unique_ptr< const ILayerRTCoefficients >, std::unique_ptr< const ILayerRTCoefficients >)
 Sets reflection/transmission info. More...
 
virtual double topZ (const IRotation &rotation) const
 
virtual double volume () const
 

Protected Member Functions

 IComputeFF (const IFormFactor &)
 

Protected Attributes

std::unique_ptr< IFormFactorm_ff
 

Detailed Description

Abstract base class for form factor evaluations.

Wraps an IFormFactor, and provides functions evaluate or evaluatePol.

Definition at line 39 of file IComputeFF.h.

Constructor & Destructor Documentation

◆ IComputeFF() [1/2]

IComputeFF::IComputeFF ( )
delete

◆ ~IComputeFF()

IComputeFF::~IComputeFF ( )
virtualdefault

◆ IComputeFF() [2/2]

IComputeFF::IComputeFF ( const IFormFactor ff)
protected

Definition at line 20 of file IComputeFF.cpp.

20 : m_ff(ff.clone()) {}
std::unique_ptr< IFormFactor > m_ff
Definition: IComputeFF.h:64
IFormFactor * clone() const override=0
Returns a clone of this ISampleNode object.

Member Function Documentation

◆ bottomZ()

double IComputeFF::bottomZ ( const IRotation rotation) const
virtual

Definition at line 39 of file IComputeFF.cpp.

40 {
41  return m_ff->bottomZ(rotation);
42 }

References m_ff.

◆ clone()

virtual IComputeFF* IComputeFF::clone ( ) const
pure virtual

◆ evaluate()

virtual complex_t IComputeFF::evaluate ( const WavevectorInfo wavevectors) const
pure virtual

◆ evaluatePol()

Eigen::Matrix2cd IComputeFF::evaluatePol ( const WavevectorInfo wavevectors) const
virtual

Returns scattering amplitude for matrix interactions.

Reimplemented in ComputeDWBAPol, and ComputeBAPol.

Definition at line 49 of file IComputeFF.cpp.

50 {
51  throw std::runtime_error("Bug: impossible call to FFCompute::evaluatePol");
52 }

◆ radialExtension()

double IComputeFF::radialExtension ( ) const
virtual

Definition at line 34 of file IComputeFF.cpp.

35 {
36  return m_ff->radialExtension();
37 }

References m_ff.

◆ setAmbientMaterial()

void IComputeFF::setAmbientMaterial ( const Material material)
virtual

Definition at line 24 of file IComputeFF.cpp.

25 {
26  m_ff->setAmbientMaterial(material);
27 }

References m_ff.

◆ setSpecularInfo()

void IComputeFF::setSpecularInfo ( std::unique_ptr< const ILayerRTCoefficients ,
std::unique_ptr< const ILayerRTCoefficients  
)
virtual

Sets reflection/transmission info.

Reimplemented in ComputeDWBAPol, and ComputeDWBA.

Definition at line 54 of file IComputeFF.cpp.

56 {
57 }

◆ topZ()

double IComputeFF::topZ ( const IRotation rotation) const
virtual

Definition at line 44 of file IComputeFF.cpp.

45 {
46  return m_ff->topZ(rotation);
47 }

References m_ff.

◆ volume()

double IComputeFF::volume ( ) const
virtual

Definition at line 29 of file IComputeFF.cpp.

30 {
31  return m_ff->volume();
32 }

References m_ff.

Member Data Documentation

◆ m_ff


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