302 const std::string& ph)
const;
400 doublereal* deltaProperty);
666 bool doIrreversible =
false) {
732 shared_ptr<Reaction>
reaction(
size_t i);
734 shared_ptr<const Reaction>
reaction(
size_t i)
const;
743 bool skipUndeclaredSpecies()
const {
755 bool skipUndeclaredThirdBodies()
const {
788 virtual void invalidateCache() {};
802 virtual std::pair<size_t, size_t>
checkDuplicates(
bool throw_err=
true)
const;
815 doublereal* phase_data);
818 virtual void setRoot(std::shared_ptr<Solution> root) {
827 virtual void updateROP() {
845 std::map<int, double>& r2)
const;
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
Public interface for kinetics managers.
size_t reactionPhaseIndex() const
Phase where the reactions occur.
virtual void getEquilibriumConstants(doublereal *kc)
Return a vector of Equilibrium constants.
void checkPhaseIndex(size_t m) const
Check that the specified phase index is in range Throws an exception if m is greater than nPhases()
void checkSpeciesArraySize(size_t mm) const
Check that an array size is at least nSpecies() Throws an exception if kk is less than nSpecies().
virtual void getDeltaGibbs(doublereal *deltaG)
Return the vector of values for the reaction Gibbs free energy change.
Kinetics(const Kinetics &)=delete
Kinetics objects are not copyable or assignable.
std::vector< size_t > m_start
m_start is a vector of integers specifying the beginning position for the species vector for the n'th...
void checkSpeciesIndex(size_t k) const
Check that the specified species index is in range Throws an exception if k is greater than nSpecies(...
virtual doublereal reactantOrder(size_t k, size_t i) const
Reactant order of species k in reaction i.
ValueCache m_cache
Cache for saved calculations within each Kinetics object.
virtual bool isReversible(size_t i)
True if reaction i has been declared to be reversible.
virtual void getDeltaEntropy(doublereal *deltaS)
Return the vector of values for the reactions change in entropy.
virtual void getActivityConcentrations(doublereal *const conc)
Get the vector of activity concentrations used in the kinetics object.
shared_ptr< Reaction > reaction(size_t i)
Return the Reaction object for reaction i.
virtual void getDeltaSSEntropy(doublereal *deltaS)
Return the vector of values for the change in the standard state entropies for each reaction.
virtual void getDeltaElectrochemPotentials(doublereal *deltaM)
Return the vector of values for the reaction electrochemical free energy change.
thermo_t & speciesPhase(size_t k)
This function takes as an argument the kineticsSpecies index (i.e., the list index in the list of spe...
virtual void getRevRateConstants(doublereal *krev, bool doIrreversible=false)
Return the reverse rate constants.
vector_fp m_ropnet
Net rate-of-progress for each reaction.
virtual void getDeltaEnthalpy(doublereal *deltaH)
Return the vector of values for the reactions change in enthalpy.
thermo_t & thermo(size_t n=0)
This method returns a reference to the nth ThermoPhase object defined in this kinetics mechanism.
size_t m_kk
The number of species in all of the phases that participate in this kinetics mechanism.
virtual void getFwdRateConstants(doublereal *kfwd)
Return the forward rate constants.
size_t m_rxnphase
Phase Index where reactions are assumed to be taking place.
size_t phaseIndex(const std::string &ph) const
Return the phase index of a phase in the list of phases defined within the object.
StoichManagerN m_irrevProductStoich
Stoichiometry manager for the products of irreversible reactions.
doublereal multiplier(size_t i) const
The current value of the multiplier for reaction i.
virtual int reactionType(size_t i) const
Flag specifying the type of reaction.
void checkPhaseArraySize(size_t mm) const
Check that an array size is at least nPhases() Throws an exception if mm is less than nPhases().
vector_fp m_perturb
Vector of perturbation factors for each reaction's rate of progress vector.
virtual void getReactionDelta(const doublereal *property, doublereal *deltaProperty)
Change in species properties.
size_t nPhases() const
The number of phases participating in the reaction mechanism.
std::string productString(size_t i) const
Returns a string containing the products side of the reaction equation.
vector_fp m_rkcn
Reciprocal of the equilibrium constant in concentration units.
vector_fp m_ropf
Forward rate-of-progress for each reaction.
virtual void getRevReactionDelta(const doublereal *g, doublereal *dg)
Given an array of species properties 'g', return in array 'dg' the change in this quantity in the rev...
vector_fp m_ropr
Reverse rate-of-progress for each reaction.
virtual void setMultiplier(size_t i, doublereal f)
Set the multiplier for reaction i to f.
virtual bool addReaction(shared_ptr< Reaction > r)
Add a single reaction to the mechanism.
void skipUndeclaredSpecies(bool skip)
Determine behavior when adding a new reaction that contains species not defined in any of the phases ...
std::string kineticsSpeciesName(size_t k) const
Return the name of the kth species in the kinetics manager.
virtual void setRoot(std::shared_ptr< Solution > root)
Set root Solution holding all phase information.
virtual void getNetProductionRates(doublereal *wdot)
Species net production rates [kmol/m^3/s or kmol/m^2/s].
virtual void init()
Prepare the class for the addition of reactions, after all phases have been added.
std::vector< thermo_t * > m_thermo
m_thermo is a vector of pointers to ThermoPhase objects that are involved with this kinetics operator
bool m_skipUndeclaredThirdBodies
virtual void modifyReaction(size_t i, shared_ptr< Reaction > rNew)
Modify the rate expression associated with a reaction.
void skipUndeclaredThirdBodies(bool skip)
Determine behavior when adding a new reaction that contains third-body efficiencies for species not d...
virtual double productStoichCoeff(size_t k, size_t i) const
Stoichiometric coefficient of species k as a product in reaction i.
std::map< std::string, size_t > m_phaseindex
Mapping of the phase name to the position of the phase within the kinetics object.
bool m_skipUndeclaredSpecies
thermo_t & speciesPhase(const std::string &nm)
This function looks up the name of a species and returns a reference to the ThermoPhase object of the...
void selectPhase(const doublereal *data, const thermo_t *phase, doublereal *phase_data)
size_t m_mindim
number of spatial dimensions of lowest-dimensional phase.
std::weak_ptr< Solution > m_root
reference to Solution
StoichManagerN m_revProductStoich
Stoichiometry manager for the products of reversible reactions.
size_t nReactions() const
Number of reactions in the reaction mechanism.
virtual void getDestructionRates(doublereal *ddot)
Species destruction rates [kmol/m^3/s or kmol/m^2/s].
size_t kineticsSpeciesIndex(size_t k, size_t n) const
The location of species k of phase n in species arrays.
size_t m_surfphase
Index in the list of phases of the one surface phase.
virtual void getFwdRatesOfProgress(doublereal *fwdROP)
Return the forward rates of progress of the reactions.
vector_fp m_rfn
Forward rate constant for each reaction.
virtual std::string kineticsType() const
Identifies the Kinetics manager type.
virtual doublereal productOrder(int k, int i) const
product Order of species k in reaction i.
virtual void getDeltaSSGibbs(doublereal *deltaG)
Return the vector of values for the reaction standard state Gibbs free energy change.
virtual std::pair< size_t, size_t > checkDuplicates(bool throw_err=true) const
Check for unmarked duplicate reactions and unmatched marked duplicates.
void checkReactionBalance(const Reaction &R)
Check that the specified reaction is balanced (same number of atoms for each element in the reactants...
std::string reactantString(size_t i) const
Returns a string containing the reactants side of the reaction equation.
StoichManagerN m_reactantStoich
Stoichiometry manager for the reactants for each reaction.
virtual void getNetRatesOfProgress(doublereal *netROP)
Net rates of progress.
std::string reactionString(size_t i) const
Return a string representing the reaction.
Kinetics()
Default constructor.
virtual void getCreationRates(doublereal *cdot)
Species creation rates [kmol/m^3/s or kmol/m^2/s].
size_t surfacePhaseIndex() const
This returns the integer index of the phase which has ThermoPhase type cSurf.
virtual void resizeSpecies()
Resize arrays with sizes that depend on the total number of species.
std::vector< shared_ptr< Reaction > > m_reactions
Vector of Reaction objects represented by this Kinetics manager.
void checkReactionArraySize(size_t ii) const
Check that an array size is at least nReactions() Throws an exception if ii is less than nReactions()...
size_t nTotalSpecies() const
The total number of species in all phases participating in the kinetics mechanism.
virtual double reactantStoichCoeff(size_t k, size_t i) const
Stoichiometric coefficient of species k as a reactant in reaction i.
void checkReactionIndex(size_t m) const
Check that the specified reaction index is in range Throws an exception if i is greater than nReactio...
virtual void addPhase(thermo_t &thermo)
Add a phase to the kinetics manager object.
virtual void getDeltaSSEnthalpy(doublereal *deltaH)
Return the vector of values for the change in the standard state enthalpies of reaction.
virtual void getRevRatesOfProgress(doublereal *revROP)
Return the Reverse rates of progress of the reactions.
size_t speciesPhaseIndex(size_t k) const
This function takes as an argument the kineticsSpecies index (i.e., the list index in the list of spe...
An error indicating that an unimplemented function has been called.
Intermediate class which stores data about a reaction and its rate parameterization so that it can be...
Base class for a phase with thermodynamic properties.
This file contains definitions for utility functions and text for modules, inputfiles,...
double checkDuplicateStoich(std::map< int, double > &r1, std::map< int, double > &r2) const
Check whether r1 and r2 represent duplicate stoichiometries This function returns a ratio if two reac...
const size_t npos
index returned by functions to indicate "no position"
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Namespace for the Cantera kernel.
ThermoPhase thermo_t
typedef for the ThermoPhase class