Cantera/Surface Reactions
From charlesreid1
More information on how Cantera deals with surface coverage computation here: Cantera/Surface Coverage
This page is more about the computation of the reaction rate source terms for surface reactions.
Contents
Gas vs Surface Source Terms
In a gas-surface model, you use an ordinary differential equation to describe the evolution of the gas phase composition and the surface coverages.
When you are accounting for surface phase reactions, the surface reaction source terms end up on the RHS of ODEs dictating gas and surface composition.
Gas Source Terms from Surface Reactions
A surface reaction can either be a consumption reaction (adsorption of a gas species) or a generation reaction (desorption of a gas species). Summing over all generation and consumption of a gas species for all surface reactions yields the net production rate for that species.
The gas phase source terms are computed according to the formula:
Gas Source Terms Code
The gas phase source terms resulting from surface reactions are computed in Reactor::evalEqs()
Computation of surface production rates
Loop over each gas species to compute final source term
Surface Source Terms from Surface Reactions
A surface reaction can either consume or generate surface species. Summing over all generation and consumption of a particular surface species yields the net production rate for surface species.
The surface phase source terms are computed according to the formula:
Surface Phase Source Terms Code
The surface phase source terms resulting from surface reactions are computed in Reactor::evalEqs()
.
This calls InterfaceKinetics::getNetProductionRate()
This calls InterfaceKinetics::updateROP()
and then calls ReactionStoichMgr::getNetProductionRates
Computation of surface production rates
Loop over each surface species to compute final source term
Source Terms Code
Surface phase is connected to gas phase:
g = importPhase('Example.cti', 'gas') s = importInterface('Example.cti', 'surf', [g])
Production rates are for both gas and surface species:
shape( s.getNetProductionRates() ) == g.nSpecies() + s.nSpecies()