15 #ifndef BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONFINITE3DLATTICE_H
16 #define BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONFINITE3DLATTICE_H
43 std::vector<const INode*>
getChildren() const override final;
Defines and implements the interface class IInterferenceFunction.
Pure virtual base class of interference functions.
Visitor interface to visit ISample objects.
Interference function of a finite 3D lattice.
InterferenceFunctionFinite3DLattice(const Lattice &lattice, unsigned N_1, unsigned N_2, unsigned N_3)
bool supportsMultilayer() const override final
Indicates if this interference function can be used with a multilayer (DWBA mode)
double iff_without_dw(const kvector_t q) const override final
Calculates the structure factor without Debye-Waller factor.
const Lattice & lattice() const
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
unsigned numberUnitCells2() const
unsigned numberUnitCells1() const
std::unique_ptr< Lattice > mP_lattice
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
~InterferenceFunctionFinite3DLattice() final
unsigned numberUnitCells3() const
InterferenceFunctionFinite3DLattice * clone() const override final
Returns a clone of this ISample object.
unsigned m_N_3
Size of the finite lattice in lattice units.
void setLattice(const Lattice &lattice)
A lattice with three basis vectors.