BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Basic implementation for magnetized material. Inherited by RefractiveMaterialImpl and MaterialBySLDImpl. Incorporates data and methods required to handle material magnetization.
Definition at line 33 of file MagneticMaterialImpl.h.
Public Member Functions | |
MagneticMaterialImpl (const std::string &name, R3 magnetization) | |
Constructs basic material with name and magnetization. More... | |
~MagneticMaterialImpl () override=default | |
MagneticMaterialImpl * | clone () const override=0 |
Returns pointer to a copy of material. More... | |
MagneticMaterialImpl * | inverted () const override |
Constructs a material with inverted magnetization. More... | |
bool | isMagneticMaterial () const override |
bool | isScalarMaterial () const override |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally. More... | |
R3 | magnetization () const override |
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... | |
SpinMatrix | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const override |
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... | |
MagneticMaterialImpl * | rotatedMaterial (const RotMatrix &transform) const override |
virtual complex_t | scalarSubtrSLD (double lambda0) const =0 |
Returns ( ![]() | |
virtual MATERIAL_TYPES | typeID () const =0 |
Returns type of material implementation. More... | |
Private Member Functions | |
void | setMagnetization (R3 magnetization) |
Private Attributes | |
R3 | m_magnetization |
magnetization More... | |
const std::string | m_name |
MagneticMaterialImpl::MagneticMaterialImpl | ( | const std::string & | name, |
R3 | magnetization | ||
) |
Constructs basic material with name and magnetization.
Definition at line 42 of file MagneticMaterialImpl.cpp.
|
overridedefault |
|
overridepure virtual |
Returns pointer to a copy of material.
Implements BaseMaterialImpl.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
Referenced by inverted(), and rotatedMaterial().
|
overridevirtual |
Constructs a material with inverted magnetization.
Implements BaseMaterialImpl.
Definition at line 48 of file MagneticMaterialImpl.cpp.
References clone(), isScalarMaterial(), magnetization(), BaseMaterialImpl::matName(), and setMagnetization().
|
overridevirtual |
Implements BaseMaterialImpl.
Definition at line 61 of file MagneticMaterialImpl.cpp.
References isScalarMaterial().
|
overridevirtual |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally.
Implements BaseMaterialImpl.
Definition at line 56 of file MagneticMaterialImpl.cpp.
References m_magnetization.
Referenced by inverted(), and isMagneticMaterial().
|
overridevirtual |
Returns the magnetization (in A/m)
Implements BaseMaterialImpl.
Definition at line 66 of file MagneticMaterialImpl.cpp.
References m_magnetization.
Referenced by inverted(), MaterialBySLDImpl::print(), RefractiveMaterialImpl::print(), and setMagnetization().
|
pure virtualinherited |
Returns underlying material data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
inlineinherited |
Returns name of the material.
Definition at line 85 of file BaseMaterialImpl.h.
References BaseMaterialImpl::m_name.
Referenced by inverted(), MaterialBySLDImpl::print(), and RefractiveMaterialImpl::print().
|
overridevirtual |
Returns ( - sld) matrix with magnetization corrections.
Implements BaseMaterialImpl.
Definition at line 71 of file MagneticMaterialImpl.cpp.
References WavevectorInfo::getQ(), m_magnetization, MaterialUtils::MagnetizationCorrection(), BaseMaterialImpl::scalarSubtrSLD(), and WavevectorInfo::vacuumLambda().
|
pure virtualinherited |
Prints object data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns squared refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
overridevirtual |
Implements BaseMaterialImpl.
Definition at line 78 of file MagneticMaterialImpl.cpp.
References clone(), m_magnetization, setMagnetization(), and RotMatrix::transformed().
|
pure virtualinherited |
Returns ( - sld), sld being the scattering length density.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
Referenced by polarizedSubtrSLD().
|
inlineprivate |
Definition at line 61 of file MagneticMaterialImpl.h.
References m_magnetization, and magnetization().
Referenced by inverted(), and rotatedMaterial().
|
pure virtualinherited |
Returns type of material implementation.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
private |
magnetization
Definition at line 63 of file MagneticMaterialImpl.h.
Referenced by isScalarMaterial(), magnetization(), polarizedSubtrSLD(), rotatedMaterial(), and setMagnetization().
|
privateinherited |
Definition at line 88 of file BaseMaterialImpl.h.
Referenced by BaseMaterialImpl::matName().