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

Description

Interface for material implementation classes. Inherited by MagneticMaterialImpl, which has further children.

Definition at line 36 of file BaseMaterialImpl.h.

Inheritance diagram for BaseMaterialImpl:
[legend]
Collaboration diagram for BaseMaterialImpl:
[legend]

Public Member Functions

 BaseMaterialImpl (const std::string &name)
 Constructs basic material with name. More...
 
virtual ~BaseMaterialImpl ()=default
 
virtual BaseMaterialImplclone () const =0
 Returns pointer to a copy of material. More...
 
virtual BaseMaterialImplinverted () const =0
 Constructs a material with inverted magnetization. More...
 
virtual bool isMagneticMaterial () const =0
 
virtual bool isScalarMaterial () const =0
 Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally. More...
 
virtual R3 magnetization () const =0
 Returns the magnetization (in A/m) More...
 
virtual complex_t materialData () const =0
 Returns underlying material data. More...
 
const std::string & matName () const
 Returns name of the material. More...
 
virtual SpinMatrix polarizedSubtrSLD (const WavevectorInfo &wavevectors) const =0
 Returns ( $ \pi/\lambda^2 $ - sld) matrix with magnetization corrections. More...
 
virtual std::string print () const =0
 Prints object data. More...
 
virtual complex_t refractiveIndex (double wavelength) const =0
 Returns refractive index. More...
 
virtual complex_t refractiveIndex2 (double wavelength) const =0
 Returns squared refractive index. More...
 
virtual BaseMaterialImplrotatedMaterial (const RotMatrix &transform) const =0
 
virtual complex_t scalarSubtrSLD (double lambda0) const =0
 Returns ( $ \pi/\lambda^2 $ - sld), sld being the scattering length density. More...
 
virtual MATERIAL_TYPES typeID () const =0
 Returns type of material implementation. More...
 

Private Attributes

const std::string m_name
 

Constructor & Destructor Documentation

◆ BaseMaterialImpl()

BaseMaterialImpl::BaseMaterialImpl ( const std::string &  name)
inline

Constructs basic material with name.

Definition at line 39 of file BaseMaterialImpl.h.

40  : m_name(name)
41  {
42  }
const std::string m_name

◆ ~BaseMaterialImpl()

virtual BaseMaterialImpl::~BaseMaterialImpl ( )
virtualdefault

Member Function Documentation

◆ clone()

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

Returns pointer to a copy of material.

Implemented in MagneticMaterialImpl, RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ inverted()

virtual BaseMaterialImpl* BaseMaterialImpl::inverted ( ) const
pure virtual

Constructs a material with inverted magnetization.

Implemented in MagneticMaterialImpl.

◆ isMagneticMaterial()

virtual bool BaseMaterialImpl::isMagneticMaterial ( ) const
pure virtual

Implemented in MagneticMaterialImpl.

◆ isScalarMaterial()

virtual bool BaseMaterialImpl::isScalarMaterial ( ) const
pure virtual

Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally.

Implemented in MagneticMaterialImpl.

◆ magnetization()

virtual R3 BaseMaterialImpl::magnetization ( ) const
pure virtual

Returns the magnetization (in A/m)

Implemented in MagneticMaterialImpl.

◆ materialData()

virtual complex_t BaseMaterialImpl::materialData ( ) const
pure virtual

Returns underlying material data.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ matName()

const std::string& BaseMaterialImpl::matName ( ) const
inline

Returns name of the material.

Definition at line 85 of file BaseMaterialImpl.h.

85 { return m_name; }

References m_name.

Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), and RefractiveMaterialImpl::print().

◆ polarizedSubtrSLD()

virtual SpinMatrix BaseMaterialImpl::polarizedSubtrSLD ( const WavevectorInfo wavevectors) const
pure virtual

Returns ( $ \pi/\lambda^2 $ - sld) matrix with magnetization corrections.

Implemented in MagneticMaterialImpl.

◆ print()

virtual std::string BaseMaterialImpl::print ( ) const
pure virtual

Prints object data.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ refractiveIndex()

virtual complex_t BaseMaterialImpl::refractiveIndex ( double  wavelength) const
pure virtual

Returns refractive index.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ refractiveIndex2()

virtual complex_t BaseMaterialImpl::refractiveIndex2 ( double  wavelength) const
pure virtual

Returns squared refractive index.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ rotatedMaterial()

virtual BaseMaterialImpl* BaseMaterialImpl::rotatedMaterial ( const RotMatrix transform) const
pure virtual

Implemented in MagneticMaterialImpl.

◆ scalarSubtrSLD()

virtual complex_t BaseMaterialImpl::scalarSubtrSLD ( double  lambda0) const
pure virtual

Returns ( $ \pi/\lambda^2 $ - sld), sld being the scattering length density.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

Referenced by MagneticMaterialImpl::polarizedSubtrSLD().

◆ typeID()

virtual MATERIAL_TYPES BaseMaterialImpl::typeID ( ) const
pure virtual

Returns type of material implementation.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

Member Data Documentation

◆ m_name

const std::string BaseMaterialImpl::m_name
private

Definition at line 88 of file BaseMaterialImpl.h.

Referenced by matName().


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