BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
InterferenceFunctionFinite2DLattice Class Reference

Interference function of a finite 2D lattice. More...

+ Inheritance diagram for InterferenceFunctionFinite2DLattice:

Public Member Functions

 InterferenceFunctionFinite2DLattice (const Lattice2D &lattice, unsigned N_1, unsigned N_2)
 Constructor of two-dimensional finite lattice interference function. More...
 
 InterferenceFunctionFinite2DLattice (double length_1, double length_2, double alpha, double xi, unsigned N_1, unsigned N_2)
 Constructor of two-dimensional finite lattice interference function. More...
 
InterferenceFunctionFinite2DLatticeclone () const override final
 Returns a clone of this ISample object.
 
void accept (INodeVisitor *visitor) const override final
 Calls the INodeVisitor's visit method.
 
unsigned numberUnitCells1 () const
 
unsigned numberUnitCells2 () const
 
void setIntegrationOverXi (bool integrate_xi)
 
bool integrationOverXi () const
 
const Lattice2Dlattice () const
 
double getParticleDensity () const override final
 Returns the particle density associated with this 2d lattice.
 
std::vector< const INode * > getChildren () const override final
 Returns a vector of children (const).
 
- Public Member Functions inherited from IInterferenceFunction
 IInterferenceFunction (const NodeMeta &meta, const std::vector< double > &PValues)
 
 IInterferenceFunction (double position_var)
 
virtual double evaluate (const kvector_t q, double outer_iff=1.0) const
 Evaluates the interference function for a given wavevector transfer.
 
void setPositionVariance (double var)
 Sets the variance of the position for the calculation of the DW factor It is defined as the variance in each relevant dimension.
 
double positionVariance () const
 Returns the position variance.
 
virtual bool supportsMultilayer () const
 Indicates if this interference function can be used with a multilayer (DWBA mode)
 
double DWfactor (kvector_t q) const
 Evaluates the Debye-Waller factor for a given wavevector transfer.
 
- Public Member Functions inherited from ISample
 ISample (const NodeMeta &meta, const std::vector< double > &PValues)
 
virtual const Materialmaterial () const
 Returns nullptr, unless overwritten to return a specific material.
 
std::vector< const Material * > containedMaterials () const
 Returns set of unique materials contained in this ISample.
 
- Public Member Functions inherited from ICloneable
 ICloneable (const ICloneable &)=delete
 
 ICloneable (ICloneable &&)=default
 
virtual void transferToCPP ()
 Used for Python overriding of clone (see swig/tweaks.py)
 
- Public Member Functions inherited from INode
 INode (const NodeMeta &meta, const std::vector< double > &PValues)
 
virtual std::string treeToString () const
 Returns multiline string representing tree structure below the node.
 
void registerChild (INode *node)
 
virtual void setParent (const INode *newParent)
 
const INodeparent () const
 
INodeparent ()
 
int copyNumber (const INode *node) const
 Returns copyNumber of child, which takes into account existence of children with same name.
 
std::string displayName () const
 Returns display name, composed from the name of node and it's copy number.
 
ParameterPoolcreateParameterTree () const
 Creates new parameter pool, with all local parameters and those of its children.
 
- Public Member Functions inherited from IParameterized
 IParameterized (const std::string &name="")
 
 IParameterized (const IParameterized &other)
 
IParameterizedoperator= (const IParameterized &other)=delete
 
ParameterPoolparameterPool () const
 Returns pointer to the parameter pool.
 
std::string parametersToString () const
 Returns multiline string representing available parameters.
 
RealParameterregisterParameter (const std::string &name, double *parpointer)
 
void registerVector (const std::string &base_name, kvector_t *p_vec, const std::string &units="nm")
 
void setParameterValue (const std::string &name, double value)
 
void setVectorValue (const std::string &base_name, kvector_t value)
 
RealParameterparameter (const std::string &name) const
 Returns parameter with given 'name'.
 
