15 #ifndef BORNAGAIN_CORE_MATERIAL_MAGNETICMATERIALIMPL_H
16 #define BORNAGAIN_CORE_MATERIAL_MAGNETICMATERIALIMPL_H
Defines basic material implementation interface.
Interface for material implementation classes.
Basic implementation for magnetized material.
void setMagnetization(kvector_t magnetization)
virtual ~MagneticMaterialImpl()=default
MagneticMaterialImpl * clone() const override=0
Returns pointer to a copy of material.
MagneticMaterialImpl(const std::string &name, kvector_t magnetization)
Constructs basic material with name and magnetization.
MagneticMaterialImpl * inverted() const override final
Constructs a material with inverted magnetization.
kvector_t magnetization() const override final
Returns the magnetization (in A/m)
bool isScalarMaterial() const override final
Indicates whether the interaction with the material is scalar.
MagneticMaterialImpl * rotatedMaterial(const Transform3D &transform) const override final
Eigen::Matrix2cd polarizedSubtrSLD(const WavevectorInfo &wavevectors) const override final
Returns ( - sld) matrix with magnetization corrections.
bool isMagneticMaterial() const override final
kvector_t m_magnetization
magnetization
Holds all wavevector information relevant for calculating form factors.