32 const double m_cylinder_radius(5);
33 const double m_cylinder_height(5);
37 R3 magnetic_field(0.0, 0.0, 0.0);
40 Layer vacuum_layer(vacuum_material);
41 Layer substrate_layer(substrate_material);
43 Cylinder ff_cylinder(m_cylinder_radius, m_cylinder_height);
45 Particle particle(particle_material, ff_cylinder);
51 sample->addLayer(vacuum_layer);
52 sample->addLayer(substrate_layer);
62 const double m_cylinder_radius(5);
63 const double m_cylinder_height(5);
67 R3 magnetization(0.0, 1e6, 0.0);
70 Layer vacuum_layer(vacuum_material);
71 Layer substrate_layer(substrate_material);
73 Cylinder ff_cylinder(m_cylinder_radius, m_cylinder_height);
75 Particle particle(particle_material, ff_cylinder);
81 sample->addLayer(vacuum_layer);
82 sample->addLayer(substrate_layer);
92 const double m_sphere_radius(5);
94 R3 magnetization(0.0, 0.0, 1e7);
99 Sphere ff_sphere(m_sphere_radius);
100 Particle particle(particle_material, ff_sphere);
101 R3 position(0.0, 0.0, -2.0 * m_sphere_radius);
107 Layer vacuum_layer(vacuum_material);
108 Layer substrate_layer(substrate_material);
109 substrate_layer.
addLayout(particle_layout);
112 sample->addLayer(vacuum_layer);
113 sample->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.
IParticle * translate(R3 translation)
Translates the particle, and returns this.
A layer in a MultiLayer sample.
void addLayout(const ParticleLayout &layout)
A wrapper for underlying material implementation.
Our sample model: a stack of layers one below the other.
Decorator class that adds particles to ISampleNode objects.
void addParticle(const IParticle &particle, double abundance=-1.0)
Adds particle to the layout with abundance, position and the rotation defined.
A particle with a form factor and refractive index.
Material RefractiveMaterial(const std::string &name, complex_t refractive_index, R3 magnetization)
MultiLayer * createMagneticParticleZeroField()
MultiLayer * createMagneticSpheres()
MultiLayer * createMagneticCylinders()