15 #ifndef BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
16 #define BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONRADIALPARACRYSTAL_H
38 double domainSize()
const {
return m_domain_size; }
40 complex_t FTPDF(
double qpar)
const;
44 double peakDistance()
const {
return m_peak_distance; }
46 double dampingLength()
const {
return m_damping_length; }
48 std::vector<const INode*>
getChildren() const override final;
50 double randomSample()
const {
return mP_pdf->createSampler()->randomSample(); }
53 double iff_without_dw(
const kvector_t q)
const override final;
54 void init_parameters();
56 double m_peak_distance;
57 double m_damping_length;
59 std::unique_ptr<IFTDistribution1D> mP_pdf;
60 bool m_use_damping_length;
Defines complex_t, and a few elementary functions.
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...
Pure virtual base class of interference functions.
Visitor interface to visit ISample objects.
Interference function of radial paracrystal.
InterferenceFunctionRadialParaCrystal(double peak_distance, double damping_length)
Constructor of interference function of radial paracrystal.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
InterferenceFunctionRadialParaCrystal * clone() const override final
Returns a clone of this ISample object.
void setDomainSize(double size)
Sets domain size (finite size corrections).
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
void setKappa(double kappa)
Sets size spacing coupling parameter of the Size Spacing Correlation Approximation.
void setProbabilityDistribution(const IFTDistribution1D &pdf)
Sets one-dimensional probability distribution.