15 #ifndef BORNAGAIN_CORE_CORRELATIONS_FTDECAY2D_H
16 #define BORNAGAIN_CORE_CORRELATIONS_FTDECAY2D_H
40 virtual double evaluate(
double qx,
double qy)
const = 0;
44 double b,
double alpha)
const;
55 double b,
double alpha)
const;
70 double evaluate(
double qx,
double qy)
const final;
85 double evaluate(
double qx,
double qy)
const final;
99 double evaluate(
double qx,
double qy)
const final;
Defines and implements the standard mix-in ICloneable.
Defines M_PI and some more mathematical constants.
Two-dimensional Cauchy decay function in reciprocal space; corresponds to exp(-r) in real space,...
FTDecayFunction2DCauchy(const std::vector< double > P)
double evaluate(double qx, double qy) const final
evaluate Fourier transformed decay function for q in X,Y coordinates
FTDecayFunction2DCauchy * clone() const
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
Two-dimensional Gauss decay function in reciprocal space; corresponds to exp(-r^2/2) in real space,...
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
FTDecayFunction2DGauss * clone() const
double evaluate(double qx, double qy) const final
evaluate Fourier transformed decay function for q in X,Y coordinates
FTDecayFunction2DGauss(const std::vector< double > P)
Two-dimensional pseudo-Voigt decay function in reciprocal space; corresponds to eta*Gauss + (1-eta)*C...
FTDecayFunction2DVoigt(const std::vector< double > P)
FTDecayFunction2DVoigt * clone() const
double evaluate(double qx, double qy) const final
evaluate Fourier transformed decay function for q in X,Y coordinates
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Interface for two-dimensional decay function in reciprocal space.
virtual IFTDecayFunction2D * clone() const =0
IFTDecayFunction2D(const NodeMeta &meta, const std::vector< double > &PValues)
double gamma() const
get angle between first lattice vector and X-axis of distribution (both in direct space)
const double & m_decay_length_x
std::pair< double, double > transformToRecLatticeCoordinates(double qX, double qY, double a, double b, double alpha) const
transform reciprocal coordinate system of this decay function to the reciprocal lattice system
const double & m_decay_length_y
std::pair< double, double > boundingReciprocalLatticeCoordinates(double qX, double qY, double a, double b, double alpha) const
transform back to a*, b* basis:
double decayLengthY() const
get decay length in distribution's Y-direction
double decayLengthX() const
get decay length in distribution's X-direction
virtual double evaluate(double qx, double qy) const =0
evaluate Fourier transformed decay function for q in X,Y coordinates
Visitor interface to visit ISample objects.
Base class for tree-like structures containing parameterized objects.