16 #define SQUARE(V) (V * V)
19 static double const h_cgs = 6.62606957e-27;
20 static double const c_cgs = 2.99792458e+10;
29 -2.772874, -0.158558, -9.980797,
32 1.977990, -1.147438, 156.288133};
34 -0.096876, -20.533862, -38.515158,
38 double B0 = 59.322, D0 = 4.71e-02;
40 for (
int J = 0; J <
JMAX; J++) {
41 DJ_[J] = ((J / 2) * 2 == J) ? 2 * J + 1 : 3 * (2 * J + 1);
42 FJ_[J] = B0 * J * (J + 1.) - D0 *
SQUARE(J * (J + 1.));
48 double Zpara = 0, Zortho = 0;
50 for (
size_t J = 0; J <
JMAX; J += 2)
53 for (
size_t J = 1; J <
JMAX; J += 2)
56 return Zpara / (Zpara + Zortho);
60 double *cp_ortho,
double T) {
76 for (
int JQ = 9; JQ >= 0; JQ--) {
78 double P =
DJ_[JQ] * exp(-
X);
82 SEQ2 +=
DJ_[JQ] *
X * exp(-
X);
84 if ((JQ / 2) * 2 == JQ) {
87 SP2 +=
DJ_[JQ] *
X * exp(-
X);
91 SO2 +=
DJ_[JQ] *
X * exp(-
X);
104 *
cp_norm = FORTH * (*cp_ortho) + FPARA * (*cp_para);
112 get_cp_(¶, &equil, &norm, &ortho, T);
121 get_cp_(¶, &equil, &norm, &ortho, T);
130 get_cp_(¶, &equil, &norm, &ortho, T);
139 get_cp_(¶, &equil, &norm, &ortho, T);
145 std::stringstream msg;
154 else if (T >= 1000. && T < 2500.)
161 result = pdata[0] + pdata[1] * T + pdata[2] * T * T + pdata[3] * T * T * T +
static double fpara_equil(double T)
static double nist_shomate3_[7]
static double cp_equil(double T)
static double cp_ortho(double T)
static double nist_shomate1_[7]
static double nist_shomate2_[7]
static double cp_norm(double T)
static void get_cp_(double *cp_para, double *cp_equil, double *cp_norm, double *cp_ortho, double T)
static double cp_nist(double T)
static double cp_para(double T)
double min(double x1, double x2, double x3)
double max(double x1, double x2, double x3)
static double const R_cgs
static double const h_cgs
static double const FACT_cgs
static double const kBoltz_cgs
static double const c_cgs