20 Nasa9Poly1::Nasa9Poly1()
25 Nasa9Poly1::Nasa9Poly1(
double tlow,
double thigh,
double pref,
26 const double* coeffs) :
28 m_coeff(coeffs, coeffs + 9)
34 if (coeffs.size() != 9) {
35 throw CanteraError(
"Nasa9Poly1::setParameters",
"Array must contain "
36 "9 coefficients, but {} were given.", coeffs.size());
50 T_poly[2] = T_poly[1] * T;
51 T_poly[3] = T_poly[2] * T;
53 T_poly[5] = T_poly[4] / T;
54 T_poly[6] = std::log(T);
58 doublereal* cp_R, doublereal* h_RT,
59 doublereal* s_R)
const
62 doublereal ct0 =
m_coeff[0] * tt[5];
63 doublereal ct1 =
m_coeff[1] * tt[4];
65 doublereal ct3 =
m_coeff[3] * tt[0];
66 doublereal ct4 =
m_coeff[4] * tt[1];
67 doublereal ct5 =
m_coeff[5] * tt[2];
68 doublereal ct6 =
m_coeff[6] * tt[3];
70 doublereal cpdivR = ct0 + ct1 + ct2 + ct3 + ct4 + ct5 + ct6;
71 doublereal hdivRT = -ct0 + tt[6]*ct1 + ct2 + 0.5*ct3 + 1.0/3.0*ct4
72 + 0.25*ct5 + 0.2*ct6 +
m_coeff[7] * tt[4];
73 doublereal sdivR = -0.5*ct0 - ct1 + tt[6]*ct2 + ct3 + 0.5*ct4
74 + 1.0/3.0*ct5 + 0.25*ct6 +
m_coeff[8];
83 doublereal* cp_R, doublereal* h_RT,
84 doublereal* s_R)
const
92 doublereal& tlow, doublereal& thigh,
94 doublereal*
const coeffs)
const
104 for (
int i = 0; i < 9; i++) {
Header for a single-species standard state object derived from SpeciesThermoInterpType based on the N...
Base class for exceptions thrown by Cantera classes.
virtual int reportType() const
Returns an integer representing the type of parameterization.
vector_fp m_coeff
array of polynomial coefficients
void setParameters(const vector_fp &coeffs)
Set the array of 9 polynomial coefficients.
virtual void updatePropertiesTemp(const doublereal temp, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const
Compute the reference-state property of one species.
virtual void reportParameters(size_t &n, int &type, doublereal &tlow, doublereal &thigh, doublereal &pref, doublereal *const coeffs) const
This utility function reports back the type of parameterization and all of the parameters for the spe...
virtual void updateTemperaturePoly(double T, double *T_poly) const
Given the temperature T, compute the terms of the temperature polynomial T_poly.
virtual void updateProperties(const doublereal *tt, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const
Update the properties for this species, given a temperature polynomial.
Abstract Base class for the thermodynamic manager for an individual species' reference state.
doublereal m_lowT
lowest valid temperature
doublereal m_highT
Highest valid temperature.
doublereal m_Pref
Reference state pressure.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Namespace for the Cantera kernel.
#define NASA9
9 coefficient NASA Polynomials This is implemented in the class Nasa9Poly1 in Nasa9Poly1....