From charlesreid1

Theory of Phases

One of the most important rules about phases is the Gibbs phase rule (http://en.wikipedia.org/wiki/Phase_rule). This rule states that the number of degrees of freedom that must be specified for a gas to have a fixed thermodynamic state is given by the formula:

where:

  • F is the number of degrees of freedom,
  • C is the number of components
  • P is the number of phases

Note, however, that the Gibbs phase rule only applies to one particular gas state. If we're looking at two locations at either end of a geometry with non-uniform thermodynamic states, or if we're looking at differential volumes of gas and solid catalyst, the Gibbs phase rule only applies to each individual location separately, independently.


There is more information over at the Chemical Equilibrium page, which has some lecture notes.

Phase Specification

Each phase that is used in a problem must be specified in the input file.

Multiple types of phases have multiple types of input file entries.

Any phase must specify the following information:

  • Phase type
  • Phase name
  • Elements in phase
  • Species in phase
  • Reactions in phase
  • Kinetics model in phase
  • Transport model in phase
  • Initial state of phase
  • Phase options

Generally phases are specified according to the following schema:

phase_type(  name = [...],
             elements = [...],
             species = [...],
             reactions = [...],
             transport = [...],
             initial_state = [...],
             options = [...]
        )

Specifying Phase Properties

Phase Type

The valid phase types for a CTI file are each defined as classes in the file ctml_writer.py. Each object uses a more generic phase object as a base class. The valid phase types are:

  • ideal_gas - an ideal gas mixture
  • stoichiometric_solid - A solid compound or pure element. Stoichiometric solid phases contain exactly one species, which always has unit activity. The solid is assumed to have constant density. Therefore the rates of reactions involving these phases do not contain any concentration terms for the (one) species in the phase, since the concentration is always the same.
  • stoichiometric_liquid - An incompressible stoichiometric liquid. Currently, there is no distinction between stoichiometric liquids and solids.
  • metal - A metal.
  • semiconductor - A semiconductor.
  • incompressible_solid - An incompressible solid.
  • lattice - (no description)
  • lattice_solid - A solid crystal consisting of one or more sublattices.
  • liquid_vapor - fluid with a complete liquid/vapor equation of state. This entry type selects one of a set of predefined fluids with built-in liquid/vapor equations of state. The substance_flag parameter selects the fluid. See purefluids.py for the usage of this entry type.
  • redlich_kwong - A fluid with a complete liquid/vapor equation of state. This entry type selects one of a set of predefined fluids with built-in liquid/vapor equations of state. The substance_flag parameter selects the fluid. See purefluids.py for the usage of this entry type.
  • ideal_interface - A chemically-reacting ideal surface solution of multiple species.
  • edge - A 1D boundary between two surface phases.

Phase Name

The name of a phase


Examples

ideal_gas(name = "gas",
         elements = "O H C N Ar",
         species = """gri30: H2      H       O       O2      OH      
                             H2O     HO2     H2O2 
         C       CH      CH2     CH2(S)  CH3     CH4     CO      CO2     
         HCO     CH2O    CH2OH   CH3O    CH3OH   C2H     C2H2    C2H3    
         C2H4    C2H5    C2H6    HCCO    CH2CO   HCCOH AR N2""",
          transport = 'Mix',
          reactions = 'gri30: all',
          options = ['skip_undeclared_elements',
                     'skip_undeclared_species'],
          initial_state = state(temperature = 300.0, pressure = OneAtm,
                                mole_fractions = 'CH4:0.095, O2:0.21, AR:0.79')
          )


ideal_gas(name = "gas",
         elements = "O H C N Ar",
         species = """gri30: H2      H       O       O2      OH      
                             H2O     HO2     H2O2 
         C       CH      CH2     CH2(S)  CH3     CH4     CO      CO2     
         HCO     CH2O    CH2OH   CH3O    CH3OH   C2H     C2H2    C2H3    
         C2H4    C2H5    C2H6    HCCO    CH2CO   HCCOH AR N2""",
          transport = 'Mix',
          reactions = 'gri30: all',
          options = ['skip_undeclared_elements',
                     'skip_undeclared_species'],
          initial_state = state(temperature = 300.0, pressure = OneAtm,
                                mole_fractions = 'CH4:0.095, O2:0.21, AR:0.79')
          )
ideal_interface(name = "Pt_surf",
                elements = " Pt  H  O  C ",
                species = """ PT(S) H(S)
 H2O(S)  OH(S)  CO(S)  CO2(S)  CH3(S)
                CH2(S)s  CH(S)  C(S)  O(S) """,
                phases = "gas",
                site_density = 2.7063e-9,
                reactions = "all",
                initial_state = state(temperature = 900.0,
                                      coverages = 'O(S):0.0, PT(S):0.5, H(S):0.5')
                )


Flags