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).