Skip to content
Snippets Groups Projects
Commit 88eef2dd authored by Van Herck, Walter's avatar Van Herck, Walter
Browse files

Move functions to unnamed namespace

parent 37a099e1
No related branches found
No related tags found
No related merge requests found
......@@ -22,6 +22,9 @@
namespace {
static const double p = 7.0/3.0 - 4.0*std::sqrt(3.0)/M_PI;
double Czero(double packing);
double S2(double packing);
double W2(double x);
}
InterferenceFunctionHardDisk::InterferenceFunctionHardDisk(double radius, double density)
......@@ -60,8 +63,8 @@ double InterferenceFunctionHardDisk::iff_without_dw(const kvector_t q) const
double qy = q.y();
m_q = 2.0*std::sqrt(qx*qx+qy*qy)*m_radius;
m_packing = packingRatio();
m_c_zero = c_zero(m_packing);
m_s2 = s2(m_packing);
m_c_zero = Czero(m_packing);
m_s2 = S2(m_packing);
double c_q = 2.0*M_PI*mP_integrator->integrate(0.0, 1.0);
double rho = 4.0*m_packing/M_PI;
return 1.0/(1.0 - rho*c_q);
......@@ -89,14 +92,21 @@ double InterferenceFunctionHardDisk::packingRatio() const
return M_PI*m_radius*m_radius*m_density;
}
double InterferenceFunctionHardDisk::c_zero(double packing) const
double InterferenceFunctionHardDisk::integrand(double x) const
{
double cx = m_c_zero*(1.0 + 4.0*m_packing*(W2(x/2.0) - 1.0) + m_s2*x);
return x * cx * MathFunctions::Bessel_J0(m_q*x);
}
namespace {
double Czero(double packing)
{
double numerator = 1.0 + packing + 3.0*p*packing*packing - p*std::pow(packing, 3);
double denominator = std::pow(1.0-packing, 3);
return -numerator/denominator;
}
double InterferenceFunctionHardDisk::s2(double packing) const
double S2(double packing)
{
double factor = 3.0*packing*packing/8.0;
double numerator = 8.0*(1.0-2.0*p) + (25.0-9.0*p)*p*packing - (7.0-3.0*p)*p*packing*packing;
......@@ -104,13 +114,8 @@ double InterferenceFunctionHardDisk::s2(double packing) const
return factor*numerator/denominator;
}
double InterferenceFunctionHardDisk::w2(double x) const
double W2(double x)
{
return 2.0*(std::acos(x) - x*std::sqrt(1.0 - x*x))/M_PI;
}
double InterferenceFunctionHardDisk::integrand(double x) const
{
double cx = m_c_zero*(1.0 + 4.0*m_packing*(w2(x/2.0) - 1.0) + m_s2*x);
return x * cx * MathFunctions::Bessel_J0(m_q*x);
}
......@@ -46,9 +46,6 @@ private:
void init_parameters();
void validateParameters() const;
double packingRatio() const;
double c_zero(double packing) const;
double s2(double packing) const;
double w2(double x) const;
double integrand(double x) const;
double m_radius;
double m_density;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment