24 MultiLayer* CustomMorphologyBuilder::buildSample()
const
26 Layer vacuum_layer(refMat::Vacuum);
31 FormFactorBox ff1(2.0 * Units::nanometer, 2.0 * Units::nanometer, 1.0 * Units::nanometer);
32 kvector_t pos1(0.0 * Units::nanometer, 0.0 * Units::nanometer, 0.0);
37 FormFactorBox ff2(2.0 * Units::nanometer, 4.0 * Units::nanometer, 1.0 * Units::nanometer);
38 kvector_t pos2(5.0 * Units::nanometer, 5.0 * Units::nanometer, 0.0);
40 Particle p2(refMat::Particle, ff2, m2);
44 FormFactorBox ff3(2.0 * Units::nanometer, 6.0 * Units::nanometer, 1.0 * Units::nanometer);
45 kvector_t pos3(-5.0 * Units::nanometer, -5.0 * Units::nanometer, 0.0);
47 Particle p3(refMat::Particle, ff3, m3);
51 FormFactorBox ff4(2.0 * Units::nanometer, 8.0 * Units::nanometer, 1.0 * Units::nanometer);
52 kvector_t pos4(5.0 * Units::nanometer, -5.0 * Units::nanometer, 0.0);
54 Particle p4(refMat::Particle, ff4, m4);
58 FormFactorBox ff5(2.0 * Units::nanometer, 10.0 * Units::nanometer, 1.0 * Units::nanometer);
59 kvector_t pos5(-5.0 * Units::nanometer, 5.0 * Units::nanometer, 0.0);
61 Particle p5(refMat::Particle, ff5, m5);
65 FormFactorBox ff6(2.0 * Units::nanometer, 2.0 * Units::nanometer, 1.0 * Units::nanometer);
66 kvector_t pos6(0.0 * Units::nanometer, 0.0 * Units::nanometer, 0.0);
68 Particle p6(refMat::Particle, ff6, m6);
72 FormFactorBox ff7(2.0 * Units::nanometer, 4.0 * Units::nanometer, 1.0 * Units::nanometer);
73 kvector_t pos7(5.0 * Units::nanometer, 5.0 * Units::nanometer, 0.0);
75 Particle p7(refMat::Particle, ff7, m7);
79 FormFactorBox ff8(2.0 * Units::nanometer, 6.0 * Units::nanometer, 1.0 * Units::nanometer);
80 kvector_t pos8(-5.0 * Units::nanometer, -5.0 * Units::nanometer, 0.0);
82 Particle p8(refMat::Particle, ff8, m8);
86 FormFactorBox ff9(2.0 * Units::nanometer, 8.0 * Units::nanometer, 1.0 * Units::nanometer);
87 kvector_t pos9(5.0 * Units::nanometer, -5.0 * Units::nanometer, 0.0);
89 Particle p9(refMat::Particle, ff9, m9);
93 FormFactorBox ff10(2.0 * Units::nanometer, 10.0 * Units::nanometer, 1.0 * Units::nanometer);
94 kvector_t pos10(-5.0 * Units::nanometer, 5.0 * Units::nanometer, 0.0);
96 Particle p10(refMat::Particle, ff10, m10);
97 p10.setPosition(pos10);
100 vacuum_layer.addLayout(particle_layout);
103 multi_layer->
addLayer(vacuum_layer);
Defines class CustomMorphologyBuilder.
Defines class MultiLayer.
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.
A rotation about the z axis.