15 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_SAWTOOTHRIPPLE_H
16 #define BORNAGAIN_SAMPLE_HARDPARTICLE_SAWTOOTHRIPPLE_H
28 std::string
className() const final {
return "SawtoothRippleBox"; }
30 std::vector<ParaMeta>
parDefs() const final
32 return {{
"Length",
"nm",
"Characteristic length", 0,
INF, 1.},
33 {
"Width",
"nm",
"Width", 0,
INF, 1.},
34 {
"Height",
"nm",
"Height", 0,
INF, 1.},
35 {
"AsymmetryLength",
"nm",
"Asymmetry of width", -
INF,
INF, 0.}};
39 complex_t
factor_x(complex_t qx)
const override;
51 std::string
className() const final {
return "SawtoothRippleGauss"; }
53 std::vector<ParaMeta>
parDefs() const final
55 return {{
"Length",
"nm",
"Characteristic length", 0,
INF, 1.},
56 {
"Width",
"nm",
"Width", 0,
INF, 1.},
57 {
"Height",
"nm",
"Height", 0,
INF, 1.},
58 {
"AsymmetryLength",
"nm",
"Asymmetry of width", -
INF,
INF, 0.}};
62 complex_t
factor_x(complex_t qx)
const override;
74 std::string
className() const final {
return "SawtoothRippleLorentz"; }
76 std::vector<ParaMeta>
parDefs() const final
78 return {{
"Length",
"nm",
"Characteristic length", 0,
INF, 1.},
79 {
"Width",
"nm",
"Width", 0,
INF, 1.},
80 {
"Height",
"nm",
"Height", 0,
INF, 1.},
81 {
"AsymmetryLength",
"nm",
"Asymmetry of width", -
INF,
INF, 0.}};
85 complex_t
factor_x(complex_t qx)
const override;
Defines interface classes IProfileRipple, ICosineRipple, ISawtoothRipple.
Base class for form factors with a triangular ripple profile in the yz plane.
The form factor for a cosine ripple, with box profile in elongation direction.
complex_t factor_x(complex_t qx) const override
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
SawtoothRippleBox * clone() const override
Returns a clone of this ISampleNode object.
SawtoothRippleBox(double length, double width, double height, double asymmetry)
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
The form factor for a cosine ripple, with Gaussian profile in elongation direction.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
SawtoothRippleGauss * clone() const override
Returns a clone of this ISampleNode object.
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
SawtoothRippleGauss(double length, double width, double height, double asymmetry)
complex_t factor_x(complex_t qx) const override
The form factor for a cosine ripple, with Lorentz form factor in elongation direction.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
SawtoothRippleLorentz(double length, double width, double height, double asymmetry)
SawtoothRippleLorentz * clone() const override
Returns a clone of this ISampleNode object.
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
complex_t factor_x(complex_t qx) const override