28 MultiLayer* SizeDistributionDAModelBuilder::buildSample()
const
31 double radius1(5 * Units::nanometer);
32 double height1 = radius1;
34 Particle cylinder1(refMat::Particle, cylinder_ff1);
37 double radius2(8 * Units::nanometer);
38 double height2(radius2);
40 Particle cylinder2(refMat::Particle, cylinder_ff2);
44 1e3 * Units::nanometer);
46 interference.setProbabilityDistribution(pdf);
54 Layer vacuum_layer(refMat::Vacuum);
55 vacuum_layer.addLayout(particle_layout);
56 Layer substrate_layer(refMat::Substrate);
60 multi_layer->
addLayer(substrate_layer);
66 MultiLayer* SizeDistributionLMAModelBuilder::buildSample()
const
69 double radius1(5 * Units::nanometer);
70 double height1 = radius1;
72 Particle cylinder1(refMat::Particle, cylinder_ff1);
75 double radius2(8 * Units::nanometer);
76 double height2(radius2);
78 Particle cylinder2(refMat::Particle, cylinder_ff2);
82 1e3 * Units::nanometer);
84 interference1.setProbabilityDistribution(pdf);
88 1e3 * Units::nanometer);
89 interference2.setProbabilityDistribution(pdf);
100 Layer vacuum_layer(refMat::Vacuum);
101 vacuum_layer.addLayout(particle_layout1);
102 vacuum_layer.addLayout(particle_layout2);
103 Layer substrate_layer(refMat::Substrate);
106 multi_layer->
addLayer(vacuum_layer);
107 multi_layer->
addLayer(substrate_layer);
113 MultiLayer* SizeDistributionSSCAModelBuilder::buildSample()
const
116 double radius1(5 * Units::nanometer);
117 double height1 = radius1;
119 Particle cylinder1(refMat::Particle, cylinder_ff1);
122 double radius2(8 * Units::nanometer);
123 double height2(radius2);
125 Particle cylinder2(refMat::Particle, cylinder_ff2);
129 1e3 * Units::nanometer);
131 interference.setProbabilityDistribution(pdf);
132 interference.setKappa(1.0);
140 Layer vacuum_layer(refMat::Vacuum);
141 vacuum_layer.addLayout(particle_layout);
142 Layer substrate_layer(refMat::Substrate);
145 multi_layer->
addLayer(vacuum_layer);
146 multi_layer->
addLayer(substrate_layer);
152 MultiLayer* CylindersInSSCABuilder::buildSample()
const
154 Layer vacuum_layer(refMat::Vacuum);
157 1e3 * Units::nanometer);
159 interference_function.setProbabilityDistribution(pdf);
160 interference_function.setKappa(4.02698);
164 Particle particle_prototype(refMat::Particle, ff_cylinder);
168 pattern_radius.add(
"Particle").add(
"Cylinder").add(
"Radius");
171 pattern_height.add(
"Particle").add(
"Cylinder").add(
"Height");
172 par_distr.linkParameter(pattern_height.toStdString());
178 vacuum_layer.addLayout(particle_layout);
181 multi_layer->
addLayer(vacuum_layer);
Defines classes representing one-dimensional distributions.
Defines class InterferenceFunctionRadialParaCrystal.
Defines class MultiLayer.
Defines class ParameterPattern.
Defines class ParticleDistribution.
Defines class ParticleLayout.
Defines materials in namespace refMat.
Defines various sample builder classes to test DA, LMA, SSCA approximations.
Defines some unit conversion factors and other constants in namespace Units.
Gaussian distribution with standard deviation std_dev.
Gaussian IFTDistribution1D; its Fourier transform evaluate(q) is a Gaussian starting at evaluate(0)=1...
Interference function of radial paracrystal.
A layer, with thickness (in nanometer) and material.
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds object to multilayer.
A parametric distribution function, for use with any model parameter.
Helper class for constructing parameter patterns.
A particle type that is a parametric distribution of IParticle's.
Decorator class that adds particles to ISample objects.
void setInterferenceFunction(const IInterferenceFunction &interference_function)
Adds interference functions.
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.