|
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().