BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
CylindersAndPrismsBuilder.cpp
Go to the documentation of this file.
1
// ************************************************************************************************
2
//
3
// BornAgain: simulate and fit reflection and scattering
4
//
5
//! @file Sample/StandardSamples/CylindersAndPrismsBuilder.cpp
6
//! @brief Implements class CylindersAndPrismsBuilder.
7
//!
8
//! @homepage http://www.bornagainproject.org
9
//! @license GNU General Public License v3 or higher (see COPYING)
10
//! @copyright Forschungszentrum Jülich GmbH 2018
11
//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12
//
13
// ************************************************************************************************
14
15
#include "
Sample/StandardSamples/CylindersAndPrismsBuilder.h
"
16
#include "
Sample/Aggregate/ParticleLayout.h
"
17
#include "
Sample/HardParticle/Cylinder.h
"
18
#include "
Sample/HardParticle/Prism3.h
"
19
#include "
Sample/Multilayer/Layer.h
"
20
#include "
Sample/Multilayer/MultiLayer.h
"
21
#include "
Sample/Particle/Particle.h
"
22
#include "
Sample/StandardSamples/ReferenceMaterials.h
"
23
24
MultiLayer
*
ExemplarySamples::createCylindersAndPrisms
()
25
{
26
auto
* sample =
new
MultiLayer
();
27
28
Layer
vacuum_layer(
refMat::Vacuum
);
29
Layer
substrate_layer(
refMat::Substrate
);
30
31
ParticleLayout
particle_layout;
32
33
Cylinder
ff_cylinder(5.0, 5.0);
34
Particle
cylinder(
refMat::Particle
, ff_cylinder);
35
36
Prism3
ff_prism3(10.0, 5.0);
37
Particle
prism3(
refMat::Particle
, ff_prism3);
38
39
particle_layout.
addParticle
(cylinder, 0.5);
40
particle_layout.
addParticle
(prism3, 0.5);
41
42
vacuum_layer.
addLayout
(particle_layout);
43
44
sample->addLayer(vacuum_layer);
45
sample->addLayer(substrate_layer);
46
return
sample;
47
}
Cylinder.h
Defines class Cylinder.
CylindersAndPrismsBuilder.h
Defines class CylindersAndPrismsBuilder.
Layer.h
Defines class Layer.
MultiLayer.h
Defines class MultiLayer.
ParticleLayout.h
Defines class ParticleLayout.
Particle.h
Defines class Particle.
Prism3.h
Defines class Prism3.
ReferenceMaterials.h
Defines materials in namespace refMat.
Cylinder
A circular cylinder.
Definition:
Cylinder.h:23
Layer
A layer in a MultiLayer sample.
Definition:
Layer.h:26
Layer::addLayout
void addLayout(const ParticleLayout &layout)
Definition:
Layer.cpp:49
MultiLayer
Our sample model: a stack of layers one below the other.
Definition:
MultiLayer.h:43
ParticleLayout
Decorator class that adds particles to ISampleNode objects.
Definition:
ParticleLayout.h:28
ParticleLayout::addParticle
void addParticle(const IParticle &particle, double abundance=-1.0)
Adds particle to the layout with abundance, position and the rotation defined.
Definition:
ParticleLayout.cpp:56
Particle
A particle with a form factor and refractive index.
Definition:
Particle.h:25
Prism3
A prism based on an equilateral triangle.
Definition:
Prism3.h:23
ExemplarySamples::createCylindersAndPrisms
MultiLayer * createCylindersAndPrisms()
Definition:
CylindersAndPrismsBuilder.cpp:24
refMat::Vacuum
static const Material Vacuum
Definition:
ReferenceMaterials.h:31
refMat::Particle
static const Material Particle
Definition:
ReferenceMaterials.h:33
refMat::Substrate
static const Material Substrate
Definition:
ReferenceMaterials.h:32
Sample
StandardSamples
CylindersAndPrismsBuilder.cpp
Generated by
1.9.1