BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
A wrapper for underlying material implementation. More...
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... | |
std::string | getName () const |
Returns the name of material. 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. More... | |
kvector_t | magnetization () const |
Get the magnetization (in A/m) More... | |
complex_t | materialData () const |
Returns underlying material data. More... | |
Material & | operator= (const Material &other) |
Material & | operator= (Material &&other)=default |
Eigen::Matrix2cd | 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 Transform3D &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) |
A wrapper for underlying material implementation.
Definition at line 29 of file Material.h.
Material::Material | ( | std::unique_ptr< BaseMaterialImpl > | material_impl | ) |
Creates material with particular material implementation.
Definition at line 20 of file Material.cpp.
Referenced by inverted().
Material::Material | ( | const Material & | material | ) |
Definition at line 25 of file Material.cpp.
References isEmpty(), and m_material_impl.
|
default |
std::string Material::getName | ( | ) | const |
Returns the name of material.
Definition at line 66 of file Material.cpp.
References m_material_impl.
Referenced by RealSpaceBuilderUtils::applyParticleColor(), createAveragedMaterial(), GUIDomainSampleVisitor::createMaterialFromDomain(), SampleToPython::defineMaterials(), MaterialKeyHandler::insertMaterial(), and operator==().
Material Material::inverted | ( | ) | const |
Constructs a material with inverted magnetization.
Definition at line 40 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 86 of file Material.cpp.
References isScalarMaterial(), and materialData().
|
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::isMagneticMaterial | ( | ) | const |
Definition at line 61 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 56 of file Material.cpp.
References m_material_impl.
Referenced by SampleToPython::defineMaterials(), and isDefaultMaterial().
kvector_t Material::magnetization | ( | ) | const |
Get the magnetization (in A/m)
Definition at line 76 of file Material.cpp.
References m_material_impl.
Referenced by createAveragedMaterial(), GUIDomainSampleVisitor::createMaterialFromDomain(), 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 81 of file Material.cpp.
References m_material_impl.
Referenced by createAveragedMaterial(), GUIDomainSampleVisitor::createMaterialFromDomain(), SampleToPython::defineMaterials(), isDefaultMaterial(), and operator==().
Definition at line 32 of file Material.cpp.
References isEmpty(), and m_material_impl.
Eigen::Matrix2cd Material::polarizedSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld) matrix with magnetization corrections.
Definition at line 96 of file Material.cpp.
References m_material_impl.
Referenced by FormFactorDecoratorMaterial::evaluatePol().
complex_t Material::refractiveIndex | ( | double | wavelength | ) | const |
Returns refractive index.
Definition at line 46 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 51 of file Material.cpp.
References m_material_impl.
Material Material::rotatedMaterial | ( | const Transform3D & | transform | ) | const |
complex_t Material::scalarSubtrSLD | ( | const WavevectorInfo & | wavevectors | ) | const |
Returns ( - sld), sld (in
) being the scattering length density.
Definition at line 91 of file Material.cpp.
References m_material_impl.
Referenced by FormFactorDecoratorMaterial::getRefractiveIndexFactor().
MATERIAL_TYPES Material::typeID | ( | ) | const |
Returns the type of underlying material implementation.
Definition at line 71 of file Material.cpp.
References m_material_impl.
Referenced by GUIDomainSampleVisitor::createMaterialFromDomain(), SampleToPython::defineMaterials(), and operator==().
|
friend |
Definition at line 107 of file Material.cpp.
|
private |
Definition at line 97 of file Material.h.
Referenced by Material(), getName(), inverted(), isEmpty(), isMagneticMaterial(), isScalarMaterial(), magnetization(), materialData(), operator=(), polarizedSubtrSLD(), refractiveIndex(), refractiveIndex2(), scalarSubtrSLD(), and typeID().