Cantera for Catalysis
How Cantera Treats Catalysis
Cantera's Catalysis Concepts
Cantera has a couple of conceptual pieces that compose its treatment of catalysis.
First of all, Cantera treats surface reactions as occurring at the surface ONLY. This means that there are no volumetric reaction rates for heterogeneous reactions, only surface-specific reaction rates.
The number of reaction sites per unit surface area is specified in the surface reaction XML file. This quantity is denoted the site density.
The surface reaction sites can be characterized as surface "species." For example, a catalyst may have a mechanism that involves abstraction of oxygen or hydroxyl species onto the surface, resulting in three surface species:
These surface species then participate in surface reactions, just as gas species participate in gas reactions. Therefore, just as ordinary differential equations for gas species must be integrated in time, so too must ODEs for surface species be integrated in time.
To characterize the amounts of surface species, Cantera uses a quantity called a coverage. Using the example species given above (M, MO, MOH), the coverage of species M represents the fraction of all surface sites that are M surface sites (as opposed to MO or MOH surface sites).
Like the site density, the initial surface species coverages are specified in the surface reaction XML file.
In order to track surface species, differential equations describing the surface species coverages are integrated in time. These coverages can then be multiplied by the site density to yield a site density for each surface species (which is basically like "moles" of surface species).
The number of "moles" of solid species A is the product of the surface coverage (i.e., the "mole fraction") and the site density (i.e., the "total moles"):
where is the total "moles" of solid species A, is the coverage of species A, and is the site density of the solid.
More details, as well as information about particular classes or blocks of code where surface coverage is dealt with in Cantera, are given at the Cantera/Surface Coverage page.
Catalysis in the Cantera Source Code
In the Cantera source code, surface phases are carefully managed in a way that separates the reactors, which use the reacting surfaces to compute heterogeneous reaction source terms, from the surface phase itself. This is mainly to ensure memory is handled properly.
The SurfPhase class stores information about a given surface; the Kinetics class stores information about the kinetics and reaction network associated with a given surface.
The Wall class wraps the SurfPhase class and the Kinetics class, keeping track of which side of the wall is associated with which kinetic mechanism or surface phase.
The Reactor class is then able to interface with the Wall class, avoiding issues with trying to manage the memory of the SurfPhase or Kinetics classes itself. The Wall class, in turn, provides extra functionality for interfacing with reactors (such as storing information about which side of a wall is associated with which kinetic mechanism).
See the Cantera/Surface Coverage page for more info/details.
Canteraall pages on the wiki related to the Cantera combustion microkinetics and thermodynamics (a.k.a. "thermochemistry") software.
Understanding Cantera's Structure: Cantera Structure
Cantera from Matlab: Using_Cantera#Matlab
Cantera from Python: Using_Cantera#Python
Cantera from C++: Using_Cantera#C++
Cantera + Fipy (PDE Solver): Fipy and Cantera/Diffusion 1D
Cantera Gas Objects: Cantera/Gases
Cantera Gas Mixing: Cantera_Gas_Mixing
Topics in Combustion:
Sensitivity Analysis: Cantera/Sensitivity Analysis
Analysis of the Jacobian Matrix in Cantera: Jacobian_in_Cantera
Chemical Equilibrium: Chemical_Equilibrium
Kinetic Mechanisms: Cantera/Kinetic_Mechanisms
Reactor Equations: Cantera/Reactor_Equations
Differential vs. Integral Reactors: Cantera/Integral_and_Differential_Reactors
Effect of Dilution on Adiabatic Flame Temperature: Cantera/Adiabatic_Flame_Temperature_Dilution
Topics in Catalysis:
Cantera for Catalysis: Cantera_for_Catalysis
Steps for Modeling 0D Multiphase Reactor: Cantera_Multiphase_Zero-D
Reaction Rate Source Terms: Cantera/Reaction_Rate_Source_Terms
Surface coverage: Cantera/Surface_Coverage
Surface reactions: Cantera/Surface_Reactions
Cantera Input Files:
Chemkin file format: Chemkin
Pantera (monkey patches and convenience functions for Cantera): Pantera
Extending Cantera's C API: Cantera/Extending_C_API
Extending Cantera with Python Classes: Cantera/Adding Python Class
Debugging Cantera: Cantera/Debugging_Cantera
Debugging Cantera from Python: Cantera/Debugging_Cantera_from_Python
Gas Mixing Functions: Cantera_Gas_Mixing
Residence Time Reactor (new Cantera class): Cantera/ResidenceTimeReactor
Cantera Resources: Cantera Resources
Cantera Lecture Notes: Cantera_Lecture
Flags · Template:CanteraFlag · e
Installing Canteranotes on the wiki related to installing the Cantera thermochemistry software library.
Mac OS X 10.5 (Leopard): Installing_Cantera#Leopard
Mac OS X 10.7 (Lion): Installing_Cantera#Lion
Mac OS X 10.8 (Mountain Lion): Installing_Cantera#Mountain_Lion
Ubuntu 12.04 (Precise Pangolin): Installing_Cantera#Ubuntu
Windows XP: Installing_Cantera#Windows_XP
Windows 7: Installing_Cantera#Windows_7
In old versions of Cantera, a preconfig file was used to specify library locations and options.
Mac OS X 10.5 (Leopard) preconfig: Cantera_Preconfig/Leopard_Preconfig
Mac OS X 10.6 (Snow Leopard) preconfig: Cantera_Preconfig/Snow_Leopard_Preconfig
Mac OS X 10.8 (Mountain Lion) preconfig: Cantera_Config/MountainLion_SconsConfig
Ubuntu 12.04 (Precise Pangolin) preconfig: Cantera_Config/Ubuntu1204_SconsConfigFlags · Template:InstallingCanteraFlag · e