25 registerParameter(
"ti_thickness", &m_l_ti);
28 MultiLayer* ResonatorBuilder::buildSample()
const
38 Layer l_TiO2(m_TiO2, 3.0 * Units::nm);
39 Layer l_Ti_top(m_Ti, 10.0 * Units::nm);
40 Layer l_Ti(m_Ti, m_l_ti);
42 Layer l_Pt(m_Pt, 32.0 * Units::nm);
45 LayerRoughness roughness(2.0 * Units::nm, 0.8, 10.0 * Units::micrometer);
47 result->addLayer(l_Si);
49 const int nlayers = 3;
50 for (
size_t i = 0; i < nlayers; ++i) {
51 result->addLayerWithTopRoughness(l_Ti, roughness);
52 result->addLayerWithTopRoughness(l_Pt, roughness);
55 result->addLayerWithTopRoughness(l_Ti_top, roughness);
56 result->addLayerWithTopRoughness(l_TiO2, roughness);
57 result->addLayerWithTopRoughness(l_D2O, roughness);
59 result->setCrossCorrLength(400 * Units::nm);
Defines class LayerRoughness.
Factory functions used to create material instances.
Defines class MultiLayer.
Defines ResonatorBuilder class.
Defines some unit conversion factors and other constants in namespace Units.
Interface to the class capable to build samples to simulate.
A roughness of interface between two layers.
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.
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).
Constants and functions for physical unit conversions.