BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Public Member Functions | |
virtual | ~RefractiveMaterialImpl ()=default |
RefractiveMaterialImpl * | clone () const override |
complex_t | refractiveIndex (double wavelength) const override |
complex_t | refractiveIndex2 (double wavelength) const override |
complex_t | materialData () const override |
MATERIAL_TYPES | typeID () const override |
complex_t | scalarSubtrSLD (const WavevectorInfo &wavevectors) const override |
void | print (std::ostream &ostr) const override |
MagneticMaterialImpl * | inverted () const override final |
bool | isScalarMaterial () const override final |
bool | isMagneticMaterial () const override final |
kvector_t | magnetization () const override final |
Eigen::Matrix2cd | polarizedSubtrSLD (const WavevectorInfo &wavevectors) const override final |
MagneticMaterialImpl * | rotatedMaterial (const Transform3D &transform) const override final |
const std::string & | getName () const |
Private Member Functions | |
RefractiveMaterialImpl (const std::string &name, double delta, double beta, kvector_t magnetization) | |
void | setMagnetization (kvector_t magnetization) |
Private Attributes | |
double | m_delta |
double | m_beta |
kvector_t | m_magnetization |
const std::string | m_name |
Friends | |
Material | HomogeneousMaterial (const std::string &, double, double, kvector_t) |
Material implementation based on refractive coefficiencts (valid for one wavelength value only)
Definition at line 24 of file RefractiveMaterialImpl.h.
|
virtualdefault |
|
private |
Definition at line 18 of file RefractiveMaterialImpl.cpp.
Referenced by clone().
|
overridevirtual |
Returns pointer to a copy of material.
Implements MagneticMaterialImpl.
Definition at line 27 of file RefractiveMaterialImpl.cpp.
References RefractiveMaterialImpl().
|
overridevirtual |
Returns refractive index For this particular implementation returned value does not depend on passed wavelength.
Implements BaseMaterialImpl.
Definition at line 32 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 37 of file RefractiveMaterialImpl.cpp.
References m_beta, and m_delta.
Referenced by scalarSubtrSLD().
|
overridevirtual |
Returns underlying material data.
Implements BaseMaterialImpl.
Definition at line 43 of file RefractiveMaterialImpl.cpp.
|
inlineoverridevirtual |
Returns type of material implementation.
Implements BaseMaterialImpl.
Definition at line 48 of file RefractiveMaterialImpl.h.
References RefractiveMaterial.
|
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 48 of file RefractiveMaterialImpl.cpp.
References WavevectorInfo::getWavelength(), M_PI, anonymous_namespace{ProfileHelper.cpp}::prefactor, refractiveIndex2(), and anonymous_namespace{SlicedCylindersBuilder.cpp}::wavelength().
|
overridevirtual |
Prints object data.
Implements BaseMaterialImpl.
Definition at line 55 of file RefractiveMaterialImpl.cpp.
References BaseMaterialImpl::getName(), m_beta, m_delta, and MagneticMaterialImpl::magnetization().
|
finaloverridevirtualinherited |
Constructs a material with inverted magnetization.
Implements BaseMaterialImpl.
Definition at line 44 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::clone(), BaseMaterialImpl::getName(), MagneticMaterialImpl::isScalarMaterial(), MagneticMaterialImpl::magnetization(), and MagneticMaterialImpl::setMagnetization().
|
finaloverridevirtualinherited |
Indicates whether the interaction with the material is scalar.
This means that different polarization states will be diffracted equally
Implements BaseMaterialImpl.
Definition at line 52 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::m_magnetization.
Referenced by MagneticMaterialImpl::inverted(), and MagneticMaterialImpl::isMagneticMaterial().
|
finaloverridevirtualinherited |
Implements BaseMaterialImpl.
Definition at line 57 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::isScalarMaterial().
|
finaloverridevirtualinherited |
Returns the magnetization (in A/m)
Implements BaseMaterialImpl.
Definition at line 62 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::m_magnetization.
Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), print(), and MagneticMaterialImpl::setMagnetization().
|
finaloverridevirtualinherited |
Returns ( - sld) matrix with magnetization corrections.
Implements BaseMaterialImpl.
Definition at line 67 of file MagneticMaterialImpl.cpp.
References WavevectorInfo::getQ(), MagneticMaterialImpl::m_magnetization, magnetization_prefactor, MaterialUtils::MagnetizationCorrection(), anonymous_namespace{MagneticMaterialImpl.cpp}::OrthogonalToBaseVector(), and BaseMaterialImpl::scalarSubtrSLD().
|
finaloverridevirtualinherited |
Implements BaseMaterialImpl.
Definition at line 74 of file MagneticMaterialImpl.cpp.
References MagneticMaterialImpl::clone(), MagneticMaterialImpl::m_magnetization, MagneticMaterialImpl::setMagnetization(), and Transform3D::transformed().
|
inlineprivateinherited |
Definition at line 57 of file MagneticMaterialImpl.h.
References MagneticMaterialImpl::m_magnetization, and MagneticMaterialImpl::magnetization().
Referenced by MagneticMaterialImpl::inverted(), and MagneticMaterialImpl::rotatedMaterial().
|
inlineinherited |
Returns name of the material.
Definition at line 78 of file BaseMaterialImpl.h.
References BaseMaterialImpl::m_name.
Referenced by MagneticMaterialImpl::inverted(), MaterialBySLDImpl::print(), and print().
Definition at line 29 of file MaterialFactoryFuncs.cpp.
|
private |
coefficient for refractive index
Definition at line 64 of file RefractiveMaterialImpl.h.
Referenced by materialData(), print(), refractiveIndex(), and refractiveIndex2().
|
private |
coefficient for refractive index
Definition at line 65 of file RefractiveMaterialImpl.h.
Referenced by materialData(), print(), refractiveIndex(), and refractiveIndex2().
|
privateinherited |
magnetization
Definition at line 59 of file MagneticMaterialImpl.h.
Referenced by MagneticMaterialImpl::isScalarMaterial(), MagneticMaterialImpl::magnetization(), MagneticMaterialImpl::polarizedSubtrSLD(), MagneticMaterialImpl::rotatedMaterial(), and MagneticMaterialImpl::setMagnetization().
|
privateinherited |
Definition at line 81 of file BaseMaterialImpl.h.
Referenced by BaseMaterialImpl::getName().