20 #ifndef JDFTX_FLUID_FEX_H2O_FITTEDCORRELATIONS_INTERNAL_H 21 #define JDFTX_FLUID_FEX_H2O_FITTEDCORRELATIONS_INTERNAL_H 23 #include <core/scalar.h> 28 static const double f0 = 3.83929979127276e-18;
29 static const double f1 = -1.01124264551199e-10;
30 static const double f2 = 8.87857550440045e-04;
31 static const double f3 = -2.59856289573731e+03;
32 static const double f4 = 9.17183837107696e+05;
33 static const double f5 = -1.27079357385654e+08;
34 static const double f6 = 6.58720860464796e+09;
35 static const double pObar = -19.0/20;
36 static const double pHbar = +12.0/20;
37 static const double pMean = +27.0/20;
39 __hostanddev__
double fex(
double N)
40 {
return N<0. ? 0. : f0 + N*(f1 + N*(f2 + N*(f3 + N*(f4 + N*(f5 + N*f6)))));
42 __hostanddev__
double fexDot(
double N)
43 {
return N<0. ? 0. : f1 + N*(2*f2 + N*(3*f3 + N*(4*f4 + N*(5*f5 + N*(6*f6)))));
48 double Fex_H2O_FittedCorrelations_calc(
int i,
const double* NObar,
const double* NHbar,
double* Phi_NObar,
double* Phi_NHbar)
50 double Nmean = (1.0/3)*(NObar[i] + NHbar[i]);
51 double fDotMean = fexDot(Nmean);
52 Phi_NObar[i] = ((1.0/3)*pMean*fDotMean + pObar*fexDot(NObar[i]));
53 Phi_NHbar[i] = ((1.0/3)*pMean*fDotMean + pHbar*fexDot(NHbar[i]*0.5)*0.5);
54 return pMean*fex(Nmean) + pObar*fex(NObar[i]) + pHbar*fex(NHbar[i]*0.5);
57 #endif // JDFTX_FLUID_FEX_H2O_FITTEDCORRELATIONS_INTERNAL_H Definition: Fex_H2O_FittedCorrelations_internal.h:25