21Nasa9Poly1::Nasa9Poly1()
26Nasa9Poly1::Nasa9Poly1(
double tlow,
double thigh,
double pref,
27 const double* coeffs) :
29 m_coeff(coeffs, coeffs + 9)
35 if (coeffs.size() != 9) {
36 throw CanteraError(
"Nasa9Poly1::setParameters",
"Array must contain "
37 "9 coefficients, but {} were given.", coeffs.size());
51 T_poly[2] = T_poly[1] * T;
52 T_poly[3] = T_poly[2] * T;
54 T_poly[5] = T_poly[4] / T;
55 T_poly[6] = std::log(T);
59 doublereal* cp_R, doublereal* h_RT,
60 doublereal* s_R)
const
63 doublereal ct0 =
m_coeff[0] * tt[5];
64 doublereal ct1 =
m_coeff[1] * tt[4];
66 doublereal ct3 =
m_coeff[3] * tt[0];
67 doublereal ct4 =
m_coeff[4] * tt[1];
68 doublereal ct5 =
m_coeff[5] * tt[2];
69 doublereal ct6 =
m_coeff[6] * tt[3];
71 doublereal cpdivR = ct0 + ct1 + ct2 + ct3 + ct4 + ct5 + ct6;
72 doublereal hdivRT = -ct0 + tt[6]*ct1 + ct2 + 0.5*ct3 + 1.0/3.0*ct4
73 + 0.25*ct5 + 0.2*ct6 +
m_coeff[7] * tt[4];
74 doublereal sdivR = -0.5*ct0 - ct1 + tt[6]*ct2 + ct3 + 0.5*ct4
75 + 1.0/3.0*ct5 + 0.25*ct6 +
m_coeff[8];
84 doublereal* cp_R, doublereal* h_RT,
85 doublereal* s_R)
const
93 doublereal& tlow, doublereal& thigh,
95 doublereal*
const coeffs)
const
105 for (
int i = 0; i < 9; i++) {
Header for a single-species standard state object derived from SpeciesThermoInterpType based on the N...
A map of string keys to values whose type can vary at runtime.
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 getParameters(AnyMap &thermo) const
Store the parameters of the species thermo object such that an identical species thermo object could ...
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.
Namespace for the Cantera kernel.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
#define NASA9
9 coefficient NASA Polynomials This is implemented in the class Nasa9Poly1 in Nasa9Poly1....