24 setName(
"Interference3DLattice");
64 double inner_radius = 0.0;
76 for (
const auto& q_rec : rec_vectors)
79 result += exp(-(q - q_rec).mag2() / 2 / pow(.06, 2));
Defines the macro ASSERT.
#define ASSERT(condition)
Defines the interface IPeakShape and subclasses.
Defines class InterferenceFunction3DLattice.
double mag() const
Returns magnitude of the vector.
Abstract base class of interference functions.
void setName(const std::string &name)
Abstract base class class that defines the peak shape of a Bragg peak.
virtual IPeakShape * clone() const =0
Returns a clone of this ISampleNode object.
Interference function of a 3D lattice.
void setPeakShape(const IPeakShape &peak_shape)
double m_rec_radius
radius in reciprocal space defining the nearest q vectors to use
InterferenceFunction3DLattice * clone() const override
Returns a clone of this ISampleNode object.
void onChange() override
Action to be taken in inherited class when a parameter has changed.
std::vector< const INode * > getChildren() const override
Returns a vector of children.
~InterferenceFunction3DLattice() override
std::unique_ptr< IPeakShape > m_peak_shape
InterferenceFunction3DLattice(const Lattice3D &lattice)
const Lattice3D & lattice() const
double iff_without_dw(const kvector_t q) const override
Calculates the structure factor without Debye-Waller factor.
A Bravais lattice, characterized by three basis vectors, and optionally an ISelectionRule.
kvector_t getBasisVectorC() const
Returns basis vector c.
kvector_t getBasisVectorA() const
Returns basis vector a.
std::vector< kvector_t > reciprocalLatticeVectorsWithinRadius(const kvector_t q, double dq) const
Returns a list of reciprocal lattice vectors within distance dq of a vector q.
kvector_t getBasisVectorB() const
Returns basis vector b.