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

Public Member Functions

 BaseMaterialImpl (const std::string &name)
 
virtual ~BaseMaterialImpl ()=default
 
virtual BaseMaterialImplclone () const =0
 
virtual BaseMaterialImplinverted () const =0
 
virtual complex_t refractiveIndex (double wavelength) const =0
 
virtual complex_t refractiveIndex2 (double wavelength) const =0
 
virtual bool isScalarMaterial () const =0
 
virtual bool isMagneticMaterial () const =0
 
virtual kvector_t magnetization () const =0
 
virtual complex_t materialData () const =0
 
virtual MATERIAL_TYPES typeID () const =0
 
virtual complex_t scalarSubtrSLD (const WavevectorInfo &wavevectors) const =0
 
virtual Eigen::Matrix2cd polarizedSubtrSLD (const WavevectorInfo &wavevectors) const =0
 
virtual BaseMaterialImplrotatedMaterial (const Transform3D &transform) const =0
 
virtual void print (std::ostream &ostr) const =0
 
const std::string & getName () const
 

Private Attributes

const std::string m_name
 

Detailed Description

Interface for material implementation classes.

Inherited by MagneticMaterialImpl, which has further children.

Definition at line 31 of file BaseMaterialImpl.h.

Constructor & Destructor Documentation

◆ BaseMaterialImpl()

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

Constructs basic material with name.

Definition at line 35 of file BaseMaterialImpl.h.

35 : m_name(name) {}
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.

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

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

◆ isMagneticMaterial()

virtual bool BaseMaterialImpl::isMagneticMaterial ( ) const
pure virtual

Implemented in MagneticMaterialImpl.

◆ magnetization()

virtual kvector_t 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.

◆ typeID()

virtual MATERIAL_TYPES BaseMaterialImpl::typeID ( ) const
pure virtual

Returns type of material implementation.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ scalarSubtrSLD()

virtual complex_t BaseMaterialImpl::scalarSubtrSLD ( const WavevectorInfo wavevectors) const
pure virtual

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

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

Referenced by MagneticMaterialImpl::polarizedSubtrSLD().

◆ polarizedSubtrSLD()

virtual Eigen::Matrix2cd BaseMaterialImpl::polarizedSubtrSLD ( const WavevectorInfo wavevectors) const
pure virtual

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

Implemented in MagneticMaterialImpl.

◆ rotatedMaterial()

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

Implemented in MagneticMaterialImpl.

◆ print()

virtual void BaseMaterialImpl::print ( std::ostream &  ostr) const
pure virtual

Prints object data.

Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.

◆ getName()

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

Returns name of the material.

Definition at line 78 of file BaseMaterialImpl.h.

78 { return m_name; }

References m_name.

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

Member Data Documentation

◆ m_name

const std::string BaseMaterialImpl::m_name
private

Definition at line 81 of file BaseMaterialImpl.h.

Referenced by getName().


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