BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
A wrapper for underlying material implementation.
Definition at line 35 of file Material.h.
Public Member Functions | |
Material (const Material &material) | |
Material (Material &&material)=default | |
Material (std::unique_ptr< BaseMaterialImpl > &&material_impl) | |
Creates material with particular material implementation. More... | |
Material | inverted () const |
Constructs a material with inverted magnetization. More... | |
bool | isDefaultMaterial () const |
Returns true if material has refractive index of (1.0, 0.0) and zero magnetization. More... | |
bool | isEmpty () const |
Returns true if material underlying data is nullptr. More... | |
bool | isMagneticMaterial () const |
bool | isScalarMaterial () const |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally. More... | |
R3 | magnetization () const |
Get the magnetization (in A/m) More... | |
complex_t | materialData () const |
Returns delta + i beta. More... | |
std::string | materialName () const |
Returns the name of material. More... | |
Material & | operator= (const Material &other) |
Material & | operator= (Material &&other)=default |
SpinMatrix | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const |
Returns ( ![]() | |
complex_t | refractiveIndex (double wavelength) const |
Returns refractive index. More... | |
complex_t | refractiveIndex2 (double wavelength) const |
Returns squared refractive index. More... | |
Material | rotatedMaterial (const RotMatrix &transform) const |
complex_t | scalarSubtrSLD (const WavevectorInfo &wavevectors) const |
Returns ( ![]() ![]() | |
MATERIAL_TYPES | typeID () const |
Returns the type of underlying material implementation. More... | |
Private Attributes | |
std::unique_ptr< BaseMaterialImpl > | m_material_impl |
Friends | |
std::ostream & | operator<< (std::ostream &ostr, const Material &mat) |
Material::Material | ( | std::unique_ptr< BaseMaterialImpl > && | material_impl | ) |
Creates material with particular material implementation.
Definition at line 22 of file Material.cpp.
Referenced by inverted().
Material::Material | ( | const Material & | material | ) |
Definition at line 27 of file Material.cpp.
References ASSERT, isEmpty(), and m_material_impl.
|
default |
Material Material::inverted | ( | ) | const |
Constructs a material with inverted magnetization.
Definition at line 42 of file Material.cpp.
References Material(), and m_material_impl.
bool Material::isDefaultMaterial | ( | ) | const |
Returns true if material has refractive index of (1.0, 0.0) and zero magnetization.
Definition at line 88 of file Material.cpp.
References isScalarMaterial(), and materialData().
bool Material::isEmpty | ( | ) | const |
Returns true if material underlying data is nullptr.
Definition at line 93 of file Material.cpp.
References m_material_impl.
Referenced by Material(), and operator=().
bool Material::isMagneticMaterial | ( | ) | const |
Definition at line 63 of file Material.cpp.
References m_material_impl.
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 58 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), and isDefaultMaterial().
R3 Material::magnetization | ( | ) | const |
Get the magnetization (in A/m)
Definition at line 78 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), Slice::initBField(), and operator==().
complex_t Material::materialData | ( | ) | const |
Returns delta + i beta.
Definition at line 83 of file Material.cpp.
References m_material_impl.
Referenced by ProfileHelper::calculateProfile(), SampleToPython::defineMaterials(), isDefaultMaterial(), and operator==().
std::string Material::materialName | ( | ) | const |
Returns the name of material.
Definition at line 68 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), MaterialKeyHandler::insertMaterial(), and operator==().
Definition at line 33 of file Material.cpp.
References ASSERT, isEmpty(), and m_material_impl.
SpinMatrix Material::polarizedSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld) matrix with magnetization corrections.
Definition at line 103 of file Material.cpp.
References m_material_impl.
complex_t Material::refractiveIndex | ( | double | wavelength | ) | const |
Returns refractive index.
Definition at line 48 of file Material.cpp.
References m_material_impl.
Referenced by Slice::polarizedReducedPotential(), and Slice::scalarReducedPotential().
complex_t Material::refractiveIndex2 | ( | double | wavelength | ) | const |
Returns squared refractive index.
Definition at line 53 of file Material.cpp.
References m_material_impl.
Referenced by RoughMultiLayerContribution::get_refractive_term().
Definition at line 108 of file Material.cpp.
complex_t Material::scalarSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld), sld (in
) being the scattering length density.
Definition at line 98 of file Material.cpp.
References m_material_impl, and WavevectorInfo::vacuumLambda().
MATERIAL_TYPES Material::typeID | ( | ) | const |
Returns the type of underlying material implementation.
Definition at line 73 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), and operator==().
|
friend |
Definition at line 114 of file Material.cpp.
|
private |
Definition at line 100 of file Material.h.
Referenced by Material(), inverted(), isEmpty(), isMagneticMaterial(), isScalarMaterial(), magnetization(), materialData(), materialName(), operator=(), polarizedSubtrSLD(), refractiveIndex(), refractiveIndex2(), scalarSubtrSLD(), and typeID().