37 setName(
"Interference1DLattice");
60 double decay_length =
mP_decay->decayLength();
62 m_na =
static_cast<int>(std::lround(std::abs(qa_max) + 0.5));
68 return std::vector<const INode*>() <<
mP_decay;
84 double qx_prime = qxr * std::cos(xi) + qyr * std::sin(xi);
87 int qa_int =
static_cast<int>(qx_prime / a_rec);
88 qx_frac = qx_prime - qa_int * a_rec;
90 for (
int i = -
m_na; i <
m_na + 1; ++i) {
91 double qx = qx_frac + i * a_rec;
Defines the macro ASSERT.
#define ASSERT(condition)
Defines many exception classes in namespace Exceptionss.
Defines classes IFTDecayFunction1D, IFTDecayFunction2D,.
Defines classes IFTDecayFunction1D, IFTDecayFunction2D,.
Defines class InterferenceFunction1DLattice.
Defines class RealParameter.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
Interface for a one-dimensional decay function, with evaluate(q) returning the Fourier transform,...
virtual IFTDecayFunction1D * clone() const =0
Pure virtual base class of interference functions.
void registerChild(INode *node)
RealParameter & registerParameter(const std::string &name, double *parpointer)
void setName(const std::string &name)
Interference function of a 1D lattice.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
InterferenceFunction1DLattice * clone() const override final
Returns a clone of this ISample object.
~InterferenceFunction1DLattice() final
InterferenceFunction1DLattice(double length, double xi)
Constructor of interference function of one-dimensional lattice.
int m_na
determines the number of reciprocal lattice points to use
void setDecayFunction(const IFTDecayFunction1D &decay)
Sets one-dimensional decay function.
std::unique_ptr< IFTDecayFunction1D > mP_decay
double iff_without_dw(const kvector_t q) const override final
Calculates the structure factor without Debye-Waller factor.
RealParameter & setNonnegative()
RealParameter & setUnit(const std::string &name)