Cantera  3.2.0a2
Loading...
Searching...
No Matches
MultiRateBase Class Referenceabstract

An abstract base class for evaluating all reactions of a particular type. More...

#include <MultiRateBase.h>

Inheritance diagram for MultiRateBase:
[legend]

Detailed Description

An abstract base class for evaluating all reactions of a particular type.

Because this class has no template parameters, the Kinetics object can store all of these rate coefficient evaluators as a vector<shared_ptr<MultiRateBase>>. All of the actual implementation for this capability is done in the MultiRate class.

Definition at line 27 of file MultiRateBase.h.

Public Member Functions

virtual string type ()=0
 Identifier of reaction rate type.
 
virtual void add (size_t rxn_index, ReactionRate &rate)=0
 Add reaction rate object to the evaluator.
 
virtual bool replace (size_t rxn_index, ReactionRate &rate)=0
 Replace reaction rate object handled by the evaluator.
 
virtual void resize (size_t nSpecies, size_t nReactions, size_t nPhases)=0
 Update number of species and reactions.
 
virtual void getRateConstants (double *kf)=0
 Evaluate all rate constants handled by the evaluator.
 
virtual void modifyRateConstants (double *kf, double *kr)=0
 For certain reaction types that do not follow mass action kinetics (for example, Butler-Volmer), calculate modifications to the forward and reverse rate constants.
 
virtual void processRateConstants_ddT (double *rop, const double *kf, double deltaT)=0
 Evaluate all rate constant temperature derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.
 
virtual void processRateConstants_ddP (double *rop, const double *kf, double deltaP)=0
 Evaluate all rate constant pressure derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.
 
virtual void processRateConstants_ddM (double *rop, const double *kf, double deltaM, bool overwrite=true)=0
 Evaluate all rate constant third-body derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.
 
virtual void update (double T)=0
 Update common reaction rate data based on temperature.
 
virtual void update (double T, double extra)=0
 Update common reaction rate data based on temperature and extra parameter.
 
virtual void update (double T, const vector< double > &extra)=0
 Update common reaction rate data based on temperature and extra parameter.
 
virtual bool update (const ThermoPhase &phase, const Kinetics &kin)=0
 Update data common to reaction rates of a specific type.
 
virtual double evalSingle (ReactionRate &rate)=0
 Get the rate for a single reaction.
 

Constructor & Destructor Documentation

◆ ~MultiRateBase()

virtual ~MultiRateBase ( )
inlinevirtual

Definition at line 30 of file MultiRateBase.h.

Member Function Documentation

◆ type()

virtual string type ( )
pure virtual

Identifier of reaction rate type.

Implemented in MultiRate< RateType, DataType >.

◆ add()

virtual void add ( size_t  rxn_index,
ReactionRate rate 
)
pure virtual

Add reaction rate object to the evaluator.

Parameters
rxn_indexindex of reaction
ratereaction rate object

Implemented in MultiRate< RateType, DataType >.

◆ replace()

virtual bool replace ( size_t  rxn_index,
ReactionRate rate 
)
pure virtual

Replace reaction rate object handled by the evaluator.

Parameters
rxn_indexindex of reaction
ratereaction rate object

Implemented in MultiRate< RateType, DataType >.

◆ resize()

virtual void resize ( size_t  nSpecies,
size_t  nReactions,
size_t  nPhases 
)
pure virtual

Update number of species and reactions.

Parameters
nSpeciesnumber of species
nReactionsnumber of reactions
nPhasesnumber of phases

Implemented in MultiRate< RateType, DataType >.

◆ getRateConstants()

virtual void getRateConstants ( double *  kf)
pure virtual

Evaluate all rate constants handled by the evaluator.

Parameters
kfarray of rate constants

Implemented in MultiRate< RateType, DataType >.

◆ modifyRateConstants()

virtual void modifyRateConstants ( double *  kf,
double *  kr 
)
pure virtual

