BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
MagneticMaterialImpl (const std::string &name, kvector_t magnetization) | |
virtual | ~MagneticMaterialImpl ()=default |
MagneticMaterialImpl * | clone () const override=0 |
MagneticMaterialImpl * | inverted () const override final |
bool | isScalarMaterial () const override final |
bool | isMagneticMaterial () const override final |
kvector_t | magnetization () const override final |
Eigen::Matrix2cd | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const override final |
MagneticMaterialImpl * | rotatedMaterial (const Transform3D &transform) const override final |
virtual complex_t | refractiveIndex (double wavelength) const =0 |
virtual complex_t | refractiveIndex2 (double wavelength) const =0 |
virtual complex_t | materialData () const =0 |
virtual MATERIAL_TYPES | typeID () const =0 |
virtual complex_t | scalarSubtrSLD (const WavevectorInfo &wavevectors) const =0 |
virtual void | print (std::ostream &ostr) const =0 |
const std::string & | getName () const |
Private Member Functions | |
void | setMagnetization (kvector_t magnetization) |
Private Attributes | |
kvector_t | m_magnetization |
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 28 of file MagneticMaterialImpl.h.
MagneticMaterialImpl::MagneticMaterialImpl | ( | const std::string & | name, |
kvector_t | magnetization | ||
) |
Constructs basic material with name and magnetization.
Definition at line 39 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().
|
finaloverridevirtual |
Constructs a material with inverted magnetization.
Implements BaseMaterialImpl.
Definition at line 44 of file MagneticMaterialImpl.cpp.
References clone(), BaseMaterialImpl::getName(), isScalarMaterial(), magnetization(), and setMagnetization().
|
finaloverridevirtual |
Indicates whether the interaction with the material is scalar.
This means that different polarization states will be diffracted equally
Implements BaseMaterialImpl.
Definition at line 52 of file MagneticMaterialImpl.cpp.
References m_magnetization.
Referenced by inverted(), and isMagneticMaterial().
|
finaloverridevirtual |
Implements BaseMaterialImpl.
Definition at line 57 of file MagneticMaterialImpl.cpp.
References isScalarMaterial().
|
finaloverridevirtual |
Returns the magnetization (in A/m)
Implements BaseMaterialImpl.
Definition at line 62 of file MagneticMaterialImpl.cpp.
References m_magnetization.
Referenced by inverted(), MaterialBySLDImpl::print(), RefractiveMaterialImpl::print(), and setMagnetization().
|
finaloverridevirtual |
Returns ( - sld) matrix with magnetization corrections.
Implements BaseMaterialImpl.
Definition at line 67 of file MagneticMaterialImpl.cpp.
References WavevectorInfo::getQ(), m_magnetization, magnetization_prefactor, MaterialUtils::MagnetizationCorrection(), anonymous_namespace{MagneticMaterialImpl.cpp}::OrthogonalToBaseVector(), and BaseMaterialImpl::scalarSubtrSLD().
|
finaloverridevirtual |
Implements BaseMaterialImpl.
Definition at line 74 of file MagneticMaterialImpl.cpp.
References clone(), m_magnetization, setMagnetization(), and Transform3D::transformed().
|
inlineprivate |
Definition at line 57 of file MagneticMaterialImpl.h.
References m_magnetization, and magnetization().
Referenced by inverted(), and rotatedMaterial().
|
pure virtualinherited |
Returns refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns squared refractive index.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns underlying material data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns type of material implementation.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
pure virtualinherited |
Returns ( - sld), sld being the scattering length density.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
Referenced by polarizedSubtrSLD().
|
pure virtualinherited |
Prints object data.
Implemented in RefractiveMaterialImpl, and MaterialBySLDImpl.
|
inlineinherited |
Returns name of the material.
Definition at line 78 of file BaseMaterialImpl.h.
References BaseMaterialImpl::m_name.
Referenced by inverted(), MaterialBySLDImpl::print(), and RefractiveMaterialImpl::print().
|
private |
magnetization
Definition at line 59 of file MagneticMaterialImpl.h.
Referenced by isScalarMaterial(), magnetization(), polarizedSubtrSLD(), rotatedMaterial(), and setMagnetization().
|
privateinherited |
Definition at line 81 of file BaseMaterialImpl.h.
Referenced by BaseMaterialImpl::getName().