Skip to content
Snippets Groups Projects
Commit 3e424976 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

Interference fcts: prefer c'tor with Lattice argument

parent 7f30b05d
No related branches found
No related tags found
No related merge requests found
...@@ -30,11 +30,11 @@ MultiLayer* BoxesSquareLatticeBuilder::buildSample() const ...@@ -30,11 +30,11 @@ MultiLayer* BoxesSquareLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DLattice> P_interference_function( std::unique_ptr<InterferenceFunction2DLattice> iff(
InterferenceFunction2DLattice::createSquare(8 * Units::nanometer, 0)); InterferenceFunction2DLattice::createSquare(8 * Units::nanometer, 0));
FTDecayFunction2DCauchy pdf(100.0 * Units::nanometer, 100.0 * Units::nanometer, 0); FTDecayFunction2DCauchy pdf(100.0 * Units::nanometer, 100.0 * Units::nanometer, 0);
P_interference_function->setDecayFunction(pdf); iff->setDecayFunction(pdf);
// particles // particles
ParticleLayout particle_layout; ParticleLayout particle_layout;
...@@ -42,7 +42,7 @@ MultiLayer* BoxesSquareLatticeBuilder::buildSample() const ...@@ -42,7 +42,7 @@ MultiLayer* BoxesSquareLatticeBuilder::buildSample() const
Particle particle(refMat::Particle, ff_box); Particle particle(refMat::Particle, ff_box);
particle_layout.addParticle(particle, 1.0); particle_layout.addParticle(particle, 1.0);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(*iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
......
...@@ -121,17 +121,17 @@ MultiLayer* HexParaCrystalBuilder::buildSample() const ...@@ -121,17 +121,17 @@ MultiLayer* HexParaCrystalBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DParaCrystal> P_interference_function{ std::unique_ptr<InterferenceFunction2DParaCrystal> iff{
InterferenceFunction2DParaCrystal::createHexagonal(m_peak_distance, m_corr_length, InterferenceFunction2DParaCrystal::createHexagonal(m_peak_distance, m_corr_length,
m_domain_size_1, m_domain_size_2)}; m_domain_size_1, m_domain_size_2)};
FTDistribution2DCauchy pdf(1.0 * Units::nanometer, 1.0 * Units::nanometer, 0); FTDistribution2DCauchy pdf(1.0 * Units::nanometer, 1.0 * Units::nanometer, 0);
P_interference_function->setProbabilityDistributions(pdf, pdf); iff->setProbabilityDistributions(pdf, pdf);
FormFactorCylinder ff_cylinder(m_cylinder_radius, m_cylinder_height); FormFactorCylinder ff_cylinder(m_cylinder_radius, m_cylinder_height);
Particle cylinder(refMat::Particle, ff_cylinder); Particle cylinder(refMat::Particle, ff_cylinder);
ParticleLayout particle_layout(cylinder); ParticleLayout particle_layout(cylinder);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(*iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
...@@ -150,20 +150,20 @@ MultiLayer* RectParaCrystalBuilder::buildSample() const ...@@ -150,20 +150,20 @@ MultiLayer* RectParaCrystalBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DParaCrystal> P_interference_function{ std::unique_ptr<InterferenceFunction2DParaCrystal> iff{
InterferenceFunction2DParaCrystal::createSquare(10 * Units::nanometer, 0 * Units::nanometer, InterferenceFunction2DParaCrystal::createSquare(10 * Units::nanometer, 0 * Units::nanometer,
0, 0)}; 0, 0)};
P_interference_function->setDomainSizes(20.0 * Units::micrometer, 20.0 * Units::micrometer); iff->setDomainSizes(20.0 * Units::micrometer, 20.0 * Units::micrometer);
FTDistribution2DCauchy pdf1(0.5 * Units::nanometer, 2.0 * Units::nanometer, 0); FTDistribution2DCauchy pdf1(0.5 * Units::nanometer, 2.0 * Units::nanometer, 0);
FTDistribution2DCauchy pdf2(0.5 * Units::nanometer, 2.0 * Units::nanometer, 0); FTDistribution2DCauchy pdf2(0.5 * Units::nanometer, 2.0 * Units::nanometer, 0);
P_interference_function->setProbabilityDistributions(pdf1, pdf2); iff->setProbabilityDistributions(pdf1, pdf2);
FormFactorCylinder ff_cylinder(5.0 * Units::nanometer, 5.0 * Units::nanometer); FormFactorCylinder ff_cylinder(5.0 * Units::nanometer, 5.0 * Units::nanometer);
Particle particle(refMat::Particle, ff_cylinder); Particle particle(refMat::Particle, ff_cylinder);
ParticleLayout particle_layout(particle); ParticleLayout particle_layout(particle);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(*iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
......
...@@ -30,13 +30,12 @@ MultiLayer* Basic2DLatticeBuilder::buildSample() const ...@@ -30,13 +30,12 @@ MultiLayer* Basic2DLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DLattice> P_interference_function( InterferenceFunction2DLattice iff(5.0 * Units::nanometer, 10.0 * Units::nanometer,
new InterferenceFunction2DLattice(5.0 * Units::nanometer, 10.0 * Units::nanometer, 30.0 * Units::deg, 10.0 * Units::deg);
30.0 * Units::deg, 10.0 * Units::deg));
FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI, FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI,
100.0 * Units::nanometer / 2.0 / M_PI, 0); 100.0 * Units::nanometer / 2.0 / M_PI, 0);
P_interference_function->setDecayFunction(pdf); iff.setDecayFunction(pdf);
// particles // particles
ParticleLayout particle_layout; ParticleLayout particle_layout;
...@@ -44,7 +43,7 @@ MultiLayer* Basic2DLatticeBuilder::buildSample() const ...@@ -44,7 +43,7 @@ MultiLayer* Basic2DLatticeBuilder::buildSample() const
Particle particle(refMat::Particle, ff_cyl); Particle particle(refMat::Particle, ff_cyl);
particle_layout.addParticle(particle, 1.0); particle_layout.addParticle(particle, 1.0);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
...@@ -62,11 +61,10 @@ MultiLayer* SquareLatticeBuilder::buildSample() const ...@@ -62,11 +61,10 @@ MultiLayer* SquareLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DLattice> P_interference_function{ InterferenceFunction2DLattice iff(SquareLattice(10.0 * Units::nanometer, 0));
InterferenceFunction2DLattice::createSquare(10.0 * Units::nanometer, 0)};
FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI, FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI,
100.0 * Units::nanometer / 2.0 / M_PI, 0); 100.0 * Units::nanometer / 2.0 / M_PI, 0);
P_interference_function->setDecayFunction(pdf); iff.setDecayFunction(pdf);
// particles // particles
ParticleLayout particle_layout; ParticleLayout particle_layout;
...@@ -74,7 +72,7 @@ MultiLayer* SquareLatticeBuilder::buildSample() const ...@@ -74,7 +72,7 @@ MultiLayer* SquareLatticeBuilder::buildSample() const
Particle particle(refMat::Particle, ff_cyl); Particle particle(refMat::Particle, ff_cyl);
particle_layout.addParticle(particle, 1.0); particle_layout.addParticle(particle, 1.0);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
...@@ -127,11 +125,10 @@ MultiLayer* RotatedSquareLatticeBuilder::buildSample() const ...@@ -127,11 +125,10 @@ MultiLayer* RotatedSquareLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DLattice> P_interference_function{ InterferenceFunction2DLattice iff(SquareLattice(10.0 * Units::nanometer, 30.0 * Units::degree));
InterferenceFunction2DLattice::createSquare(10.0 * Units::nanometer, 30.0 * Units::degree)};
FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI, FTDecayFunction2DCauchy pdf(300.0 * Units::nanometer / 2.0 / M_PI,
100.0 * Units::nanometer / 2.0 / M_PI, 30.0 * Units::degree); 100.0 * Units::nanometer / 2.0 / M_PI, 30.0 * Units::degree);
P_interference_function->setDecayFunction(pdf); iff.setDecayFunction(pdf);
ParticleLayout particle_layout; ParticleLayout particle_layout;
// particle // particle
...@@ -140,7 +137,7 @@ MultiLayer* RotatedSquareLatticeBuilder::buildSample() const ...@@ -140,7 +137,7 @@ MultiLayer* RotatedSquareLatticeBuilder::buildSample() const
Particle p(refMat::Particle, ff_cyl); Particle p(refMat::Particle, ff_cyl);
p.setPosition(position); p.setPosition(position);
particle_layout.addParticle(p); particle_layout.addParticle(p);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
...@@ -158,9 +155,8 @@ MultiLayer* FiniteSquareLatticeBuilder::buildSample() const ...@@ -158,9 +155,8 @@ MultiLayer* FiniteSquareLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunctionFinite2DLattice> P_interference_function{ InterferenceFunctionFinite2DLattice iff(SquareLattice(10.0 * Units::nanometer, 0.0), 40, 40);
InterferenceFunctionFinite2DLattice::createSquare(10.0 * Units::nanometer, 0.0, 40, 40)}; iff.setPositionVariance(1.0);
P_interference_function->setPositionVariance(1.0);
// particles // particles
ParticleLayout particle_layout; ParticleLayout particle_layout;
...@@ -168,7 +164,7 @@ MultiLayer* FiniteSquareLatticeBuilder::buildSample() const ...@@ -168,7 +164,7 @@ MultiLayer* FiniteSquareLatticeBuilder::buildSample() const
Particle particle(refMat::Particle, ff_cyl); Particle particle(refMat::Particle, ff_cyl);
particle_layout.addParticle(particle, 1.0); particle_layout.addParticle(particle, 1.0);
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(iff);
vacuum_layer.addLayout(particle_layout); vacuum_layer.addLayout(particle_layout);
...@@ -186,12 +182,11 @@ MultiLayer* SuperLatticeBuilder::buildSample() const ...@@ -186,12 +182,11 @@ MultiLayer* SuperLatticeBuilder::buildSample() const
Layer vacuum_layer(refMat::Vacuum); Layer vacuum_layer(refMat::Vacuum);
Layer substrate_layer(refMat::Substrate); Layer substrate_layer(refMat::Substrate);
std::unique_ptr<InterferenceFunction2DSuperLattice> P_interference_function{ InterferenceFunction2DSuperLattice iff(SquareLattice(200.0 * Units::nanometer, 0.0), 40, 40);
InterferenceFunction2DSuperLattice::createSquare(200.0 * Units::nanometer, 0.0, 40, 40)}; InterferenceFunctionFinite2DLattice substructure(
std::unique_ptr<InterferenceFunctionFinite2DLattice> P_substructure{ SquareLattice(10.0 * Units::nanometer, 0.0), 10, 10);
InterferenceFunctionFinite2DLattice::createSquare(10.0 * Units::nanometer, 0.0, 10, 10)}; iff.setSubstructureIFF(substructure);
P_interference_function->setSubstructureIFF(*P_substructure); iff.setPositionVariance(1.0);
P_interference_function->setPositionVariance(1.0);
// particles // particles
ParticleLayout particle_layout; ParticleLayout particle_layout;
...@@ -199,7 +194,7 @@ MultiLayer* SuperLatticeBuilder::buildSample() const ...@@ -199,7 +194,7 @@ MultiLayer* SuperLatticeBuilder::buildSample() const
Particle particle(refMat::Vacuum, ff_cyl); Particle particle(refMat::Vacuum, ff_cyl);
particle_layout.addParticle(particle, 1.0, kvector_t(0.0, 0.0, -10.0 * Units::nanometer)); particle_layout.addParticle(particle, 1.0, kvector_t(0.0, 0.0, -10.0 * Units::nanometer));
particle_layout.setInterferenceFunction(*P_interference_function); particle_layout.setInterferenceFunction(iff);
particle_layout.setTotalParticleSurfaceDensity(100.0 / 4e4); particle_layout.setTotalParticleSurfaceDensity(100.0 / 4e4);
substrate_layer.addLayout(particle_layout); substrate_layer.addLayout(particle_layout);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment