23 , m_full_width(m_P[1])
27 throw std::runtime_error(
"HollowSphere::HollowSphere:"
28 " mean radius must be bigger than the half width");
41 double q2 = std::norm(q.x()) + std::norm(q.y()) + std::norm(q.z());
42 double q_r = std::sqrt(q2);
43 if (q_r *
R < std::numeric_limits<double>::epsilon())
44 return (4.0 *
M_PI *
R *
R *
R +
M_PI *
R * W * W) / 3.0;
49 * (4 * std::sin(qR) * std::sin(qW / 2.0) - qW * std::cos(qW / 2.0) * std::sin(qR)
50 - 2.0 * qR * std::cos(qR) * std::sin(qW / 2.0));
51 return nominator / (q2 * q2 * W);
Defines M_PI and some more mathematical constants.
Defines class HollowSphere.
Defines class TruncatedEllipsoidNet.
Integrated full sphere form factor over a uniform distribution of radii.
bool checkParameters() const
const double & m_full_width
This is the full width of the radius distribution.
const double & m_mean
This is the mean radius.
HollowSphere(double mean, double full_width)
complex_t formfactor_at_bottom(C3 q) const override
void checkNodeArgs() const
Raises exception if a parameter value is invalid.