25 MultiLayer* MultipleLayoutBuilder::buildSample()
const
27 const double cylinder_height(5 * Units::nanometer);
28 const double cylinder_radius(5 * Units::nanometer);
29 const double prisheight(5 * Units::nanometer);
30 const double prislength(10 * Units::nanometer);
31 const double cylinder_weight(0.5);
33 Layer vacuum_layer(refMat::Vacuum);
34 Layer substrate_layer(refMat::Substrate);
40 Particle cylinder(refMat::Particle, ff_cylinder);
43 Particle prism3(refMat::Particle, ff_prism3);
45 particle_layout_1.
addParticle(cylinder, cylinder_weight);
46 particle_layout_2.
addParticle(prism3, 1.0 - cylinder_weight);
48 vacuum_layer.addLayout(particle_layout_1);
49 vacuum_layer.addLayout(particle_layout_2);
53 multi_layer->
addLayer(substrate_layer);
Defines class MultiLayer.
Defines class MultipleLayoutBuilder.
Defines class ParticleLayout.
Defines materials in namespace refMat.
Defines some unit conversion factors and other constants in namespace Units.
A layer, with thickness (in nanometer) and material.
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds object to multilayer.
Decorator class that adds particles to ISample objects.
void addParticle(const IAbstractParticle &particle, double abundance=-1.0, const kvector_t position={}, const IRotation &rotation=IdentityRotation())
Adds particle to the layout with abundance, position and the rotation defined.
A particle with a form factor and refractive index.