Cantera  2.1.2
ReactionStoichMgr Class Reference

Reaction mechanism stoichiometry manager. More...

#include <ReactionStoichMgr.h>

## Public Member Functions

ReactionStoichMgr ()
Constructor. More...

virtual ~ReactionStoichMgr ()
Destructor. More...

ReactionStoichMgr (const ReactionStoichMgr &right)

ReactionStoichMgroperator= (const ReactionStoichMgr &right)

virtual void add (size_t rxn, const std::vector< size_t > &reactants, const std::vector< size_t > &products, bool reversible)
Add a reaction with mass-action kinetics. More...

virtual void add (size_t rxn, const ReactionData &r)
Add a reaction with specified, possibly non-integral, reaction orders. More...

virtual void getCreationRates (size_t nSpecies, const doublereal *fwdRatesOfProgress, const doublereal *revRatesOfProgress, doublereal *creationRates)
Species creation rates. More...

virtual void getDestructionRates (size_t nSpecies, const doublereal *fwdRatesOfProgress, const doublereal *revRatesOfProgress, doublereal *destructionRates)
Species destruction rates. More...

virtual void getNetProductionRates (size_t nsp, const doublereal *ropnet, doublereal *w)
Species net production rates. More...

virtual void getReactionDelta (size_t nReactions, const doublereal *g, doublereal *dg)
Calculates the change of a molar species property in a reaction. More...

virtual void getRevReactionDelta (size_t nr, const doublereal *g, doublereal *dg)
Given an array of species properties 'g', return in array 'dg' the change in this quantity in the reversible reactions. More...

virtual void multiplyReactants (const doublereal *C, doublereal *R)
Given an array of concentrations C, multiply the entries in array R by the concentration products for the reactants. More...

virtual void multiplyRevProducts (const doublereal *c, doublereal *r)
Given an array of concentrations C, multiply the entries in array R by the concentration products for the products. More...

virtual void write (const std::string &filename)

## Protected Member Functions

void writeCreationRates (std::ostream &f)

void writeDestructionRates (std::ostream &f)

void writeNetProductionRates (std::ostream &f)

void writeMultiplyReactants (std::ostream &f)

void writeMultiplyRevProducts (std::ostream &f)

## Protected Attributes

StoichManagerN m_reactants

StoichManagerN m_revproducts

StoichManagerN m_irrevproducts

vector_fp m_dummy

## Detailed Description

Reaction mechanism stoichiometry manager.

This is an internal class used by kinetics manager classes, and is not meant for direct use in user programs.

Class ReactionStoichMgr handles the calculation of quantities involving the stoichiometry of a set of reactions. The reactions may have integer or non-integer stoichiometric coefficients. Specifically, its methods compute

• species creation rates
• species destruction rates
• species net production rates
• the change in molar species properties in the reactions
• concentration products

To use this class, method add() is first used to add each reaction. Once all reactions have been added, the methods that compute various quantities may be called.

The nomenclature used below to document the methods is as follows.

• $$N_r$$ Integer reactant stoichiometric coefficient matrix. The (k,i) element of this matrix is the stoichiometric coefficient of species k as a reactant in reaction i.
• $$N_p$$ Integer product stoichiometric coefficient matrix. The (k,i) element of this matrix is the stoichiometric coefficient of species k as a product in reaction i.
• $$Q_{\rm fwd}$$ Vector of length I of forward rates of progress.
• $$Q_{\rm rev}$$ Vector of length I of reverse rates of progress.
• $$C$$ Vector of K species creation rates.
• $$D$$ Vector of K species destruction rates.
• $$W = C - D$$ Vector of K species net production rates.

Definition at line 56 of file ReactionStoichMgr.h.

## Constructor & Destructor Documentation

 ReactionStoichMgr ( )

Constructor.

Definition at line 20 of file ReactionStoichMgr.cpp.

 ~ReactionStoichMgr ( )
virtual

Destructor.

Definition at line 25 of file ReactionStoichMgr.cpp.

## Member Function Documentation

 void add ( size_t rxn, const std::vector< size_t > & reactants, const std::vector< size_t > & products, bool reversible )
virtual

Add a reaction with mass-action kinetics.

Vectors 'reactants' and 'products' contain the integer species indices of the reactants and products, respectively. Note that if more than one molecule of a given species is involved in the reaction, then its index is repeated.

