16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_SAMPLE_MATERIAL_MAGNETICMATERIALIMPL_H
21 #define BORNAGAIN_SAMPLE_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.
kvector_t magnetization() const final
Returns the magnetization (in A/m)
MagneticMaterialImpl(const std::string &name, kvector_t magnetization)
Constructs basic material with name and magnetization.
bool isScalarMaterial() const final
Indicates whether the interaction with the material is scalar.
bool isMagneticMaterial() const final
Eigen::Matrix2cd polarizedSubtrSLD(const WavevectorInfo &wavevectors) const final
Returns ( - sld) matrix with magnetization corrections.
MagneticMaterialImpl * inverted() const final
Constructs a material with inverted magnetization.
MagneticMaterialImpl * rotatedMaterial(const Transform3D &transform) const final
kvector_t m_magnetization
magnetization
Holds all wavevector information relevant for calculating form factors.
QString const & name(EShape k)