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

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...
 
InterferenceFunction2DParaCrystalclone () 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 Lattice2Dlattice () 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 IFTDistribution2Dpdf1 () const
 
const IFTDistribution2Dpdf2 () 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 InterferenceFunction2DParaCrystalcreateSquare (double lattice_length, double damping_length, double domain_size_1, double domain_size_2)
 Creates square lattice. More...
 
static InterferenceFunction2DParaCrystalcreateHexagonal (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
 

Detailed Description

Interference function of a 2D paracrystal.

Definition at line 29 of file InterferenceFunction2DParaCrystal.h.

Constructor & Destructor Documentation

◆ InterferenceFunction2DParaCrystal()

InterferenceFunction2DParaCrystal::InterferenceFunction2DParaCrystal ( double  length_1,
double  length_2,
double  alpha,
double  xi,
double  damping_length 
)

Constructor of interference function of two-dimensional paracrystal.

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
damping_lengththe damping (coherence) length of the paracrystal in nanometers

Definition at line 43 of file InterferenceFunction2DParaCrystal.cpp.

Member Function Documentation

◆ createSquare()

InterferenceFunction2DParaCrystal * InterferenceFunction2DParaCrystal::createSquare ( double  lattice_length,
double  damping_length,
double  domain_size_1,
double  domain_size_2 
)
static

Creates square lattice.

Parameters
lattice_lengthlength of first and second lattice vectors in nanometers
damping_lengththe damping (coherence) length of the paracrystal in nanometers
domain_size_1size of the coherent domain along the first basis vector in nanometers
domain_size_2size of the coherent domain along the second basis vector in nanometers

Definition at line 121 of file InterferenceFunction2DParaCrystal.cpp.

◆ createHexagonal()

InterferenceFunction2DParaCrystal * InterferenceFunction2DParaCrystal::createHexagonal ( double  lattice_length,
double  damping_length,
double  domain_size_1,
double  domain_size_2 
)
static

Creates hexagonal lattice.

Parameters
lattice_lengthlength of first and second lattice vectors in nanometers
damping_lengththe damping (coherence) length of the paracrystal in nanometers
domain_size_1size of the coherent domain along the first basis vector in nanometers
domain_size_2size of the coherent domain along the second basis vector in nanometers

Definition at line 137 of file InterferenceFunction2DParaCrystal.cpp.

◆ setDomainSizes()

void InterferenceFunction2DParaCrystal::setDomainSizes ( double  size_1,
double  size_2 
)

Sets the sizes of coherence domains.

Parameters
size_1coherence domain size along the first basis vector in nanometers
size_2coherence domain size along the second basis vector in nanometers

Definition at line 150 of file InterferenceFunction2DParaCrystal.cpp.

◆ setProbabilityDistributions()

void InterferenceFunction2DParaCrystal::setProbabilityDistributions ( const IFTDistribution2D pdf_1,
const IFTDistribution2D pdf_2 
)

Sets the probability distributions (Fourier transformed) for the two lattice directions.

Parameters
pdf_1probability distribution in first lattice direction
pdf_2probability distribution in second lattice direction

Definition at line 69 of file InterferenceFunction2DParaCrystal.cpp.

◆ setDampingLength()

void InterferenceFunction2DParaCrystal::setDampingLength ( double  damping_length)

Sets the damping length.

Parameters
damping_lengththe damping (coherence) length of the paracrystal in nanometers

Definition at line 81 of file InterferenceFunction2DParaCrystal.cpp.

◆ setIntegrationOverXi()

void InterferenceFunction2DParaCrystal::setIntegrationOverXi ( bool  integrate_xi)

Enables/disables averaging over the lattice rotation angle.

Parameters
integrate_xiintegration flag

Definition at line 241 of file InterferenceFunction2DParaCrystal.cpp.

◆ getParticleDensity()

double InterferenceFunction2DParaCrystal::getParticleDensity ( ) const
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.


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