BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Interface for material implementation classes. Inherited by MagneticMaterialImpl, which has further children.
Definition at line 36 of file BaseMaterialImpl.h.
Public Member Functions | |
BaseMaterialImpl (const std::string &name) | |
Constructs basic material with name. More... | |
virtual | ~BaseMaterialImpl ()=default |
virtual BaseMaterialImpl * | clone () const =0 |
Returns pointer to a copy of material. More... | |
virtual BaseMaterialImpl * | inverted () 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 ( ![]() | |
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 BaseMaterialImpl * | rotatedMaterial (const RotMatrix &transform) const =0 |
virtual complex_t | scalarSubtrSLD (double lambda0) const =0 |
Returns ( ![]() | |
virtual MATERIAL_TYPES | typeID () const =0 |
Returns type of material implementation. More... | |
Private Attributes | |
const std::string | m_name |
|
inline |
|
virtualdefault |
|
pure virtual |
Returns pointer to a copy of material.
Implemented in MagneticMaterialImpl, RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtual |
Constructs a material with inverted magnetization.
Implemented in MagneticMaterialImpl.
|
pure virtual |
Implemented in MagneticMaterialImpl.
|
pure virtual |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally.
Implemented in MagneticMaterialImpl.
|
pure virtual |
Returns the magnetization (in A/m)
Implemented in MagneticMaterialImpl.
|
pure virtual |
Returns underlying material data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
inline |
Returns name of the material.
Definition at line 85 of file BaseMaterialImpl.h.
References m_name.
Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), and RefractiveMaterialImpl::print().
|
pure virtual |
Returns ( - sld) matrix with magnetization corrections.
Implemented in MagneticMaterialImpl.
|
pure virtual |
Prints object data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtual |
Returns refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtual |
Returns squared refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtual |
Implemented in MagneticMaterialImpl.
|
pure virtual |
Returns ( - sld), sld being the scattering length density.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
Referenced by MagneticMaterialImpl::polarizedSubtrSLD().
|
pure virtual |
Returns type of material implementation.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
private |
Definition at line 88 of file BaseMaterialImpl.h.
Referenced by matName().