24 const double delta = 1.0 - refractive_index.real();
25 const double beta = refractive_index.imag();
32 std::unique_ptr<RefractiveMaterialImpl> mat_impl(
34 return Material(std::move(mat_impl));
50 constexpr
double inv_sq_angstroms = 1.0 / (Units::angstrom * Units::angstrom);
52 name, sld_real * inv_sq_angstroms, sld_imag * inv_sq_angstroms, magnetization));
53 return Material(std::move(mat_impl));
Defines class MaterialBySLDImpl.
Declares functions in namespace MaterialUtils.
Defines class RefractiveMaterialImpl.
Defines some unit conversion factors and other constants in namespace Units.
Material implementation based on wavelength-independent data (valid for a range of wavelengths)
A wrapper for underlying material implementation.
Material implementation based on refractive coefficiencts (valid for one wavelength value only)
Material MaterialBySLD(const std::string &name, double sld_real, double sld_imag, kvector_t magnetization)
Constructs a wavelength-independent material with a given complex-valued scattering length density (S...
Material HomogeneousMaterial(const std::string &name, complex_t refractive_index, kvector_t magnetization)
Constructs a material with name, refractive_index and magnetization (in A/m).