Thermodynamic Properties#

In this section, we describe how Cantera uses species and phase information to calculate thermodynamic properties.

Thermodynamic properties typically depend on information at both the species and phase levels. Generally, the species thermodynamic model and accompanying coefficient data specifies how the reference enthalpy and entropy values for each species are calculated as a function of temperature. The phase model then describes how the species interact with one another to determine phase properties and species specific properties for a given thermodynamic state. This includes both the mechanical equation of state (\(p\)-\(\hat{v}\)-\(T\) relationship) as well as how species-specific properties, such as internal energy, entropy, and others, depend on the state variables. The following sections describe the species and phase thermodynamic models available in Cantera.

Species Thermodynamic Models

The models and equations that Cantera uses to calculate species thermodynamic properties, such as the NASA 7-parameter polynomial form.

Phase Thermodynamic Models

The theory behind some of Cantera’s phase models, such as the ideal gas law.

The user must specify the thermodynamic models and provide input data to be used for both levels, and these selections must be compatible with one another. For instance, one cannot pair certain non-ideal species thermodynamic models with an ideal phase model.

The Intensive Thermodynamic State#

Cantera’s phase thermodynamic model, implemented by the C++ ThermoPhase class and classes derived from it, works only with the intensive thermodynamic state. That is, all extensive properties (enthalpy, entropy, internal energy, volume, etc.) are computed for a unit quantity (on a mass or mole basis). For example, there is a method ThermoPhase::enthalpy_mole() that returns the molar enthalpy (J/kmol), and a method ThermoPhase::enthalpy_mass() that returns the specific enthalpy (J/kg), but no method ThermoPhase::enthalpy() that would return the total enthalpy (J). This is because class ThermoPhase does not store the total amount (mass or mole) of the phase.

The intensive state of a single-component phase in equilibrium is fully specified by the values of any \(r+1\) independent thermodynamic properties, where \(r\) is the number of reversible work modes. If the only reversible work mode is compression (a “simple compressible substance”), then two properties suffice to specify the intensive state. By default, class ThermoPhase stores internally the values of the temperature, the mass density, and the mass fractions of all species. These values are sufficient to fix the intensive thermodynamic state of the phase and to compute any other intensive properties. This choice is arbitrary, and for most purposes you can’t tell which properties are stored and which are computed. For some phase models, other choices of the intrinsic state variables are chosen, such as incompressible phases where the pressure replaces the mass density as an independent variable.