For example, suppose a reaction mechanism involves the species N2, O2, O, N, NO. N2 is assigned index number 0, O2 number 1, and so on through NO with number 4. Then the representation of the following reactions is as shown here.

• N + O = NO
• reactants: (3, 2)
• products: (4)
• O + O = O2
• reactants: (2, 2) [ note repeated index ]
• products: (1)
Parameters
 rxn Reaction number. This number will be used as the index into the rate of progress vector in the methods below. reactants vector of integer reactant indices products vector of integer product indices reversible true if the reaction is reversible, false otherwise

Definition at line 50 of file ReactionStoichMgr.cpp.

 void add ( size_t rxn, const ReactionData & r )
virtual

Add a reaction with specified, possibly non-integral, reaction orders.

Parameters
 rxn Reaction number r Data structure containing reactant and product vectors, etc.

Definition at line 65 of file ReactionStoichMgr.cpp.

 void getCreationRates ( size_t nSpecies, const doublereal * fwdRatesOfProgress, const doublereal * revRatesOfProgress, doublereal * creationRates )
virtual

Species creation rates.

Given the arrays of the forward and reverse rates of progress for all reactions, compute the species creation rates, given by

$C = N_p Q_f + N_r Q_r.$

Definition at line 122 of file ReactionStoichMgr.cpp.

 void getDestructionRates ( size_t nSpecies, const doublereal * fwdRatesOfProgress, const doublereal * revRatesOfProgress, doublereal * destructionRates )
virtual

Species destruction rates.

Given the arrays of the forward and reverse rates of progress for all reactions, compute the species destruction rates, given by

$D = N_r Q_f + N_p Q_r,$

Note that the stoichiometric coefficient matrices are very sparse, integer matrices.

Definition at line 137 of file ReactionStoichMgr.cpp.

 void getNetProductionRates ( size_t nsp, const doublereal * ropnet, doublereal * w )
virtual

Species net production rates.

Given the array of the net rates of progress for all reactions, compute the species net production rates, given by

$W = (N_r - N_p) Q_{\rm net},$

Definition at line 148 of file ReactionStoichMgr.cpp.

 void getReactionDelta ( size_t nReactions, const doublereal * g, doublereal * dg )
virtual

Calculates the change of a molar species property in a reaction.

Given an array of species properties 'g', return in array 'dg' the change in this quantity in the reactions. Array 'g' must have a length at least as great as the number of species, and array 'dg' must have a length as great as the total number of reactions.

$\delta g_i = \sum_k{\nu_{i,k} g_k }$

Parameters
 nReactions Number of reactions g Molar property of the species. An example would be the partial molar enthalpy Length is equal to number of kinetic species dg Calculated property change of the reaction. An example would be the delta change in enthalpy, i.e., the enthalpy of reaction.

Definition at line 159 of file ReactionStoichMgr.cpp.

 void getRevReactionDelta ( size_t nr, const doublereal * g, doublereal * dg )
virtual

Given an array of species properties 'g', return in array 'dg' the change in this quantity in the reversible reactions.

Array 'g' must have a length at least as great as the number of species, and array 'dg' must have a length as great as the total number of reactions. This method only computes 'dg' for the reversible reactions, and the entries of 'dg' for the irreversible reactions are unaltered. This is primarily designed for use in calculating reverse rate coefficients from thermochemistry for reversible reactions.

Definition at line 170 of file ReactionStoichMgr.cpp.

Referenced by GasKinetics::updateKc(), AqueousKinetics::updateKc(), and InterfaceKinetics::updateKc().

 void multiplyReactants ( const doublereal * C, doublereal * R )
virtual

Given an array of concentrations C, multiply the entries in array R by the concentration products for the reactants.

$R_i = R_i * \prod_k C_k^{o_{k,i}}$

Here $$o_{k,i}$$ is the reaction order of species k in reaction i.

Definition at line 178 of file ReactionStoichMgr.cpp.

Referenced by InterfaceKinetics::updateROP().

 void multiplyRevProducts ( const doublereal * c, doublereal * r )
virtual

Given an array of concentrations C, multiply the entries in array R by the concentration products for the products.

$R_i = R_i * \prod_k C_k^{\nu^{(p)}_{k,i}}$

Here $$\nu^{(p)}_{k,i}$$ is the product stoichiometric coefficient of species k in reaction i.

Definition at line 184 of file ReactionStoichMgr.cpp.

Referenced by InterfaceKinetics::updateROP().

The documentation for this class was generated from the following files: