18 RefractiveMaterialImpl::RefractiveMaterialImpl(
const std::string& name, 
double delta, 
double beta,
 
   21       m_beta(beta < 0. ? throw std::runtime_error(
 
   22                  "The imaginary part of the refractive index must be greater or equal zero")
 
   34     return complex_t(1.0 - m_delta, m_beta);
 
   39     complex_t result(1.0 - m_delta, m_beta);
 
   40     return result * result;
 
   45     return complex_t(m_delta, m_beta);
 
   50     double wavelength = wavevectors.getWavelength();
 
   51     double prefactor = M_PI / wavelength / wavelength;
 
   57     ostr << 
"RefractiveMaterial:" << 
getName() << 
"<" << 
this << 
">{ " 
   58          << 
"delta=" << m_delta << 
", beta=" << m_beta << 
", B=" << 
magnetization() << 
"}";
 
Defines class RefractiveMaterialImpl.
 
const std::string & getName() const
Returns name of the material.
 
Basic implementation for magnetized material.
 
kvector_t magnetization() const override final
Returns the magnetization (in A/m)
 
Material implementation based on refractive coefficiencts (valid for one wavelength value only)
 
complex_t refractiveIndex2(double wavelength) const override
Returns squared refractive index.
 
complex_t materialData() const override
Returns underlying material data.
 
complex_t refractiveIndex(double wavelength) const override
Returns refractive index For this particular implementation returned value does not depend on passed ...
 
void print(std::ostream &ostr) const override
Prints object data.
 
RefractiveMaterialImpl * clone() const override
Returns pointer to a copy of material.
 
complex_t scalarSubtrSLD(const WavevectorInfo &wavevectors) const override
Returns (  - sld), sld (in ) being the scattering length density.
 
Holds all wavevector information relevant for calculating form factors.