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. Inherited by MagneticMaterialImpl, which has further c...
Basic implementation for magnetized material. Inherited by RefractiveMaterialImpl and MaterialBySLDIm...
bool isScalarMaterial() const override
Indicates whether the interaction with the material is scalar. This means that different polarization...
bool isMagneticMaterial() const override
MagneticMaterialImpl * clone() const override=0
Returns pointer to a copy of material.
~MagneticMaterialImpl() override=default
R3 m_magnetization
magnetization
void setMagnetization(R3 magnetization)
MagneticMaterialImpl * rotatedMaterial(const RotMatrix &transform) const override
MagneticMaterialImpl(const std::string &name, R3 magnetization)
Constructs basic material with name and magnetization.
R3 magnetization() const override
Returns the magnetization (in A/m)
SpinMatrix polarizedSubtrSLD(const WavevectorInfo &wavevectors) const override
Returns ( - sld) matrix with magnetization corrections.
MagneticMaterialImpl * inverted() const override
Constructs a material with inverted magnetization.
Rotation matrix in three dimensions. Represents group SO(3). Internal parameterization based on quate...
Holds all wavevector information relevant for calculating form factors.