rmgpy.thermo.NASA¶
- class rmgpy.thermo.NASA(polynomials=None, Tmin=None, Tmax=None, E0=None, Cp0=None, CpInf=None, label='', comment='')¶
A heat capacity model based on a set of one, two, or three
NASAPolynomial
objects. The attributes are:Attribute
Description
polynomials
The list of NASA polynomials to use in this model
Tmin
The minimum temperature in K at which the model is valid, or zero if unknown or undefined
Tmax
The maximum temperature in K at which the model is valid, or zero if unknown or undefined
E0
The energy at zero Kelvin (including zero point energy)
comment
Information about the model (e.g. its source)
The NASA polynomial is another representation of the heat capacity, enthalpy, and entropy using seven or nine coefficients \(\mathbf{a} = \left[a_{-2}\ a_{-1}\ a_0\ a_1\ a_2\ a_3\ a_4\ a_5\ a_6 \right]\). The relevant thermodynamic parameters are evaluated via the expressions
\[\frac{C_\mathrm{p}(T)}{R} = a_{-2} T^{-2} + a_{-1} T^{-1} + a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4\]\[\frac{H(T)}{RT} = - a_{-2} T^{-2} + a_{-1} T^{-1} \ln T + a_0 + \frac{1}{2} a_1 T + \frac{1}{3} a_2 T^2 + \frac{1}{4} a_3 T^3 + \frac{1}{5} a_4 T^4 + \frac{a_5}{T}\]\[\frac{S(T)}{R} = -\frac{1}{2} a_{-2} T^{-2} - a_{-1} T^{-1} + a_0 \ln T + a_1 T + \frac{1}{2} a_2 T^2 + \frac{1}{3} a_3 T^3 + \frac{1}{4} a_4 T^4 + a_6\]In the seven-coefficient version, \(a_{-2} = a_{-1} = 0\).
As simple polynomial expressions, the NASA polynomial is faster to evaluate when compared to the Wilhoit model; however, it does not have the nice physical behavior of the Wilhoit representation. Often multiple NASA polynomials are used to accurately represent the thermodynamics of a system over a wide temperature range.
- Cp0¶
The heat capacity at zero temperature.
- CpInf¶
The heat capacity at infinite temperature.
- E0¶
The ground state energy (J/mol) at zero Kelvin, including zero point energy, or
None
if not yet specified.
- Tmax¶
The maximum temperature at which the model is valid, or
None
if not defined.
- Tmin¶
The minimum temperature at which the model is valid, or
None
if not defined.
- as_dict(self) dict ¶
A helper function for YAML dumping
- change_base_enthalpy(self, double deltaH) NASA ¶
Add deltaH in J/mol to the base enthalpy of formation H298 and return the modified NASA object.
- change_base_entropy(self, double deltaS) NASA ¶
Add deltaS in J/molK to the base entropy of formation S298 and return the modified NASA object
- comment¶
unicode
- Type:
comment
- discrepancy(self, HeatCapacityModel other) double ¶
Return some measure of how dissimilar self is from other.
The measure is arbitrary, but hopefully useful for sorting purposes. Discrepancy of 0 means they are identical
- get_enthalpy(self, double T) double ¶
Return the enthalpy \(H(T)\) in J/mol at the specified temperature T in K.
- get_entropy(self, double T) double ¶
Return the entropy \(S(T)\) in J/mol*K at the specified temperature T in K.
- get_free_energy(self, double T) double ¶
Return the Gibbs free energy \(G(T)\) in J/mol at the specified temperature T in K.
- get_heat_capacity(self, double T) double ¶
Return the constant-pressure heat capacity \(C_\mathrm{p}(T)\) in J/mol*K at the specified temperature T in K.
- is_identical_to(self, HeatCapacityModel other) bool ¶
Returns
True
if self and other report very similar thermo values for heat capacity, enthalpy, entropy, and free energy over a wide range of temperatures, orFalse
otherwise.
- is_similar_to(self, HeatCapacityModel other) bool ¶
Returns
True
if self and other report similar thermo values for heat capacity, enthalpy, entropy, and free energy over a wide range of temperatures, orFalse
otherwise.
- is_temperature_valid(self, double T) bool ¶
Return
True
if the temperature T in K is within the valid temperature range of the thermodynamic data, orFalse
if not. If the minimum and maximum temperature are not defined,True
is returned.
- label¶
unicode
- Type:
label
- make_object(data, class_dict)¶
A helper function for constructing objects from a dictionary (used when loading YAML files)
- Parameters:
data (dict) – The dictionary representation of the object
class_dict (dict) – A mapping of class names to the classes themselves
- Returns:
None
- poly1¶
rmgpy.thermo.nasa.NASAPolynomial
- Type:
poly1
- poly2¶
rmgpy.thermo.nasa.NASAPolynomial
- Type:
poly2
- poly3¶
rmgpy.thermo.nasa.NASAPolynomial
- Type:
poly3
- polynomials¶
The set of one, two, or three NASA polynomials.
- select_polynomial(self, double T) NASAPolynomial ¶
- to_cantera(self)¶
Return the cantera equivalent NasaPoly2 object from this NASA object.
- to_thermo_data(self) ThermoData ¶
Convert the NASAPolynomial model to a
ThermoData
object.If Cp0 and CpInf are omitted or 0, they are None in the returned ThermoData.
- to_wilhoit(self) Wilhoit ¶
Convert a
MultiNASA
object multiNASA to aWilhoit
object. You must specify the linearity of the molecule linear, the number of vibrational modes Nfreq, and the number of hindered rotor modes Nrotors so the algorithm can determine the appropriate heat capacity limits at zero and infinite temperature.
Here is an example of a NASA entry:
entry(
index = 2,
label = "octane",
molecule =
"""
1 C 0 {2,S}
2 C 0 {1,S} {3,S}
3 C 0 {2,S} {4,S}
4 C 0 {3,S} {5,S}
5 C 0 {4,S} {6,S}
6 C 0 {5,S} {7,S}
7 C 0 {6,S} {8,S}
8 C 0 {7,S}
""",
thermo = NASA(
polynomials = [
NASAPolynomial(coeffs=[1.25245480E+01,-1.01018826E-02,2.21992610E-04,-2.84863722E-07,1.12410138E-10,-2.98434398E+04,-1.97109989E+01], Tmin=(200,'K'), Tmax=(1000,'K')),
NASAPolynomial(coeffs=[2.09430708E+01,4.41691018E-02,-1.53261633E-05,2.30544803E-09,-1.29765727E-13,-3.55755088E+04,-8.10637726E+01], Tmin=(1000,'K'), Tmax=(6000,'K')),
],
Tmin = (200,'K'),
Tmax = (6000,'K'),
),
reference = Reference(authors=["check on burcat"], title='burcat', year="1999", url="http://www.me.berkeley.edu/gri-mech/version30/text30.html"),
referenceType = "review",
shortDesc = u"""""",
longDesc =
u"""
""",
)