virtual void onChange ()
 Action to be taken in inherited class when a parameter has changed.
 
void removeParameter (const std::string &name)
 
void removeVector (const std::string &base_name)
 
void setName (const std::string &name)
 
const std::string & getName () const
 

Static Public Member Functions

static InterferenceFunctionFinite2DLatticecreateSquare (double lattice_length, double xi, unsigned N_1, unsigned N_2)
 Creates square lattice. More...
 
static InterferenceFunctionFinite2DLatticecreateHexagonal (double lattice_length, double xi, unsigned N_1, unsigned N_2)
 Creates hexagonal lattice. More...
 
- Static Public Member Functions inherited from IParameterized
static std::string XComponentName (const std::string &base_name)
 
static std::string YComponentName (const std::string &base_name)
 
static std::string ZComponentName (const std::string &base_name)
 

Additional Inherited Members

- Protected Member Functions inherited from IInterferenceFunction
double iff_no_inner (const kvector_t q, double outer_iff) const
 Calculates the structure factor in the absence of extra inner structure.
 
- Protected Attributes inherited from IInterferenceFunction
double m_position_var
 
- Protected Attributes inherited from INode
const size_t m_NP
 
std::vector< double > m_P
 

Detailed Description

Interference function of a finite 2D lattice.

Definition at line 24 of file InterferenceFunctionFinite2DLattice.h.

Constructor & Destructor Documentation

◆ InterferenceFunctionFinite2DLattice() [1/2]

InterferenceFunctionFinite2DLattice::InterferenceFunctionFinite2DLattice ( const Lattice2D lattice,
unsigned  N_1,
unsigned  N_2 
)

Constructor of two-dimensional finite lattice interference function.

Parameters
latticeobject specifying a 2d lattice structure
N_1number of lattice cells in the first lattice direction
N_2number of lattice cells in the second lattice direction

Definition at line 30 of file InterferenceFunctionFinite2DLattice.cpp.

◆ InterferenceFunctionFinite2DLattice() [2/2]

InterferenceFunctionFinite2DLattice::InterferenceFunctionFinite2DLattice ( double  length_1,
double  length_2,
double  alpha,
double  xi,
unsigned  N_1,
unsigned  N_2 
)

Constructor of two-dimensional finite lattice interference function.

Parameters
length_1length of first lattice vector in nanometers
length_2length of second lattice vector in nanometers
alphaangle between lattice vectors in radians
xirotation of lattice with respect to x-axis (beam direction) in radians
N_1number of lattice cells in the first lattice direction
N_2number of lattice cells in the second lattice direction

Definition at line 45 of file InterferenceFunctionFinite2DLattice.cpp.

Member Function Documentation

◆ createSquare()

InterferenceFunctionFinite2DLattice * InterferenceFunctionFinite2DLattice::createSquare ( double  lattice_length,
double  xi,
unsigned  N_1,
unsigned  N_2 
)
static

Creates square lattice.

Parameters
lattice_lengthlength of first and second lattice vectors in nanometers
xirotation of lattice with respect to x-axis in radians
N_1number of lattice cells in the first lattice direction
N_2number of lattice cells in the second lattice direction

Definition at line 69 of file InterferenceFunctionFinite2DLattice.cpp.

◆ createHexagonal()

InterferenceFunctionFinite2DLattice * InterferenceFunctionFinite2DLattice::createHexagonal ( double  lattice_length,
double  xi,
unsigned  N_1,
unsigned  N_2 
)
static

Creates hexagonal lattice.

Parameters
lattice_lengthlength of first and second lattice vectors in nanometers
xirotation of lattice with respect to x-axis in radians
N_1number of lattice cells in the first lattice direction
N_2number of lattice cells in the second lattice direction

Definition at line 81 of file InterferenceFunctionFinite2DLattice.cpp.


The documentation for this class was generated from the following files: