15 #ifndef BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H
16 #define BORNAGAIN_SAMPLE_INTERFACE_LAYERROUGHNESS_H
19 #include <heinz/Vectors3D.h>
38 std::string
className() const final {
return "LayerRoughness"; }
39 std::vector<ParaMeta>
parDefs() const final
41 return {{
"Sigma",
"",
"roughness amplitude", 0, +
INF, 0},
42 {
"Hurst",
"",
"Power law exponent??", 0, +
INF, 0},
43 {
"CorrLength",
"nm",
"lateral correlation length", 0, +
INF, 0}};
Defines interface class ISampleNode.
Abstract base class for sample components and properties related to scattering.
A roughness of interface between two layers.
double spectralFunction(R3 kvec) const
Returns power spectral density of the surface roughness.
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
double m_hurstParameter
Hurst parameter which describes how jagged the interface, 0<H<=1.
LayerRoughness * clone() const override
Returns a clone of this ISampleNode object.
void setSigma(double sigma)
Sets rms of roughness.
double sigma() const
Returns rms of roughness.
double hurst() const
Returns hurst parameter.
double m_lateralCorrLength
lateral correlation length of the roughness
double lateralCorrLength() const
Returns lateral correlation length.
double m_sigma
rms of roughness
void setLatteralCorrLength(double lateralCorrLength)
Sets lateral correlation length.
std::string pythonConstructor() const
Creates the Python constructor of this class.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
void setHurstParameter(double hurstParameter)
Sets hurst parameter. It describes how jagged the surface is.
double corrFunction(R3 k) const
Correlation function of the roughness profile.