15 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_COSINERIPPLE_H
16 #define BORNAGAIN_SAMPLE_HARDPARTICLE_COSINERIPPLE_H
28 std::string
className() const final {
return "CosineRippleBox"; }
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.}};
38 complex_t
factor_x(complex_t qx)
const override;
50 std::string
className() const final {
return "CosineRippleGauss"; }
52 std::vector<ParaMeta>
parDefs() const final
54 return {{
"Length",
"nm",
"Characteristic length", 0,
INF, 1.},
55 {
"Width",
"nm",
"Width", 0,
INF, 1.},
56 {
"Height",
"nm",
"Height", 0,
INF, 1.}};
60 complex_t
factor_x(complex_t qx)
const override;
72 std::string
className() const final {
return "CosineRippleLorentz"; }
74 std::vector<ParaMeta>
parDefs() const final
76 return {{
"Length",
"nm",
"Characteristic length", 0,
INF, 1.},
77 {
"Width",
"nm",
"Width", 0,
INF, 1.},
78 {
"Height",
"nm",
"Height", 0,
INF, 1.}};
82 complex_t
factor_x(complex_t qx)
const override;
Defines interface classes IProfileRipple, ICosineRipple, ISawtoothRipple.
The form factor for a cosine ripple, with box profile in elongation direction.
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
CosineRippleBox(double length, double width, double height)
complex_t factor_x(complex_t qx) const override
CosineRippleBox * clone() const override
Returns a clone of this ISampleNode object.
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.
CosineRippleGauss * clone() const override
Returns a clone of this ISampleNode object.
CosineRippleGauss(double length, double width, double height)
complex_t factor_x(complex_t qx) const override
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 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.
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
CosineRippleLorentz * clone() const override
Returns a clone of this ISampleNode object.
CosineRippleLorentz(double length, double width, double height)
Base class for form factors with a cosine ripple profile in the yz plane.