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

A roughness of interface between two layers. More...

+ Inheritance diagram for LayerRoughness:

Public Member Functions

 LayerRoughness (double sigma, double hurstParameter, double lateralCorrLength)
 Constructor of layer roughness. More...
 
LayerRoughnessclone () const
 Returns a clone of this ISample object.
 
virtual void accept (INodeVisitor *visitor) const
 Calls the INodeVisitor's visit method.
 
double getSpectralFun (const kvector_t kvec) const
 Returns power spectral density of the surface roughness. More...
 
double getCorrFun (const kvector_t k) const
 Correlation function of the roughness profile.
 
void setSigma (double sigma)
 Sets rms of roughness.
 
double getSigma () const
 Returns rms of roughness.
 
void setHurstParameter (double hurstParameter)
 Sets hurst parameter. It describes how jagged the surface is.
 
double getHurstParameter () const
 Returns hurst parameter.
 
void setLatteralCorrLength (double lateralCorrLength)
 Sets lateral correlation length.
 
double getLatteralCorrLength () const
 Returns lateral correlation length.
 
- 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 std::vector< const INode * > getChildren () const
 Returns a vector of children (const).
 
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
 

Additional Inherited Members

- 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)
 
- Protected Attributes inherited from INode
const size_t m_NP
 
std::vector< double > m_P
 

Detailed Description

A roughness of interface between two layers.

Based on the article D.K.G. de Boer, Physical review B, Volume 51, Number 8, 15 February 1995 "X-ray reflection and transmission by rough surfaces"

Definition at line 28 of file LayerRoughness.h.

Constructor & Destructor Documentation

◆ LayerRoughness()

LayerRoughness::LayerRoughness ( double  sigma,
double  hurstParameter,
double  lateralCorrLength 
)

Constructor of layer roughness.

Parameters
sigmarms of the roughness in nanometers
hurstParameterhurst parameter which describes how jagged the interface, dimensionless [0.0, 1.0], where 0.0 gives more spikes, 1.0 more smoothness
lateralCorrLengthlateral correlation length of the roughness in nanometers

Definition at line 24 of file LayerRoughness.cpp.

Member Function Documentation

◆ getSpectralFun()

double LayerRoughness::getSpectralFun ( const kvector_t  kvec) const

Returns power spectral density of the surface roughness.

Power spectral density of the surface roughness is a result of two-dimensional Fourier transform of the correlation function of the roughness profile.

Based on the article D.K.G. de Boer, Physical review B, Volume 51, Number 8, 15 February 1995 "X-ray reflection and transmission by rough surfaces"

Definition at line 43 of file LayerRoughness.cpp.


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