BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Material implementation based on refractive coefficiencts (valid for one wavelength value only)
Definition at line 29 of file RefractiveMaterialImpl.h.
Public Member Functions | |
~RefractiveMaterialImpl () override=default | |
RefractiveMaterialImpl * | clone () const override |
Returns pointer to a copy of material. More... | |
MagneticMaterialImpl * | inverted () const override |
Constructs a material with inverted magnetization. More... | |
bool | isMagneticMaterial () const override |
bool | isScalarMaterial () const override |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally. More... | |
R3 | magnetization () const override |
Returns the magnetization (in A/m) More... | |
complex_t | materialData () const override |
Returns underlying material data. More... | |
const std::string & | matName () const |
Returns name of the material. More... | |
SpinMatrix | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const override |
Returns ( ![]() | |
std::string | print () const override |
Prints object data. More... | |
complex_t | refractiveIndex (double wavelength) const override |
Returns refractive index For this particular implementation returned value does not depend on passed wavelength. More... | |
complex_t | refractiveIndex2 (double wavelength) const override |
Returns squared refractive index. For this particular implementation returned value does not depend on passed wavelength. More... | |
MagneticMaterialImpl * | rotatedMaterial (const RotMatrix &transform) const override |
complex_t | scalarSubtrSLD (double lambda0) const override |
Returns ( ![]() ![]() | |
MATERIAL_TYPES | typeID () const override |
Returns type of material implementation. More... | |
Private Member Functions | |
RefractiveMaterialImpl (const std::string &name, double delta, double beta, R3 magnetization) | |
void | setMagnetization (R3 magnetization) |
Private Attributes | |
const double | m_beta |
![]() ![]() | |
const double | m_delta |
![]() ![]() | |
R3 | m_magnetization |
magnetization More... | |
const std::string | m_name |
Friends | |
Material | RefractiveMaterial (const std::string &, double, double, R3) |
|
overridedefault |
|
private |
Definition at line 19 of file RefractiveMaterialImpl.cpp.
Referenced by clone().
|
overridevirtual |
Returns pointer to a copy of material.
Implements MagneticMaterialImpl.
Definition at line 29 of file RefractiveMaterialImpl.cpp.
References RefractiveMaterialImpl().
|
overridevirtualinherited |
Constructs a material with inverted magnetization.
Implements BaseMaterialImpl.
Definition at line 48 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::clone(), MagneticMaterialImpl::isScalarMaterial(), MagneticMaterialImpl::magnetization(), BaseMaterialImpl::matName(), and MagneticMaterialImpl::setMagnetization().
|
overridevirtualinherited |
Implements BaseMaterialImpl.
Definition at line 61 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::isScalarMaterial().
|
overridevirtualinherited |
Indicates whether the interaction with the material is scalar. This means that different polarization states will be diffracted equally.
Implements BaseMaterialImpl.
Definition at line 56 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::m_magnetization.
Referenced by MagneticMaterialImpl::inverted(), and MagneticMaterialImpl::isMagneticMaterial().
|
overridevirtualinherited |
Returns the magnetization (in A/m)
Implements BaseMaterialImpl.
Definition at line 66 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::m_magnetization.
Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), print(), and MagneticMaterialImpl::setMagnetization().
|
overridevirtual |
Returns underlying material data.
Implements BaseMaterialImpl.
Definition at line 45 of file RefractiveMaterialImpl.cpp.
|
inlineinherited |
Returns name of the material.
Definition at line 85 of file BaseMaterialImpl.h.
References BaseMaterialImpl::m_name.
Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), and print().
|
overridevirtualinherited |
Returns ( - sld) matrix with magnetization corrections.
Implements BaseMaterialImpl.
Definition at line 71 of file MagneticMaterialImpl.cpp.
References WavevectorInfo::getQ(), MagneticMaterialImpl::m_magnetization, MaterialUtils::MagnetizationCorrection(), BaseMaterialImpl::scalarSubtrSLD(), and WavevectorInfo::vacuumLambda().
|
overridevirtual |
Prints object data.
Implements BaseMaterialImpl.
Definition at line 55 of file RefractiveMaterialImpl.cpp.
References m_beta, m_delta, MagneticMaterialImpl::magnetization(), and BaseMaterialImpl::matName().
|
overridevirtual |
Returns refractive index For this particular implementation returned value does not depend on passed wavelength.
Implements BaseMaterialImpl.
Definition at line 34 of file RefractiveMaterialImpl.cpp.
|
overridevirtual |
Returns squared refractive index. For this particular implementation returned value does not depend on passed wavelength.
Implements BaseMaterialImpl.
Definition at line 39 of file RefractiveMaterialImpl.cpp.
References m_beta, and m_delta.
Referenced by scalarSubtrSLD().
|
overridevirtualinherited |
Implements BaseMaterialImpl.
Definition at line 78 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::clone(), MagneticMaterialImpl::m_magnetization, MagneticMaterialImpl::setMagnetization(), and RotMatrix::transformed().
|
overridevirtual |
Returns ( - sld), sld (in
) being the scattering length density. If the wavelength associated with passed wavevector is different from the one associated with refractive coefficients used during the object construction, provided result is inconsistent.
Implements BaseMaterialImpl.
Definition at line 50 of file RefractiveMaterialImpl.cpp.
References M_PI, and refractiveIndex2().
|
inlineprivateinherited |
Definition at line 61 of file MagneticMaterialImpl.h.
References MagneticMaterialImpl::m_magnetization, and MagneticMaterialImpl::magnetization().
Referenced by MagneticMaterialImpl::inverted(), and MagneticMaterialImpl::rotatedMaterial().
|
inlineoverridevirtual |
Returns type of material implementation.
Implements BaseMaterialImpl.
Definition at line 52 of file RefractiveMaterialImpl.h.
References RefractiveMaterial.
|
friend |
Definition at line 28 of file MaterialFactoryFuncs.cpp.
|
private |
coefficient for refractive index
Definition at line 69 of file RefractiveMaterialImpl.h.
Referenced by materialData(), print(), refractiveIndex(), and refractiveIndex2().
|
private |
coefficient for refractive index
Definition at line 67 of file RefractiveMaterialImpl.h.
Referenced by materialData(), print(), refractiveIndex(), and refractiveIndex2().
|
privateinherited |
magnetization
Definition at line 63 of file MagneticMaterialImpl.h.
Referenced by MagneticMaterialImpl::isScalarMaterial(), MagneticMaterialImpl::magnetization(), MagneticMaterialImpl::polarizedSubtrSLD(), MagneticMaterialImpl::rotatedMaterial(), and MagneticMaterialImpl::setMagnetization().
|
privateinherited |
Definition at line 88 of file BaseMaterialImpl.h.
Referenced by BaseMaterialImpl::matName().