31 MultiLayer* MagneticParticleZeroFieldBuilder::buildSample()
const
33 const double m_cylinder_radius(5 * Units::nanometer);
34 const double m_cylinder_height(5 * Units::nanometer);
41 Layer vacuum_layer(vacuum_material);
42 Layer substrate_layer(substrate_material);
46 Particle particle(particle_material, ff_cylinder);
49 vacuum_layer.addLayout(particle_layout);
53 multi_layer->
addLayer(substrate_layer);
61 MultiLayer* MagneticCylindersBuilder::buildSample()
const
63 const double m_cylinder_radius(5 * Units::nanometer);
64 const double m_cylinder_height(5 * Units::nanometer);
71 Layer vacuum_layer(vacuum_material);
72 Layer substrate_layer(substrate_material);
76 Particle particle(particle_material, ff_cylinder);
79 vacuum_layer.addLayout(particle_layout);
83 multi_layer->
addLayer(substrate_layer);
91 MultiLayer* MagneticSpheresBuilder::buildSample()
const
93 const double m_sphere_radius(5 * Units::nanometer);
101 Particle particle(particle_material, ff_sphere);
102 kvector_t position(0.0, 0.0, -2.0 * m_sphere_radius);
105 particle_layout.
addParticle(particle, 1.0, position);
107 Layer vacuum_layer(vacuum_material);
108 Layer substrate_layer(substrate_material);
109 substrate_layer.addLayout(particle_layout);
112 multi_layer->
addLayer(vacuum_layer);
113 multi_layer->
addLayer(substrate_layer);
Defines class LayerInterface.
Defines class LayerRoughness.
Defines class to build magnetic samples.
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.
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).