BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Basic implementation for magnetized material. More...
Public Member Functions | |
MagneticMaterialImpl (const std::string &name, kvector_t magnetization) | |
Constructs basic material with name and magnetization. More... | |
virtual | ~MagneticMaterialImpl ()=default |
MagneticMaterialImpl * | clone () const override=0 |
Returns pointer to a copy of material. More... | |
const std::string & | getName () const |
Returns name of the material. More... | |
MagneticMaterialImpl * | inverted () const final |
Constructs a material with inverted magnetization. More... | |
bool | isMagneticMaterial () const final |
bool | isScalarMaterial () const final |
Indicates whether the interaction with the material is scalar. More... | |
kvector_t | magnetization () const final |
Returns the magnetization (in A/m) More... | |
virtual complex_t | materialData () const =0 |
Returns underlying material data. More... | |
Eigen::Matrix2cd | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const final |
Returns ( ![]() | |
virtual void | print (std::ostream &ostr) 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 Transform3D &transform) const final |
virtual complex_t | scalarSubtrSLD (const WavevectorInfo &wavevectors) const =0 |
Returns ( ![]() | |
virtual MATERIAL_TYPES | typeID () const =0 |
Returns type of material implementation. More... | |
Private Member Functions | |
void | setMagnetization (kvector_t magnetization) |
Private Attributes | |
kvector_t | m_magnetization |
magnetization More... | |
const std::string | m_name |
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.
MagneticMaterialImpl::MagneticMaterialImpl | ( | const std::string & | name, |
kvector_t | magnetization | ||
) |
Constructs basic material with name and magnetization.
Definition at line 38 of file MagneticMaterialImpl.cpp.
|
virtualdefault |
|
overridepure virtual |
Returns pointer to a copy of material.
Implements BaseMaterialImpl.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
Referenced by inverted(), and rotatedMaterial().
|
inlineinherited |
Returns name of the material.
Definition at line 81 of file BaseMaterialImpl.h.
References BaseMaterialImpl::m_name.
Referenced by inverted(), MaterialBySLDImpl::print(), and RefractiveMaterialImpl::print().
|
finalvirtual |
Constructs a material with inverted magnetization.
Implements BaseMaterialImpl.
Definition at line 43 of file MagneticMaterialImpl.cpp.
References clone(), BaseMaterialImpl::getName(), isScalarMaterial(), magnetization(), RealSpace::Particles::name(), and setMagnetization().
|
finalvirtual |
Implements BaseMaterialImpl.
Definition at line 56 of file MagneticMaterialImpl.cpp.
References isScalarMaterial().
|
finalvirtual |
Indicates whether the interaction with the material is scalar.
This means that different polarization states will be diffracted equally
Implements BaseMaterialImpl.
Definition at line 51 of file MagneticMaterialImpl.cpp.
References m_magnetization.
Referenced by inverted(), and isMagneticMaterial().
|
finalvirtual |
Returns the magnetization (in A/m)
Implements BaseMaterialImpl.
Definition at line 61 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.
|
finalvirtual |
Returns ( - sld) matrix with magnetization corrections.
Implements BaseMaterialImpl.
Definition at line 66 of file MagneticMaterialImpl.cpp.
References WavevectorInfo::getQ(), m_magnetization, magnetization_prefactor, MaterialUtils::MagnetizationCorrection(), and BaseMaterialImpl::scalarSubtrSLD().
|
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.
|
finalvirtual |
Implements BaseMaterialImpl.
Definition at line 73 of file MagneticMaterialImpl.cpp.
References clone(), m_magnetization, setMagnetization(), and Transform3D::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 84 of file BaseMaterialImpl.h.
Referenced by BaseMaterialImpl::getName().