15 #ifndef BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCERADIALPARACRYSTAL_H
16 #define BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCERADIALPARACRYSTAL_H
20 #include <heinz/Complex.h>
30 std::string
className() const final {
return "InterferenceRadialParaCrystal"; }
31 std::vector<ParaMeta>
parDefs() const final
33 return {{
"PeakDistance",
"nm",
"peak distance", 0, +
INF, 0},
34 {
"DampingLength",
"nm",
"damping length", 0, +
INF, 0}};
43 complex_t
FTPDF(
double qpar)
const;
62 std::unique_ptr<IProfile1D>
m_pdf;
Defines and implements the interface class IInterference.
Defines interface class IProfile1D, and children thereof.
Abstract base class of interference functions.
Interface for a one-dimensional distribution, with normalization adjusted so that the Fourier transfo...
Interference function of radial paracrystal.
double iff_without_dw(R3 q) const override
Calculates the structure factor without Debye-Waller factor.
double m_kappa
Size-spacing coupling parameter.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
double m_domain_size
Size of coherence domain.
std::vector< const INode * > nodeChildren() const override
Returns all children.
InterferenceRadialParaCrystal * clone() const override
std::unique_ptr< IProfile1D > m_pdf
double peakDistance() const
double domainSize() const
InterferenceRadialParaCrystal(double peak_distance, double damping_length)
Constructor of interference function of radial paracrystal.
void setKappa(double kappa)
Sets size spacing coupling parameter of the Size Spacing Correlation Approximation.
void setDomainSize(double size)
Sets domain size (finite size corrections).
double dampingLength() const
bool m_use_damping_length
complex_t FTPDF(double qpar) const
double randomSample() const
void setProbabilityDistribution(const IProfile1D &pdf)
Sets one-dimensional probability distribution.
double m_damping_length
damping length of paracrystal Fourier transformed probability distribution of the nearest particle
double m_peak_distance
the distance to the first neighbor peak
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.