30 const double m_corr_peak_distance(20.0 *
Units::nm);
32 const double m_corr_length(1e3 *
Units::nm);
33 const double m_cylinder_height(5 *
Units::nm);
34 const double m_cylinder_radius(5 *
Units::nm);
52 multi_layer->
addLayer(substrate_layer);
89 multi_layer->
addLayer(substrate_layer);
111 const double m_peak_distance(20.0 *
Units::nm);
112 const double m_corr_length(0.0);
115 const double m_cylinder_height(5 *
Units::nm);
116 const double m_cylinder_radius(5 *
Units::nm);
122 m_domain_size_1, m_domain_size_2);
136 multi_layer->
addLayer(vacuum_layer);
137 multi_layer->
addLayer(substrate_layer);
166 multi_layer->
addLayer(vacuum_layer);
167 multi_layer->
addLayer(substrate_layer);
Defines the macro ASSERT.
#define ASSERT(condition)
Defines sample components for complex sample builders.
Defines class InterferenceFunction2DParaCrystal.
Defines class InterferenceFunctionRadialParaCrystal.
Defines class MultiLayer.
Defines classes of ParaCrystalBuilder family.
Defines class ParticleLayout.
Defines materials in namespace refMat.
Defines some unit conversion factors and other constants in namespace Units.
std::unique_ptr< IFTDistribution2D > m_pdf2
Basic2DParaCrystalBuilder()
MultiLayer * createSampleByIndex(size_t index)
MultiLayer * buildSample() const
std::unique_ptr< IFTDistribution2D > m_pdf1
~Basic2DParaCrystalBuilder()
A two-dimensional Bravais lattice with no special symmetry.
Gaussian IFTDistribution1D; its Fourier transform evaluate(q) is a Gaussian starting at evaluate(0)=1...
Two-dimensional Cauchy distribution in Fourier space; corresponds to a normalized exp(-r) in real spa...
Predefined Fourier transformed distributions for functional tests.
MultiLayer * buildSample() const
A two-dimensional Bravais lattice with hexagonal symmetry.
void setName(const std::string &name)
std::vector< std::string > keys() const
Interference function of a 2D paracrystal.
void setProbabilityDistributions(const IFTDistribution2D &pdf_1, const IFTDistribution2D &pdf_2)
Sets the probability distributions (Fourier transformed) for the two lattice directions.
void setIntegrationOverXi(bool integrate_xi)
Enables/disables averaging over the lattice rotation angle.
void setDomainSizes(double size_1, double size_2)
Sets the sizes of coherence domains.
Interference function of radial paracrystal.
void setProbabilityDistribution(const IFTDistribution1D &pdf)
Sets one-dimensional probability distribution.
A layer in a MultiLayer sample.
void addLayout(const ParticleLayout &decoration)
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds layer with default (zero) roughness.
Decorator class that adds particles to ISampleNode objects.
void setInterferenceFunction(const IInterferenceFunction &interference_function)
Adds interference functions.
A particle with a form factor and refractive index.
MultiLayer * buildSample() const
MultiLayer * buildSample() const
A two-dimensional Bravais lattice with square unit cell.
Constants and functions for physical unit conversions.
static constexpr double deg
static constexpr double micrometer
static constexpr double nm
static const Material Vacuum
static const Material Particle
static const Material Substrate