16 #include "Base/Const/Units.h"
23 #include "Sample/Aggregate/Interferences.h"
48 "Xi",
"Rotation of lattice with respect to x-axis of reference frame (beam direction)", 0.0,
51 "Decay Function",
"One-dimensional decay function (finite size effects)",
"decay");
60 return std::unique_ptr<IInterference>(result.release());
115 : m_xiIntegration(xiIntegration)
127 "Decay Function",
"Two-dimensional decay function (finite size effects)",
"decay");
133 std::unique_ptr<Interference2DLattice> result(
140 return std::unique_ptr<IInterference>(result.release());
148 Serialize::rwSelected<Lattice2DItemCatalog>(s,
m_latticeType);
167 m_dampingLength.
init(
"Damping length",
"The damping (coherence) length of the paracrystal", 0.0,
169 m_domainSize1.
init(
"Domain size 1",
"Size of the coherent domain along the first basis vector",
171 m_domainSize2.
init(
"Domain size 2",
"Size of the coherent domain along the second basis vector",
174 "PDF 1",
"Probability distribution in first lattice direction",
"pdf1");
176 "PDF 2",
"Probability distribution in second lattice direction",
"pdf2");
183 std::unique_ptr<Interference2DParaCrystal> result(
184 new Interference2DParaCrystal(*latticeItem->
createLattice(), 0, 0, 0));
191 return std::unique_ptr<IInterference>(result.release());
199 Serialize::rwSelected<Lattice2DItemCatalog>(s,
m_latticeType);
203 Serialize::rwSelected<Profile2DItemCatalog>(s,
m_pdf1);
204 Serialize::rwSelected<Profile2DItemCatalog>(s,
m_pdf2);
262 m_domainSize1.
init(
"Domain size 1",
"Domain size 1 in number of unit cells", 100,
264 m_domainSize2.
init(
"Domain size 2",
"Domain size 2 in number of unit cells", 100,
271 auto result = std::make_unique<InterferenceFinite2DLattice>(*latticeItem->
createLattice(),
285 Serialize::rwSelected<Lattice2DItemCatalog>(s,
m_latticeType);
315 m_density.
init(
"Total particle density",
"Particle density in particles per area", 0.002,
323 return std::unique_ptr<IInterference>(result.release());
350 m_dampingLength.
init(
"Damping length",
"The damping (coherence) length of the paracrystal",
352 m_domainSize.
init(
"Domain size",
"Size of coherence domain along the lattice main axis", 0.0,
355 "Size spacing coupling parameter of the Size Spacing Correlation Approximation",
366 result->setProbabilityDistribution(*pdf);
368 return std::unique_ptr<IInterference>(result.release());
379 Serialize::rwSelected<Profile1DItemCatalog>(s,
m_pdf);
Defines InterferenceItems's classes.
Defines class Lattice2DItemCatalog.
Defines classes Lattice2DItems.
Defines ProfileItemCatalog classes.
Defines Profile1DItem's classes.
Defines class UIntDescriptor.
Describes properties of a double value which are necessary to allow GUI representation,...
void set(double d)
Set the contained value.
void init(const QString &label, const QString &tooltip, double value, const variant< QString, Unit > &unit, const QString &persistentTag)
SelectionProperty< Profile1DItem * > m_decayFunction
void serialize(Streamer &s) override
DoubleDescriptor length() const
DoubleProperty m_rotationAngle
Interference1DLatticeItem()
std::unique_ptr< IInterference > createInterference() const override
void setDecayFunction(Profile1DItem *p)
SelectionDescriptor< Profile1DItem * > decayFunction() const
DoubleDescriptor rotationAngle() const
void setLatticeType(Lattice2DItem *p)
bool xiIntegration() const
SelectionDescriptor< Lattice2DItem * > latticeType() const
Interference2DAbstractLatticeItem(bool xiIntegration)
SelectionProperty< Lattice2DItem * > m_latticeType
void setXiIntegration(bool xiIntegration)
Interference2DLatticeItem()
SelectionProperty< Profile2DItem * > m_decayFunction
void setDecayFunctionType(Profile2DItem *p)
void serialize(Streamer &s) override
std::unique_ptr< IInterference > createInterference() const override
SelectionDescriptor< Profile2DItem * > decayFunction() const
SelectionDescriptor< Profile2DItem * > probabilityDistribution2() const
void setDomainSize1(double size)
DoubleDescriptor dampingLength() const
void setPDF2Type(Profile2DItem *p)
void serialize(Streamer &s) override
void setDampingLength(double dampingLength)
DoubleDescriptor domainSize1() const
DoubleDescriptor domainSize2() const
std::unique_ptr< IInterference > createInterference() const override
void setPDF1Type(Profile2DItem *p)
SelectionProperty< Profile2DItem * > m_pdf1
DoubleProperty m_domainSize2
SelectionProperty< Profile2DItem * > m_pdf2
SelectionDescriptor< Profile2DItem * > probabilityDistribution1() const
void setDomainSize2(double size)
Interference2DParaCrystalItem()
DoubleProperty m_domainSize1
DoubleProperty m_dampingLength
UIntProperty m_domainSize1
void serialize(Streamer &s) override
InterferenceFinite2DLatticeItem()
void setDomainSize1(unsigned int domain_size1)
void setDomainSize2(unsigned int domain_size2)
UIntDescriptor domainSize2() const
UIntProperty m_domainSize2
std::unique_ptr< IInterference > createInterference() const override
UIntDescriptor domainSize1() const
DoubleDescriptor density() const
void serialize(Streamer &s) override
DoubleDescriptor radius() const
InterferenceHardDiskItem()
std::unique_ptr< IInterference > createInterference() const override
virtual void serialize(Streamer &s)=0
DoubleDescriptor positionVariance() const
DoubleProperty m_positionVariance
SelectionDescriptor< Profile1DItem * > probabilityDistribution() const
DoubleDescriptor dampingLength() const
void serialize(Streamer &s) override
void setPDFType(Profile1DItem *p)
SelectionProperty< Profile1DItem * > m_pdf
InterferenceRadialParaCrystalItem()
std::unique_ptr< IInterference > createInterference() const override
DoubleDescriptor kappa() const
DoubleProperty m_dampingLength
DoubleDescriptor domainSize() const
DoubleProperty m_domainSize
DoubleProperty m_peakDistance
DoubleDescriptor peakDistance() const
virtual std::unique_ptr< Lattice2D > createLattice() const =0
virtual std::unique_ptr< IProfile1D > createProfile() const =0
virtual std::unique_ptr< IProfile2D > createProfile() const =0
Describes a selection (various possibilities and the current one).
void set(T t, bool callInitializer=false)
Directly set the new item.
void init(const QString &label, const QString &tooltip, const QString &persistentTag, ArgsForCreation... argsForCreation)
Initialize by means of a catalog class and optional creation arguments.
Supports serialization to or deserialization from QXmlStream.
void assertVersion(unsigned expectedVersion) const
As reader, throws DeserializationException unless the expected version is read. As writer,...
Describes properties of a uint value which are necessary to allow GUI representation,...
void init(const QString &label, const QString &tooltip, uint value, const variant< QString, Unit > &unit, const QString &persistentTag)
void rwProperty(Streamer &s, DoubleProperty &d)
void rwValue(Streamer &s, const QString &tag, bool &val)