Models of Phases of Matter

These classes are used to represent the composition and state of a single phase of matter. More...

Collaboration diagram for Models of Phases of Matter:


class  Constituents
 Class Constituents manages a set of elements and species. More...
class  Elements
 Object containing the elements that make up species in a phase. More...
class  Phase
 Base class for phases of mater. More...
class  State
 Manages the independent variables of temperature, mass density, and species mass/mole fraction that define the thermodynamic state. More...
class  ThermoPhase
 Base class for a phase with thermodynamic properties. More...


 Thermodynamic Properties

These classes are used to compute the thermodynamic properties of phases of matter.

 Electric Properties of Phases

Detailed Description

These classes are used to represent the composition and state of a single phase of matter.

Together these classes form the basis for describing the species and element compositions of a phase as well as the stoichiometry of each species, and for describing the current state of the phase. They do not in themselves contain Thermodynamic equation of state information. However, they do comprise all of the necessary background functionality to support thermodynamic calculations, and the class ThermoPhase inherits from the class Phase (see Thermodynamic Properties).

Class Elements manages the elements that are part of a chemistry specification for a phase. This class may support calculations employing Multiple phases. In this case, a single Elements object may be shared by more than one Constituents class. Reactions between the phases may then be described using stoichiometry base on the same Elements class object.

The member functions of class Elements return information about the elements described in a particular instantiation of the class.

Class Constituents is designed to provide information about the elements and species in a phase - names, index numbers (location in arrays), atomic or molecular weights, etc. No computations are performed by the methods of this class. The set of elements must include all those that compose the species, but may include additional elements.

Constituents contains a pointer to the Elements object, and it contains wrapper functions for all of the functionality of the Elements object, i.e., atomic weights, number and identity of the elements. Elements may be added to a phase by using the function Constituents::addUniqueElement(). The Elements object may be shared amongst different Phases.

Constituents also contains utilities retrieving the index of a species in the phase given its name, Constituents::speciesIndex().

Class State manages the independent variables of temperature, mass density, and species mass/mole fraction that define the thermodynamic state.

Class State stores just enough information about a multicomponent solution to specify its intensive thermodynamic state. It stores values for the temperature, mass density, and an array of species mass fractions. It also stores an array of species molecular weights, which are used to convert between mole and mass representations of the composition. These are the only properties of the species that class State knows about.

Class State is not usually used directly in application programs. Its primary use is as a base class for class Phase. Class State has no virtual methods, and none of its methods are meant to be overloaded. However, this is one exception. If the phase is incompressible, then the density must be replaced by the pressure as the independent variable. In this case, functions such as State::setMassFractions() within the class State must actually now calculate the density (at constant T and P) instead of leaving it alone as befits an independent variable. Therefore, these types of functions are virtual functions and need to be overloaded for incompressible phases. Note, for nearly incompressible phases (or phases which utilize standard states based on a T and P) this change in independent variables may be advantageous as well, and these functions in State need to overload as well so that the storred density within State doesn't become out of date.

Class Phase derives from both clases Constituents and State. In addition to the methods of those two classes, it implements methods that allow referencing a species by name. And, it contains a lot of utility functions that will set the State of the phase in its entirety, by first setting the composition, then the temperature and then the density. An example of this is the function, Phase::setState_TRY(doublereal t, doublereal dens, const doublereal* y).

Class Phase contains method for saving and restoring the full internal states of each phase. These are called Phase::saveState() and Phase::restoreState(). These functions operate on a state vector, which is in general of length (2 + nSpecies()). The first two entries of the state vector is temperature and density.

Generated by  doxygen 1.6.3