24 const double middle_layer_thickness(60.0 * Units::nanometer);
26 MultiLayer* LayersWithAbsorptionBySLDBuilder::buildSample()
const
28 Material ambience_mat = MaterialBySLD(
"Vacuum", 0.0, 0.0);
29 Material middle_mat = MaterialBySLD(
"Teflon", 4.7573e-6, 1.6724e-12);
30 Material substrate_mat = MaterialBySLD(
"Substrate", 2.0728e-06, 2.3747e-11);
31 Material particle_mat = MaterialBySLD(
"Ag", 3.4682e-06, 1.0309e-08);
36 particle.setRotation(
RotationZ(10.0 * Units::degree));
37 particle.rotate(
RotationY(10.0 * Units::degree));
38 particle.rotate(
RotationX(10.0 * Units::degree));
39 particle.setPosition(
kvector_t(0.0, 0.0, -middle_layer_thickness / 2.0));
44 Layer vacuum_layer(ambience_mat);
45 Layer middle_layer(middle_mat, middle_layer_thickness);
46 Layer substrate(substrate_mat);
48 middle_layer.addLayout(layout);
Defines class LayersWithAbsorptionBySLDBuilder.
Factory functions used to create material instances.
Defines class MultiLayer.
Defines class ParticleLayout.
Defines some unit conversion factors and other constants in namespace Units.
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 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 x axis.
A rotation about the y axis.
A rotation about the z axis.