|
BornAgain
1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Interference function of a 2D paracrystal. More...
Inheritance diagram for InterferenceFunction2DParaCrystal:Public Member Functions | |
| InterferenceFunction2DParaCrystal (const Lattice2D &lattice, double damping_length, double domain_size_1, double domain_size_2) | |
| InterferenceFunction2DParaCrystal (double length_1, double length_2, double alpha, double xi, double damping_length) | |
| Constructor of interference function of two-dimensional paracrystal. More... | |
| InterferenceFunction2DParaCrystal * | 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 | setDomainSizes (double size_1, double size_2) |
| Sets the sizes of coherence domains. More... | |
| void | setProbabilityDistributions (const IFTDistribution2D &pdf_1, const IFTDistribution2D &pdf_2) |
| Sets the probability distributions (Fourier transformed) for the two lattice directions. More... | |
| void | setDampingLength (double damping_length) |
| Sets the damping length. More... | |
| std::vector< double > | domainSizes () const |
| void | setIntegrationOverXi (bool integrate_xi) |
| Enables/disables averaging over the lattice rotation angle. More... | |
| bool | integrationOverXi () const |
| double | dampingLength () const |
| const Lattice2D & | lattice () const |
| double | getParticleDensity () const override final |
| If defined by this interference function's parameters, returns the particle density (per area). More... | |
| std::vector< const INode * > | getChildren () const override final |
| Returns a vector of children (const). | |
| const IFTDistribution2D * | pdf1 () const |
| const IFTDistribution2D * | pdf2 () 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 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 InterferenceFunction2DParaCrystal * | createSquare (double lattice_length, double damping_length, double domain_size_1, double domain_size_2) |
| Creates square lattice. More... | |
| static InterferenceFunction2DParaCrystal * | createHexagonal (double lattice_length, double damping_length, double domain_size_1, double domain_size_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 |
Interference function of a 2D paracrystal.
Definition at line 29 of file InterferenceFunction2DParaCrystal.h.
| InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal | ( | double | length_1, |
| double | length_2, | ||
| double | alpha, | ||
| double | xi, | ||
| double | damping_length | ||
| ) |
Constructor of interference function of two-dimensional paracrystal.
| 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 |
| damping_length | the damping (coherence) length of the paracrystal in nanometers |
Definition at line 43 of file InterferenceFunction2DParaCrystal.cpp.
|
static |
Creates square lattice.
| lattice_length | length of first and second lattice vectors in nanometers |
| damping_length | the damping (coherence) length of the paracrystal in nanometers |
| domain_size_1 | size of the coherent domain along the first basis vector in nanometers |
| domain_size_2 | size of the coherent domain along the second basis vector in nanometers |
Definition at line 121 of file InterferenceFunction2DParaCrystal.cpp.
|
static |
Creates hexagonal lattice.
| lattice_length | length of first and second lattice vectors in nanometers |
| damping_length | the damping (coherence) length of the paracrystal in nanometers |
| domain_size_1 | size of the coherent domain along the first basis vector in nanometers |
| domain_size_2 | size of the coherent domain along the second basis vector in nanometers |
Definition at line 137 of file InterferenceFunction2DParaCrystal.cpp.
| void InterferenceFunction2DParaCrystal::setDomainSizes | ( | double | size_1, |
| double | size_2 | ||
| ) |
Sets the sizes of coherence domains.
| size_1 | coherence domain size along the first basis vector in nanometers |
| size_2 | coherence domain size along the second basis vector in nanometers |
Definition at line 150 of file InterferenceFunction2DParaCrystal.cpp.
| void InterferenceFunction2DParaCrystal::setProbabilityDistributions | ( | const IFTDistribution2D & | pdf_1, |
| const IFTDistribution2D & | pdf_2 | ||
| ) |
Sets the probability distributions (Fourier transformed) for the two lattice directions.
| pdf_1 | probability distribution in first lattice direction |
| pdf_2 | probability distribution in second lattice direction |
Definition at line 69 of file InterferenceFunction2DParaCrystal.cpp.
| void InterferenceFunction2DParaCrystal::setDampingLength | ( | double | damping_length | ) |
Sets the damping length.
| damping_length | the damping (coherence) length of the paracrystal in nanometers |
Definition at line 81 of file InterferenceFunction2DParaCrystal.cpp.
| void InterferenceFunction2DParaCrystal::setIntegrationOverXi | ( | bool | integrate_xi | ) |
Enables/disables averaging over the lattice rotation angle.
| integrate_xi | integration flag |
Definition at line 241 of file InterferenceFunction2DParaCrystal.cpp.
|
finaloverridevirtual |
If defined by this interference function's parameters, returns the particle density (per area).
Otherwise, returns zero or a user-defined value
Reimplemented from IInterferenceFunction.
Definition at line 86 of file InterferenceFunction2DParaCrystal.cpp.