16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_SAMPLE_MATERIAL_BASEMATERIALIMPL_H
21 #define BORNAGAIN_SAMPLE_MATERIAL_BASEMATERIALIMPL_H
23 #include <heinz/Complex.h>
24 #include <heinz/Vectors3D.h>
82 virtual std::string
print()
const = 0;
Interface for material implementation classes. Inherited by MagneticMaterialImpl, which has further c...
BaseMaterialImpl(const std::string &name)
Constructs basic material with name.
const std::string & matName() const
Returns name of the material.
virtual R3 magnetization() const =0
Returns the magnetization (in A/m)
virtual complex_t refractiveIndex(double wavelength) const =0
Returns refractive index.
virtual complex_t materialData() const =0
Returns underlying material data.
virtual BaseMaterialImpl * clone() const =0
Returns pointer to a copy of material.
virtual BaseMaterialImpl * inverted() const =0
Constructs a material with inverted magnetization.
virtual BaseMaterialImpl * rotatedMaterial(const RotMatrix &transform) const =0
virtual bool isScalarMaterial() const =0
Indicates whether the interaction with the material is scalar. This means that different polarization...
virtual complex_t scalarSubtrSLD(double lambda0) const =0
Returns ( - sld), sld being the scattering length density.
virtual complex_t refractiveIndex2(double wavelength) const =0
Returns squared refractive index.
virtual std::string print() const =0
Prints object data.
virtual bool isMagneticMaterial() const =0
virtual SpinMatrix polarizedSubtrSLD(const WavevectorInfo &wavevectors) const =0
Returns ( - sld) matrix with magnetization corrections.
virtual MATERIAL_TYPES typeID() const =0
Returns type of material implementation.
virtual ~BaseMaterialImpl()=default
Rotation matrix in three dimensions. Represents group SO(3). Internal parameterization based on quate...
Holds all wavevector information relevant for calculating form factors.