15 #ifndef BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
16 #define BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
46 std::vector<const INode*>
getChildren() const final;
57 std::unique_ptr<IFTDistribution1D>
m_pdf;
std::complex< double > complex_t
Defines interface class IFTDistribution1D, and children thereof.
Defines and implements the interface class IInterferenceFunction.
Interface for a one-dimensional distribution, with normalization adjusted so that the Fourier transfo...
Abstract base class of interference functions.
Visitor interface to visit ISampleNode objects.
Interference function of radial paracrystal.
InterferenceFunctionRadialParaCrystal * clone() const final
Returns a clone of this ISampleNode object.
InterferenceFunctionRadialParaCrystal(double peak_distance, double damping_length)
Constructor of interference function of radial paracrystal.
double peakDistance() const
double domainSize() const
double m_damping_length
damping length of paracrystal
void setDomainSize(double size)
Sets domain size (finite size corrections).
bool m_use_damping_length
double iff_without_dw(const kvector_t q) const final
Calculates the structure factor without Debye-Waller factor.
std::vector< const INode * > getChildren() const final
Returns a vector of children.
void setKappa(double kappa)
Sets size spacing coupling parameter of the Size Spacing Correlation Approximation.
std::unique_ptr< IFTDistribution1D > m_pdf
Fourier transformed probability distribution of the nearest particle.
complex_t FTPDF(double qpar) const
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
double dampingLength() const
double randomSample() const
double m_domain_size
Size of coherence domain.
double m_kappa
Size-spacing coupling parameter.
double m_peak_distance
the distance to the first neighbor peak
void setProbabilityDistribution(const IFTDistribution1D &pdf)
Sets one-dimensional probability distribution.