BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Interference function of a 2D superlattice with a configurable interference function for each lattice site. More...
Public Member Functions | |
InterferenceFunction2DSuperLattice (const Lattice2D &lattice, unsigned size_1, unsigned size_2) | |
InterferenceFunction2DSuperLattice (double length_1, double length_2, double alpha, double xi, unsigned size_1, unsigned size_2) | |
Constructor of two-dimensional interference function. More... | |
InterferenceFunction2DSuperLattice * | clone () const override final |
Returns a clone of this ISample object. | |
void | accept (INodeVisitor *visitor) const override final |
Calls the INodeVisitor's visit method. | |
void | setSubstructureIFF (const IInterferenceFunction &sub_iff) |
const IInterferenceFunction & | substructureIFF () const |
double | evaluate (const kvector_t q, double outer_iff=1.0) const override final |
Evaluates the interference function for a given wavevector transfer. | |
unsigned | domainSize1 () const |
unsigned | domainSize2 () const |
void | setIntegrationOverXi (bool integrate_xi) |
bool | integrationOverXi () const |
const Lattice2D & | lattice () const |
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) | |
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 double | getParticleDensity () const |
If defined by this interference function's parameters, returns the particle density (per area). More... | |
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 Material * | material () 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 INode * | parent () const |
INode * | parent () |
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. | |
ParameterPool * | createParameterTree () 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) | |
IParameterized & | operator= (const IParameterized &other)=delete |
ParameterPool * | parameterPool () const |
Returns pointer to the parameter pool. | |
std::string | parametersToString () const |
Returns multiline string representing available parameters. | |
RealParameter & | registerParameter (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) |
RealParameter * | parameter (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 InterferenceFunction2DSuperLattice * | createSquare (double lattice_length, double xi, unsigned size_1, unsigned size_2) |
Creates square lattice. | |
static InterferenceFunction2DSuperLattice * | createHexagonal (double lattice_length, double xi, unsigned size_1, unsigned size_2) |
Creates hexagonal lattice. | |
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 |
Interference function of a 2D superlattice with a configurable interference function for each lattice site.
Definition at line 25 of file InterferenceFunction2DSuperLattice.h.
InterferenceFunction2DSuperLattice::InterferenceFunction2DSuperLattice | ( | double | length_1, |
double | length_2, | ||
double | alpha, | ||
double | xi, | ||
unsigned | size_1, | ||
unsigned | size_2 | ||
) |
Constructor of two-dimensional interference function.
length_1 | length of first lattice vector in nanometers |
length_2 | length of second lattice vector in nanometers |
alpha | angle between lattice vectors in radians |
xi | rotation of lattice with respect to x-axis (beam direction) in radians |
size_1 | correlation length in direction 1 |
size_2 | correlation length in direction 2 |
Definition at line 43 of file InterferenceFunction2DSuperLattice.cpp.