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));
52 name, sld_real * inv_sq_angstroms, sld_imag * inv_sq_angstroms, magnetization));
53 return Material(std::move(mat_impl));
std::complex< double > complex_t
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 HomogeneousMaterial(const std::string &name, complex_t refractive_index, kvector_t magnetization)
Constructs a material with name, refractive_index and magnetization (in A/m).
static constexpr double angstrom