15 #ifndef BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONFINITE3DLATTICE_H
16 #define BORNAGAIN_CORE_AGGREGATE_INTERFERENCEFUNCTIONFINITE3DLATTICE_H
35 unsigned numberUnitCells1()
const {
return m_N_1; }
36 unsigned numberUnitCells2()
const {
return m_N_2; }
37 unsigned numberUnitCells3()
const {
return m_N_3; }
43 std::vector<const INode*>
getChildren() const override final;
46 double iff_without_dw(const
kvector_t q) const override final;
47 void setLattice(const
Lattice& lattice);
49 std::unique_ptr<
Lattice> mP_lattice;
50 unsigned m_N_1, m_N_2, m_N_3;
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.
bool supportsMultilayer() const override final
Indicates if this interference function can be used with a multilayer (DWBA mode)
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
InterferenceFunctionFinite3DLattice * clone() const override final
Returns a clone of this ISample object.
A lattice with three basis vectors.