For certain reaction types that do not follow mass action kinetics (for example, Butler-Volmer), calculate modifications to the forward and reverse rate constants.

Parameters
[in,out]kfOn input, contains the rate constants as computed by getRateConstants(). The output value is updated by the reactant StoichManagerN to determine the forward rates of progress.
[in,out]krOn input, contains the reverse rate constants computed from the forward rate constants and the equilibrium constants. The output value is updated by the product StoichManagerN to determine the reverse rates of progress.
Since
New in Cantera 3.2

Implemented in MultiRate< RateType, DataType >.

◆ processRateConstants_ddT()

virtual void processRateConstants_ddT ( double *  rop,
const double *  kf,
double  deltaT 
)
pure virtual

Evaluate all rate constant temperature derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.

Depending on the implementation of a rate object, either an exact derivative or a numerical approximation may be used.

Parameters
[in,out]roparray of rop, which is modified by the method; contains rop on input, and d(rop)/dT on output
kfarray of forward rate constants (numerical derivative only)
deltaTrelative temperature perturbation (numerical derivative only)

Implemented in MultiRate< RateType, DataType >.

◆ processRateConstants_ddP()

virtual void processRateConstants_ddP ( double *  rop,
const double *  kf,
double  deltaP 
)
pure virtual

Evaluate all rate constant pressure derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.

Parameters
[in,out]roparray of rop, which is modified by the method; contains rop on input, and d(rop)/dP on output
kfarray of forward rate constants
deltaPrelative pressure perturbation

Implemented in MultiRate< RateType, DataType >.

◆ processRateConstants_ddM()

virtual void processRateConstants_ddM ( double *  rop,
const double *  kf,
double  deltaM,
bool  overwrite = true 
)
pure virtual

Evaluate all rate constant third-body derivatives handled by the evaluator; which are multiplied with the array of rate-of-progress variables.

Parameters
[in,out]roparray of rop, which is modified by the method; contains rop on input, and d(rop)/dM on output
kfarray of forward rate constants
deltaMrelative perturbation of third-body concentrations
overwriteif true, rop entries not affected by M are set to zero

Implemented in MultiRate< RateType, DataType >.

◆ update() [1/4]

virtual void update ( double  T)
pure virtual

Update common reaction rate data based on temperature.

Only used in conjunction with evalSingle and ReactionRate::eval

Parameters
Ttemperature [K]

Implemented in MultiRate< RateType, DataType >.

◆ update() [2/4]

virtual void update ( double  T,
double  extra 
)
pure virtual

Update common reaction rate data based on temperature and extra parameter.

Only used in conjunction with evalSingle and ReactionRate::eval

Parameters
Ttemperature [K]
extraextra parameter (depends on parameterization)

Implemented in MultiRate< RateType, DataType >.

◆ update() [3/4]

virtual void update ( double  T,
const vector< double > &  extra 
)
pure virtual

Update common reaction rate data based on temperature and extra parameter.

Only used in conjunction with evalSingle and ReactionRate::eval

Parameters
Ttemperature [K]
extraextra vector parameter (depends on parameterization)
Warning
This method is an experimental part of the Cantera API and may be changed or removed without notice.

Implemented in MultiRate< RateType, DataType >.

◆ update() [4/4]

virtual bool update ( const ThermoPhase phase,
const Kinetics kin 
)
pure virtual

Update data common to reaction rates of a specific type.

This update mechanism is used by Kinetics reaction rate evaluators.

Parameters
phaseobject representing reacting phase
kinobject representing kinetics
Returns
flag indicating whether reaction rates need to be re-evaluated

Implemented in MultiRate< RateType, DataType >.

◆ evalSingle()

virtual double evalSingle ( ReactionRate rate)
pure virtual

Get the rate for a single reaction.

Used to implement ReactionRate::eval, which allows for the evaluation of a reaction rate expression outside of Kinetics reaction rate evaluators. Mainly used for testing purposes.

Implemented in MultiRate< RateType, DataType >.


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