28 const int min_points = 4;
 
   37     setName(
"Interference1DLattice");
 
   38     registerParameter(
"Length", &m_length).setUnit(
"nm").setNonnegative();
 
   39     registerParameter(
"Xi", &m_xi).setUnit(
"rad");
 
   42 InterferenceFunction1DLattice::~InterferenceFunction1DLattice() = 
default;
 
   47     ret->setPositionVariance(m_position_var);
 
   50         ret->setDecayFunction(*mP_decay);
 
   58     mP_decay.reset(decay.clone());
 
   59     registerChild(mP_decay.get());
 
   60     double decay_length = mP_decay->decayLength();
 
   61     double qa_max = m_length * nmax / decay_length / M_TWOPI;
 
   62     m_na = 
static_cast<int>(std::lround(std::abs(qa_max) + 0.5));
 
   63     m_na = std::max(m_na, min_points);
 
   68     return std::vector<const INode*>() << mP_decay;
 
   71 double InterferenceFunction1DLattice::iff_without_dw(
const kvector_t q)
 const 
   80     double a_rec = M_TWOPI / a;
 
   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;
 
   92         result += mP_decay->evaluate(qx);
 
Defines the macro ASSERT.
 
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,...
 
Pure virtual base class of interference functions.
 
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(double length, double xi)
Constructor of interference function of one-dimensional lattice.
 
void setDecayFunction(const IFTDecayFunction1D &decay)
Sets one-dimensional decay function.