21 :
IBornFF({
"FormFactorHollowSphere",
23 {{
"MeanRadius",
"nm",
"para_tooltip", 0, +
INF, 0},
24 {
"FullWidth",
"nm",
"para_tooltip", 0, +
INF, 0}}},
27 , m_full_width(m_P[1])
29 if (!checkParameters())
30 throw std::runtime_error(
"FormFactorHollowSphere::FormFactorHollowSphere:"
31 " mean radius must be bigger than the half width");
44 double q2 = std::norm(q.
x()) + std::norm(q.
y()) + std::norm(q.
z());
45 double q_r = std::sqrt(q2);
46 if (q_r * R < std::numeric_limits<double>::epsilon())
47 return (4.0 *
M_PI * R * R * R +
M_PI * R * W * W) / 3.0;
52 * (4 * std::sin(qR) * std::sin(qW / 2.0) - qW * std::cos(qW / 2.0) * std::sin(qR)
53 - 2.0 * qR * std::cos(qR) * std::sin(qW / 2.0));
54 return nominator / (q2 * q2 * W);
std::complex< double > complex_t
Defines M_PI and some more mathematical constants.
Defines class TruncatedEllipsoid.
T z() const
Returns z-component in cartesian coordinate system.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.
Abstract base class for Born form factors.
std::unique_ptr< IShape3D > m_shape3D
IShape3D object, used to retrieve vertices (which may be approximate in the case of round shapes).