BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
PercusYevickBuilder.cpp
Go to the documentation of this file.
1
// ************************************************************************************************
2
//
3
// BornAgain: simulate and fit reflection and scattering
4
//
5
//! @file Sample/StandardSamples/PercusYevickBuilder.cpp
6
//! @brief Implements class PercusYevickBuilder.
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/PercusYevickBuilder.h
"
16
#include "
Sample/Aggregate/InterferenceHardDisk.h
"
17
#include "
Sample/Aggregate/ParticleLayout.h
"
18
#include "
Sample/HardParticle/Cylinder.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::createHardDisk
()
25
{
26
const
double
m_cylinder_height(5);
27
const
double
m_cylinder_radius(5);
28
const
double
m_disk_radius(5);
29
const
double
m_density(0.006);
30
31
Layer
vacuum_layer(
refMat::Vacuum
);
32
Layer
substrate_layer(
refMat::Substrate
);
33
34
Cylinder
ff_cylinder(m_cylinder_radius, m_cylinder_height);
35
Particle
particle(
refMat::Particle
, ff_cylinder);
36
ParticleLayout
particle_layout(particle);
37
38
InterferenceHardDisk
interparticle(m_disk_radius, m_density);
39
particle_layout.
setInterference
(interparticle);
40
41
vacuum_layer.
addLayout
(particle_layout);
42
43
auto
* sample =
new
MultiLayer
();
44
sample->addLayer(vacuum_layer);
45
sample->addLayer(substrate_layer);
46
return
sample;
47
}
Cylinder.h
Defines class Cylinder.
InterferenceHardDisk.h
Defines class InterferenceHardDisk.
Layer.h
Defines class Layer.
MultiLayer.h
Defines class MultiLayer.
ParticleLayout.h
Defines class ParticleLayout.
Particle.h
Defines class Particle.
PercusYevickBuilder.h
Defines classes of PercusYevickBuilder family.
ReferenceMaterials.h
Defines materials in namespace refMat.
Cylinder
A circular cylinder.
Definition:
Cylinder.h:23
InterferenceHardDisk
Percus-Yevick hard disk interference function.
Definition:
InterferenceHardDisk.h:27
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::setInterference
void setInterference(const IInterference &interparticle)
Adds interference functions.
Definition:
ParticleLayout.cpp:86
Particle
A particle with a form factor and refractive index.
Definition:
Particle.h:25
ExemplarySamples::createHardDisk
MultiLayer * createHardDisk()
Definition:
PercusYevickBuilder.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
PercusYevickBuilder.cpp
Generated by
1.9.1