3 #include <boost/math/constants/constants.hpp>
5 #include <gsl/gsl_poly.h>
8 using namespace OpenMPCD;
10 static const FP pi = boost::math::constants::pi<FP>();
13 const FP zeroShearRelaxationTime)
22 const FP mpcHydrodynamicRadius)
24 const FP l = rootMeanSquareBondLength;
25 const FP D = mpcSelfDiffusionCoefficient;
26 const FP R_H = mpcHydrodynamicRadius;
28 const FP denominator1 = 6*D;
29 const FP denominator2 = 1 - R_H / l *
sqrt(6 /
pi);
31 return l*l / (denominator1 * denominator2);
43 const int rootCount = gsl_poly_solve_cubic(-1, 0, c, &x, &y, &z);
46 throw std::runtime_error(
"Unexpected number of roots in AnalyticQuantitiesGaussianDumbbell::lagrangianMultiplierRatio");