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).