15 #ifndef BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEFUNCTIONFINITE2DLATTICE_H
16 #define BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEFUNCTIONFINITE2DLATTICE_H
44 std::vector<const INode*>
getChildren()
const override;
Defines and implements the interface class IInterferenceFunction.
Defines classes of Lattice2D family.
Abstract base class of interference functions.
Visitor interface to visit ISampleNode objects.
virtual void visit(const BasicLattice2D *)
Interference function of a finite 2D lattice.
void setIntegrationOverXi(bool integrate_xi)
bool m_integrate_xi
Integrate over the orientation xi.
std::vector< const INode * > getChildren() const override
Returns a vector of children.
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
bool integrationOverXi() const
unsigned m_N_2
Size of the finite lattice in lattice units.
InterferenceFunctionFinite2DLattice(const Lattice2D &lattice, unsigned N_1, unsigned N_2)
Constructor of two-dimensional finite lattice interference function.
const Lattice2D & lattice() const
double interferenceForXi(double xi) const
unsigned numberUnitCells1() const
double iff_without_dw(const kvector_t q) const override
Calculates the structure factor without Debye-Waller factor.
std::unique_ptr< Lattice2D > m_lattice
unsigned numberUnitCells2() const
~InterferenceFunctionFinite2DLattice() override
double getParticleDensity() const override
Returns the particle density associated with this 2d lattice.
InterferenceFunctionFinite2DLattice * clone() const override
Returns a clone of this ISampleNode object.
A two-dimensional Bravais lattice.