22 MultiLayer* MultiLayerWithRoughnessBuilder::buildSample()
const
24 const double thicknessA(2.5 * Units::nanometer);
25 const double thicknessB(5.0 * Units::nanometer);
26 const double sigma(1.0 * Units::nanometer);
27 const double hurst(0.3);
28 const double lateralCorrLength(5.0 * Units::nanometer);
29 const double crossCorrLength(10.0 * Units::nanometer);
36 Layer vacuum_layer(vacuum_material, 0);
37 Layer partA_layer(part_a_material, thicknessA);
38 Layer partB_layer(part_b_material, thicknessB);
39 Layer substrate_layer(substrate_material, 0);
45 for (
int i = 0; i < 5; ++i) {
Defines class LayerRoughness.
Factory functions used to create material instances.
Defines class MultiLayerWithRoughnessBuilder.
Defines class MultiLayer.
Defines some unit conversion factors and other constants in namespace Units.
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.
void setCrossCorrLength(double crossCorrLength)
Sets cross correlation length of roughnesses between interfaces.
void addLayer(const Layer &layer)
Adds object to multilayer.
void addLayerWithTopRoughness(const Layer &layer, const LayerRoughness &roughness)
Adds layer with top roughness.
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).