36 complex_t result{2 * delta - delta * delta + beta * beta, 2 * beta - 2 * delta * beta};
42 return sld_l + eff_vol * (sld_p - sld_l);
52 Layer vacuum_layer(vacuum_material);
53 Layer substrate_layer(substrate_material);
57 Particle particle(particle_material, ff_cylinder);
65 multi_layer->
addLayer(substrate_layer);
77 Layer vacuum_layer(vacuum_material);
78 Layer substrate_layer(substrate_material);
82 Particle particle(particle_material, ff_cylinder);
90 multi_layer->
addLayer(substrate_layer);
108 Layer vacuum_layer(vacuum_material);
110 Layer substrate_layer(substrate_material);
113 multi_layer->
addLayer(vacuum_layer);
114 for (
size_t i = 0; i <
n_slices; ++i)
116 multi_layer->
addLayer(substrate_layer);
std::complex< double > complex_t
Factory functions used to create material instances.
Defines M_PI and some more mathematical constants.
Defines class MultiLayer.
Defines class ParticleLayout.
Defines classes for testing slicing machinery.
Defines some unit conversion factors and other constants in namespace Units.
MultiLayer * buildSample() const
A layer, with thickness (in nanometer) and material.
void setNumberOfSlices(unsigned int n_slices)
void addLayout(const ILayout &decoration)
A wrapper for underlying material implementation.
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds object to multilayer.
Decorator class that adds particles to ISample objects.
double totalParticleSurfaceDensity() const final override
Returns surface density of all particles.
A particle with a form factor and refractive index.
MultiLayer * buildSample() const
MultiLayer * buildSample() const
Material HomogeneousMaterial(const std::string &name, complex_t refractive_index, kvector_t magnetization)
Constructs a material with name, refractive_index and magnetization (in A/m).
static constexpr double angstrom
static constexpr double nanometer
const double height(5 *Units::nanometer)
complex_t getSLDFromN(double wavelength, double delta, double beta)
Returns SLD input (in inverse square Angstroms) for MaterialBySLD from delta and beta,...
const double wavelength(0.154)
const double radius(5 *Units::nanometer)
complex_t averageSLD(complex_t sld_p, complex_t sld_l, double eff_vol)