diff --git a/Sample/HardParticle/HemiEllipsoid.cpp b/Sample/HardParticle/HemiEllipsoid.cpp index abbbf47ea6d44511c812c5f2f5496d6b212b0cce..9b28c74c756fa862c191ee98431ff77ad86ef228 100644 --- a/Sample/HardParticle/HemiEllipsoid.cpp +++ b/Sample/HardParticle/HemiEllipsoid.cpp @@ -51,19 +51,13 @@ complex_t HemiEllipsoid::formfactor_at_bottom(C3 q) const if (std::abs(q.mag()) <= std::numeric_limits<double>::epsilon()) return M_TWOPI * R * W * H / 3.; - return M_TWOPI * H + return M_TWOPI * H * R * W * ComplexIntegrator().integrate( [=](double z) { - double Rz = R * std::sqrt(1.0 - z * z); - double Wz = W * std::sqrt(1.0 - z * z); - - complex_t qxRz = q.x() * Rz; - complex_t qyWz = q.y() * Wz; - complex_t gamma = G * std::sqrt(1.0 - z * z); complex_t J1_gamma_div_gamma = Math::Bessel::J1c(gamma); - return Rz * Wz * J1_gamma_div_gamma * exp_I(q.z() * H * z); + return (1. - z*z) * J1_gamma_div_gamma * exp_I(q.z() * H * z); }, 0., 1.); }