27 MultiLayer* CoreShellParticleBuilder::buildSample()
const
29 complex_t n_particle_shell(1.0 - 1e-4, 2e-8);
30 complex_t n_particle_core(1.0 - 6e-5, 2e-8);
35 Layer vacuum_layer(refMat::Vacuum);
37 FormFactorBox ff_box1(16 * Units::nanometer, 16 * Units::nanometer, 8 * Units::nanometer);
38 Particle shell_particle(shell_material, ff_box1);
40 FormFactorBox ff_box2(12 * Units::nanometer, 12 * Units::nanometer, 7 * Units::nanometer);
41 Particle core_particle(core_material, ff_box2);
47 vacuum_layer.addLayout(particle_layout);
56 MultiLayer* CoreShellBoxRotateZandYBuilder::buildSample()
const
58 const double layer_thickness(100.0 * Units::nanometer);
61 const double shell_length(50.0 * Units::nanometer);
62 const double shell_width(20.0 * Units::nanometer);
63 const double shell_height(10.0 * Units::nanometer);
64 double core_length = shell_length / 2.0;
65 double core_width = shell_width / 2.0;
66 double core_height = shell_height / 2.0;
71 kvector_t(0.0, 0.0, (shell_height - core_height) / 2.0));
72 coreshell.setRotation(
RotationZ(90.0 * Units::degree));
73 coreshell.rotate(
RotationY(90.0 * Units::degree));
74 coreshell.setPosition(
kvector_t(0.0, 0.0, -layer_thickness / 2.0));
79 Layer vacuum_layer(refMat::Vacuum);
80 Layer middle_layer(refMat::Teflon, layer_thickness);
81 middle_layer.addLayout(layout);
82 Layer substrate(refMat::Substrate2);
Defines class CoreShellParticleBuilder.
Defines class MultiLayer.
Defines ParticleCoreShell.
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.
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.
A particle with a core/shell geometry.
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 y axis.
A rotation about the z axis.
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).