Defining Rate-Based Reactions¶
The rate_reactions Argument¶
Each GenericReactionParameterBlock has a configuration argument named rate_reactions which is used to define rate-based reactions and specify how to calculate properties associated with these. The rate_reactions configuration argument is expected to be a dict-of-dicts, where the keys are the names for the rate-based reactions, and the values are a dict of configuration arguments for that reaction. Note that reaction names must be unique across both rate-based and equilibrium reactions, as all reactions are indexed by name.
"rate_reactions": {
"reaction_1": {options},
"reaction_2": {options}}
Configuration Arguments¶
The configuration arguments for each rate-based reaction are used to define methods for calculating reaction properties and defining the parameters associated with these. A full list of the supported configuration arguments is given below:
- stoichiometry (required)
- rate_form (required)
- heat_of_reaction
- rate_constant
Stoichiometry¶
The stoichiometry configuration argument is used to define which components take part in a reaction, and is a required argument. The stoichiometry argument should be a dict where the keys are phase-component pairs and the values are the stoichiometric coefficient for that pair. Users need only provide values for those components that take part in the reaction - all undeclared phase-component pairs will be assumed to have a value of 0. An example of defining the reaction stoichiometry is given below, where in phase_1 component_1 is converted to component_2 in a 1:1 ratio:
"stoichiometry": {
("phase_1", "component_1"): -1,
("phase_1", "component_2"): 1}
Other Reaction Properties¶
The remaining configuration arguments are used to define how different properties should be calculated for each reaction. The rate_form argument is required, however all other properties need only be defined if needed for the user’s application. These arguments should be provided as either Python functions or classes;
- functions are used for self-contained correlations with hard-coded parameters,
- classes are used for more generic correlations which require associated parameters.
A list of the libraries of methods available in the IDAES Framework can be found here.