Cantera  2.1.2
Managers for Calculating Reference-State Thermodynamics

The ThermoPhase object relies on a set of manager classes to calculate the thermodynamic properties of the reference state for all of the species in the phase. More...

Collaboration diagram for Managers for Calculating Reference-State Thermodynamics:


This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.

## Classes

class  NasaThermo
A species thermodynamic property manager for the NASA polynomial parameterization with two temperature ranges. More...

class  ShomateThermo
A species thermodynamic property manager for the Shomate polynomial parameterization. More...

class  GeneralSpeciesThermo
A species thermodynamic property manager for a phase. More...

class  SimpleThermo

class  SpeciesThermo
Pure Virtual base class for the species thermo manager classes. More...

class  UnknownSpeciesThermo
Unknown species thermo manager string error. More...

class  SpeciesThermoDuo< T1, T2 >
This species thermo manager requires that all species have one of two parameterizations. More...

## Detailed Description

The ThermoPhase object relies on a set of manager classes to calculate the thermodynamic properties of the reference state for all of the species in the phase.

This may be a computationally significant cost, so efficiency is important. This group describes how this is done efficiently within Cantera.

To compute the thermodynamic properties of multicomponent solutions, it is necessary to know something about the thermodynamic properties of the individual species present in the solution. Exactly what sort of species properties are required depends on the thermodynamic model for the solution. For a gaseous solution (i.e., a gas mixture), the species properties required are usually ideal gas properties at the mixture temperature and at a reference pressure (almost always at 1 bar).

In defining these standard states for species in a phase, we make the following definition. A reference state is a standard state of a species in a phase limited to one particular pressure, the reference pressure. The reference state specifies the dependence of all thermodynamic functions as a function of the temperature, in between a minimum temperature and a maximum temperature. The reference state also specifies the molar volume of the species as a function of temperature. The molar volume is a thermodynamic function. By contrast, a full standard state does the same thing as a reference state, but specifies the thermodynamics functions at all pressures.

Whatever the conventions used by a particular solution model, means need to be provided to compute the species properties in the reference state. Class SpeciesThermo is the base class for a family of classes that compute properties of all species in a phase in their reference states, for a range of temperatures. Note, the pressure dependence of the species thermodynamic functions is not handled by this particular species thermodynamic model. SpeciesThermo calculates the reference-state thermodynamic values of all species in a single phase during each call. The vector nature of the operation leads to a lower operation count and better efficiency, especially if the individual reference state classes are known to the reference-state manager class so that common operations may be grouped together.

The most important member function for the SpeciesThermo class is the member function update(). The function calculates the values of Cp, H, and S for all of the species at once at the specified temperature.

Usually, all of the species in a phase are installed into a SpeciesThermo class. However, there is no requirement that a SpeciesThermo object handles all of the species in a phase. There are two member functions that are called to install each species into the SpeciesThermo. One routine is called install(). It is called with the index of the species in the phase, an integer type delineating the SpeciesThermoInterpType object, and a listing of the parameters for that parameterization. A factory routine is called based on the integer type. The other routine is called install_STIT(). It accepts as an argument a pointer to an already formed SpeciesThermoInterpType object.

The following classes inherit from SpeciesThermo. Each of these classes handle multiple species, usually all of the species in a phase. However, there is no requirement that a SpeciesThermo object handles all of the species in a phase.

The class SpeciesThermoInterpType is a pure virtual base class for calculation of thermodynamic functions for a single species in its reference state. The following classes inherit from SpeciesThermoInterpType.

• NasaPoly1 in file NasaPoly1.h
• This is a one zone model, consisting of a 7 coefficient Nasa Polynomial format.
• NasaPoly2 in file NasaPoly2.h
• This is a two zone model, with each zone consisting of a 7 coefficient Nasa Polynomial format.
• ShomatePoly in file ShomatePoly.h
• This is a one zone model, consisting of a 7 coefficient Shomate Polynomial format.
• ShomatePoly2 in file ShomatePoly.h
• This is a two zone model, with each zone consisting of a 7 coefficient Shomate Polynomial format.
• ConstCpPoly in file ConstCpPoly.h
• This is a one-zone constant heat capacity model.
• Mu0Poly in file Mu0Poly.h
• This is a multizoned model. The chemical potential is given at a set number of temperatures. Between each temperature the heat capacity is treated as a constant.
• Nasa9Poly1 in file Nasa9Poly1.h
• This is a one zone model, consisting of the 9 coefficient Nasa Polynomial format.
• Nasa9PolyMultiTempRegion in file Nasa9PolyMultiTempRegion.h
• This is a multiple zone model, consisting of the 9 coefficient Nasa Polynomial format in each zone.

In particular the NasaThermo SpeciesThermo-derived model has been optimized for execution speed. It's the main-stay of gas phase computations involving large numbers of species in a phase. It combines the calculation of each species, which individually have NasaPoly2 representations, to minimize the computational time.

The GeneralSpeciesThermo SpeciesThermo object is completely general. It does not try to coordinate the individual species calculations at all and therefore is the slowest but most general implementation.