Chemical Reactions
Enabling the Chemical Reactions solver and specifying model options.
Description |
Type |
Default |
|
---|---|---|---|
chemistry.solve |
Specified name(s) of the chemical reactions types or None to disable the reactions solver. |
String |
None |
The following inputs are defined using the chemistry
prefix.
Description |
Type |
Default |
|
---|---|---|---|
[reaction0].reaction |
Chemical formula for the given reaction. The string given as input must not contain white spaces and the reaction direction has to be specified as ‘–>’ or ‘<–’. Chemical species phases must be defined as ‘(g)’ for the fluid phase or ‘(s)’ for the solid phase. |
String |
None |
mass_balance_tolerance |
Tolerance used to test chemical formula conserves mass.
|
Real |
1e-12 |
Choosing the integrator type for the chemistry ODE integration operation that is
performed to determine the fluid and solids phases transfer quantities due to
chemical reactions. The StiffSolver
class of integrators is inspired to the
class of integrators in AMReX-Astro/Microphysics
(https://github.com/AMReX-Astro/Microphysics)
Description |
Type |
Default |
|
---|---|---|---|
chemistry.integrator |
Specified name of the chemistry ODE integrator type. Available types are (case insensitive):
|
String |
ForwardEuler |
One can define the environment variable VODE_JACOBIAN_CACHING
at compile
time to enable caching of the numerical approximation of the Jacobian matrix
(the derivative of the ODE right-hand side), applicable when the VODE integrator
is selected. The following inputs can be specified using the
chemistry.integrator
prefix:
Description |
Type |
Default |
|
---|---|---|---|
burner_verbose |
Enables the printing on screen of some integration statistics |
int |
0 |
ode_max_steps |
The maximum number of substeps for the ODE integration |
int |
150000 |
jacobian_type |
Select how to compute the jacobian for the ODE iterative solver. Available choices are:
|
int |
0 |
atol |
Absolute tolerance for the ODE integration error test between the solution and the fine-step solution |
Real |
1.e-6 |
rtol |
Relative tolerance for the ODE integration error test between the solution and the fine-step solution |
Real |
1.e-6 |
retry_atol |
Overwrites the absolute tolerance value atol in case the ODE integration fails |
Real |
-1 |
retry_rtol |
Overwrites the relative tolerance value rtol in case the ODE integration fails |
Real |
-1 |
retry_swap_jacobian |
Swaps the type of jacobian (from 1 to 0 or vice versa) in case the ODE integration fails |
int |
1 |
ode_max_dt |
Maximum timestep size for the ODE integration substeps |
Real |
1.e30 |
maximum_timestep_change_factor |
Only for StiffSolver::ForwardEuler, sets a maximum factor for the change of the timestep for the internal substeps |
Real |
1.001 |
max_iter |
Maximum number of iterations for the internal Newton solver |
int |
100 |
linalg_do_pivoting |
Only for StiffSolver::BackwardEuler and StiffSolver::VODE, switches on/off the pivoting when solving the linear algebra problem associated to the internal Newton solver |
int |
1 |
rp_rtol |
Relative tolerance for the convergence test of the internal Newton solver. Valid only for StiffSolver::BackwardEuler |
Real |
1.e-6 |
use_jacobian_caching |
Only for StiffSolver::VODE, enables caching the numerical jacobian |
int |
1 |
X_reject_buffer |
Only for StiffSolver::VODE, constrain species abundances such that they don’t change by more than a certain factor in a given step |
Real |
1.0 |
Below is an example for specifying chemical reactions for MFIX-Exa.
chemistry.solve = my_reaction0 my_reaction1
chemistry.my_reaction0.reaction = Fe2O3(s)+CO(g)-->2.FeO(s)+CO2(g)
chemistry.my_reaction1.reaction = FeO(s)+0.25O2(g)-->0.5Fe2O3(s)
chemistry.mass_balance_tolerance = 1.e-5
chemistry.integrator = StiffSolver::BackwardEuler
chemistry.integrator.atol = 1.e-8
chemistry.integrator.rtol = 1.e-9