21 PlainMultiLayerBySLDBuilder::PlainMultiLayerBySLDBuilder(
int n_layers)
22 : m_number_of_layers(n_layers), m_si{2.0704e-06, 2.3726e-11}, m_ti{-1.9493e-06, 9.6013e-10},
23 m_ni{9.4245e-06, 1.1423e-09}, m_thick_ti(3.0), m_thick_ni(7.0)
25 registerParameter(
"ti_thickness", &m_thick_ti);
28 MultiLayer* PlainMultiLayerBySLDBuilder::buildSample()
const
30 Material vacuum_material = MaterialBySLD();
35 Layer vacuum_layer(vacuum_material);
38 Layer substrate_layer(substrate_material);
42 for (
int i = 0; i < m_number_of_layers; ++i) {
46 multi_layer->
addLayer(substrate_layer);
Factory functions used to create material instances.
Defines class MultiLayer.
Declares the class PlainMultiLayerBySLDBuilder.
Defines some unit conversion factors and other constants in namespace Units.
A layer, with thickness (in nanometer) and material.
A wrapper for underlying material implementation.
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds object to multilayer.
double m_thick_ni
thickness of Ni layer
double m_thick_ti
thickness of titanium layer
double sld_real
real part of sld in AA^{-2}
double sld_imag
imaginary part of sld in AA^{-2}