BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
Material (std::unique_ptr< BaseMaterialImpl > material_impl) | |
Material (const Material &material) | |
Material (Material &&material)=default | |
Material & | operator= (const Material &other) |
Material & | operator= (Material &&other)=default |
Material | inverted () const |
complex_t | refractiveIndex (double wavelength) const |
complex_t | refractiveIndex2 (double wavelength) const |
bool | isScalarMaterial () const |
bool | isMagneticMaterial () const |
std::string | getName () const |
MATERIAL_TYPES | typeID () const |
kvector_t | magnetization () const |
complex_t | materialData () const |
bool | isEmpty () const |
bool | isDefaultMaterial () const |
complex_t | scalarSubtrSLD (const WavevectorInfo &wavevectors) const |
Eigen::Matrix2cd | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const |
Material | rotatedMaterial (const Transform3D &transform) const |
Private Attributes | |
std::unique_ptr< BaseMaterialImpl > | m_material_impl |
Friends | |
std::ostream & | operator<< (std::ostream &ostr, const Material &mat) |
A wrapper for underlying material implementation.
Definition at line 28 of file Material.h.
Material::Material | ( | std::unique_ptr< BaseMaterialImpl > | material_impl | ) |
Creates material with particular material implementation.
Definition at line 21 of file Material.cpp.
Referenced by inverted().
Material::Material | ( | const Material & | material | ) |
Definition at line 26 of file Material.cpp.
References isEmpty(), and m_material_impl.
|
default |
Definition at line 34 of file Material.cpp.
References isEmpty(), and m_material_impl.
Material Material::inverted | ( | ) | const |
Constructs a material with inverted magnetization.
Definition at line 43 of file Material.cpp.
References m_material_impl, and Material().
complex_t Material::refractiveIndex | ( | double | wavelength | ) | const |
Returns refractive index.
Definition at line 49 of file Material.cpp.
References m_material_impl, and anonymous_namespace{SlicedCylindersBuilder.cpp}::wavelength().
Referenced by Slice::polarizedReducedPotential(), and Slice::scalarReducedPotential().
complex_t Material::refractiveIndex2 | ( | double | wavelength | ) | const |
Returns squared refractive index.
Definition at line 54 of file Material.cpp.
References m_material_impl, and anonymous_namespace{SlicedCylindersBuilder.cpp}::wavelength().
bool Material::isScalarMaterial | ( | ) | const |
Indicates whether the interaction with the material is scalar.
This means that different polarization states will be diffracted equally
Definition at line 59 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), and isDefaultMaterial().
bool Material::isMagneticMaterial | ( | ) | const |
Definition at line 64 of file Material.cpp.
References m_material_impl.
std::string Material::getName | ( | ) | const |
Returns the name of material.
Definition at line 69 of file Material.cpp.
References m_material_impl.
Referenced by createAveragedMaterial(), SampleToPython::defineMaterials(), and operator==().
MATERIAL_TYPES Material::typeID | ( | ) | const |
Returns the type of underlying material implementation.
Definition at line 74 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), anonymous_namespace{KzComputation.cpp}::normalizedSLD(), and operator==().
kvector_t Material::magnetization | ( | ) | const |
Get the magnetization (in A/m)
Definition at line 79 of file Material.cpp.
References m_material_impl.
Referenced by createAveragedMaterial(), SampleToPython::defineMaterials(), Slice::initBField(), and operator==().
complex_t Material::materialData | ( | ) | const |
Returns underlying material data.
The units of returned values are the same as the ones passed to material factory functions
Definition at line 84 of file Material.cpp.
References m_material_impl.
Referenced by createAveragedMaterial(), SampleToPython::defineMaterials(), isDefaultMaterial(), anonymous_namespace{KzComputation.cpp}::normalizedSLD(), and operator==().
|
inline |
Returns true if material underlying data is nullptr.
Definition at line 77 of file Material.h.
References m_material_impl.
Referenced by Material(), and operator=().
bool Material::isDefaultMaterial | ( | ) | const |
Returns true if material has refractive index of (1.0, 0.0) and zero magnetization.
Definition at line 89 of file Material.cpp.
References isScalarMaterial(), and materialData().
complex_t Material::scalarSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld), sld (in ) being the scattering length density.
Definition at line 94 of file Material.cpp.
References m_material_impl.
Referenced by FormFactorDecoratorMaterial::getRefractiveIndexFactor().
Eigen::Matrix2cd Material::polarizedSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld) matrix with magnetization corrections.
Definition at line 99 of file Material.cpp.
References m_material_impl.
Referenced by FormFactorDecoratorMaterial::evaluatePol().
Material Material::rotatedMaterial | ( | const Transform3D & | transform | ) | const |
|
friend |
Definition at line 110 of file Material.cpp.
|
private |
Definition at line 97 of file Material.h.
Referenced by getName(), inverted(), isEmpty(), isMagneticMaterial(), isScalarMaterial(), magnetization(), Material(), materialData(), operator=(), polarizedSubtrSLD(), refractiveIndex(), refractiveIndex2(), scalarSubtrSLD(), and typeID().