15 #ifndef BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEHARDDISK_H
16 #define BORNAGAIN_SAMPLE_AGGREGATE_INTERFERENCEHARDDISK_H
31 std::vector<ParaMeta>
parDefs() const final
33 return {{
"Radius",
"nm",
"particle radius", 0, +
INF, 0},
34 {
"Density",
"nm^-2",
"particle density", 0, +
INF, 0},
35 {
"Variance",
"nm?",
"position variance", 0, +
INF, 0}};
39 std::string
className() const final {
return "InterferenceHardDisk"; }
Defines and implements the interface class IInterference.
Abstract base class of interference functions.
Percus-Yevick hard disk interference function.
double iff_without_dw(R3 q) const override
Calculates the structure factor without Debye-Waller factor.
InterferenceHardDisk * clone() const override
InterferenceHardDisk(double radius, double density, double position_var=0)
double packingRatio() const
~InterferenceHardDisk() override=default
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
double particleDensity() const override
If defined by this interference function's parameters, returns the particle density (per area)....
std::vector< ParaMeta > parDefs() const final
Returns the parameter definitions, to be hard-coded in each leaf class.