22 : m_material_impl(std::move(material_impl))
30 "Material: Error! Attempt to initialize material with nullptr.");
38 "Material: Error! Attempt to assign nullptr to material.");
45 std::unique_ptr<BaseMaterialImpl> material_impl(
m_material_impl->inverted());
46 return Material(std::move(material_impl));
106 std::unique_ptr<BaseMaterialImpl> material_impl(m_material_impl->rotatedMaterial(transform));
107 return Material(std::move(material_impl));
131 return !(left == right);
std::complex< double > complex_t
Defines many exception classes in namespace Exceptionss.
Defines and implements class Material.
bool operator!=(const BasicVector3D< T > &a, const BasicVector3D< T > &b)
Comparison of two vectors for inequality.
bool operator==(const BasicVector3D< T > &a, const BasicVector3D< T > &b)
Comparison of two vectors for equality.
std::ostream & operator<<(std::ostream &os, const BasicVector3D< T > &a)
Output to stream.
A wrapper for underlying material implementation.
kvector_t magnetization() const
Get the magnetization (in A/m)
Material inverted() const
Constructs a material with inverted magnetization.
Eigen::Matrix2cd polarizedSubtrSLD(const WavevectorInfo &wavevectors) const
Returns ( - sld) matrix with magnetization corrections.
complex_t refractiveIndex(double wavelength) const
Returns refractive index.
complex_t scalarSubtrSLD(const WavevectorInfo &wavevectors) const
Returns ( - sld), sld (in ) being the scattering length density.
bool isScalarMaterial() const
Indicates whether the interaction with the material is scalar.
Material rotatedMaterial(const Transform3D &transform) const
bool isMagneticMaterial() const
complex_t refractiveIndex2(double wavelength) const
Returns squared refractive index.
std::string getName() const
Returns the name of material.
std::unique_ptr< BaseMaterialImpl > m_material_impl
MATERIAL_TYPES typeID() const
Returns the type of underlying material implementation.
bool isDefaultMaterial() const
Returns true if material has refractive index of (1.0, 0.0) and zero magnetization.
bool isEmpty() const
Returns true if material underlying data is nullptr.
complex_t materialData() const
Returns underlying material data.
Material(std::unique_ptr< BaseMaterialImpl > material_impl)
Creates material with particular material implementation.
Material & operator=(const Material &other)
Holds all wavevector information relevant for calculating form factors.
const double wavelength(0.154)