48class NasaPoly2 :
public SpeciesThermoInterpType
51 NasaPoly2() =
default;
63 NasaPoly2(
double tlow,
double thigh,
double pref,
const double* coeffs) :
64 SpeciesThermoInterpType(tlow, thigh, pref),
66 mnp_low(tlow, coeffs[0], pref, coeffs + 8),
67 mnp_high(coeffs[0], thigh, pref, coeffs + 1) {
92 void setParameters(
double Tmid,
const vector<double>& low,
const vector<double>& high);
101 mnp_low.updateTemperaturePoly(T, T_poly);
106 double* cp_R,
double* h_RT,
double* s_R)
const override {
108 mnp_low.updateProperties(tt, cp_R, h_RT, s_R);
110 mnp_high.updateProperties(tt, cp_R, h_RT, s_R);
115 double* cp_R,
double* h_RT,
double* s_R)
const override {
117 mnp_low.updatePropertiesTemp(temp, cp_R, h_RT, s_R);
119 mnp_high.updatePropertiesTemp(temp, cp_R, h_RT, s_R);
123 size_t nCoeffs()
const override {
return 15; }
126 double& pref,
double*
const coeffs)
const override {
127 mnp_high.reportParameters(n, type, coeffs[0], thigh, pref, coeffs + 1);
128 mnp_low.reportParameters(n, type, tlow, coeffs[0], pref, coeffs + 8);
154 double delH = Hf298New - h298now;
155 double h =
mnp_low.reportHf298(0);
156 double hnew = h + delH;
157 mnp_low.modifyOneHf298(k, hnew);
163 void validate(
const string& name)
override;
Header for a single-species standard state object derived from SpeciesThermoInterpType based on the N...
Pure Virtual Base class for individual species reference state thermodynamic managers and text for th...
A map of string keys to values whose type can vary at runtime.
The NASA polynomial parameterization for one temperature range.
void setMinTemp(double Tmin) override
Set the minimum temperature at which the thermo parameterization is valid.
int reportType() const override
Returns an integer representing the type of parameterization.
size_t temperaturePolySize() const override
Number of terms in the temperature polynomial for this parameterization.
void getParameters(AnyMap &thermo) const override
Store the parameters of the species thermo object such that an identical species thermo object could ...
size_t nCoeffs() const override
This utility function returns the number of coefficients for a given type of species parameterization...
void validate(const string &name) override
Check for problems with the parameterization, and generate warnings or throw and exception if any are...
void updateTemperaturePoly(double T, double *T_poly) const override
Given the temperature T, compute the terms of the temperature polynomial T_poly.
void reportParameters(size_t &n, int &type, double &tlow, double &thigh, double &pref, double *const coeffs) const override
This utility function returns the type of parameterization and all of the parameters for the species.
void setParameters(double Tmid, const vector< double > &low, const vector< double > &high)
void setRefPressure(double Pref) override
Set the reference pressure [Pa].
void updateProperties(const double *tt, double *cp_R, double *h_RT, double *s_R) const override
Update the properties for this species, given a temperature polynomial.
double reportHf298(double *const h298=nullptr) const override
Report the 298 K Heat of Formation of the standard state of one species (J kmol-1)
void resetHf298() override
Restore the original heat of formation for this species.
void setMaxTemp(double Tmax) override
Set the maximum temperature at which the thermo parameterization is valid.
double m_midT
Midrange temperature.
NasaPoly1 mnp_low
NasaPoly1 object for the low temperature region.
void modifyOneHf298(const size_t k, const double Hf298New) override
Modify the value of the 298 K Heat of Formation of one species in the phase (J kmol-1)
NasaPoly1 mnp_high
NasaPoly1 object for the high temperature region.
NasaPoly2(double tlow, double thigh, double pref, const double *coeffs)
Constructor with all input data.
void updatePropertiesTemp(const double temp, double *cp_R, double *h_RT, double *s_R) const override
Compute the reference-state property of one species.
virtual void setRefPressure(double Pref)
Set the reference pressure [Pa].
virtual void setMinTemp(double Tmin)
Set the minimum temperature at which the thermo parameterization is valid.
virtual void setMaxTemp(double Tmax)
Set the maximum temperature at which the thermo parameterization is valid.
Namespace for the Cantera kernel.
#define NASA2
Two regions of 7 coefficient NASA Polynomials This is implemented in the class NasaPoly2 in NasaPoly2...