40 double sigma = 0.2 *
radius;
46 double n_sigma = 2.0 * 2.0 * std::sqrt(2.0 * std::log(2.0));
49 pattern.
add(
"Particle").
add(
"Cylinder").
add(
"Radius");
97 pattern1.
add(
"Particle").
add(
"Cylinder").
add(
"Radius");
100 particle_layout.
addParticle(particle_collection1, 0.95);
102 pattern2.
add(
"Particle").
add(
"Cylinder").
add(
"Radius");
106 particle_layout.
addParticle(particle_collection2, 0.05);
111 multi_layer->
addLayer(vacuum_layer);
146 multi_layer->
addLayer(vacuum_layer);
147 multi_layer->
addLayer(substrate_layer);
176 multi_layer->
addLayer(vacuum_layer);
177 multi_layer->
addLayer(substrate_layer);
193 "/Particle/Cone/Alpha",
gauss, 5, 20.0,
208 multi_layer->
addLayer(vacuum_layer);
209 multi_layer->
addLayer(substrate_layer);
238 multi_layer->
addLayer(vacuum_layer);
239 multi_layer->
addLayer(substrate_layer);
Defines classes representing one-dimensional distributions.
Defines class MultiLayer.
Defines class ParameterPattern.
Defines class ParticleDistribution.
Defines classes of with different types of particle distributions.
Defines class ParticleLayout.
Defines materials in namespace refMat.
Defines some unit conversion factors and other constants in namespace Units.
MultiLayer * buildSample() const
MultiLayer * buildSample() const
Uniform distribution function with half width hwhm.
Gaussian distribution with standard deviation std_dev.
void setRotation(const IRotation &rotation)
Sets transformation.
A layer, with thickness (in nanometer) and material.
void addLayout(const ILayout &decoration)
MultiLayer * buildSample() const
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.
ParameterDistribution & linkParameter(std::string par_name)
Helper class for constructing parameter patterns.
std::string toStdString() const
ParameterPattern & add(std::string object_type)
A particle type that is a parametric distribution of IParticle's.
Decorator class that adds particles to ISample objects.
void setTotalParticleSurfaceDensity(double particle_density) final override
Sets total particle surface density.
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.
static RealLimits limited(double left_bound_value, double right_bound_value)
Creates an object bounded from the left and right.
MultiLayer * buildSample() const
RotatedPyramidsDistributionBuilder()
A rotation about the z axis.
MultiLayer * buildSample() const
TwoTypesCylindersDistributionBuilder()
MultiLayer * buildSample() const
Constants and functions for physical unit conversions.
double deg2rad(double angle)
static constexpr double deg
static constexpr double nm
static constexpr double gauss
static constexpr double degree
static constexpr double nanometer
const double radius(5 *Units::nanometer)
static const Material Vacuum
static const Material Particle
static const Material Substrate