Last active
February 23, 2021 16:34
-
-
Save jiweiqi/21b8d149bd95b97d9ae948ab92e446df to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Package Dependence\n", | |
"\n", | |
"+ DifferentialEquations / DiffEqSensitivity for ODE solver\n", | |
"+ ForwardDiff for auto-differentiation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"using Arrhenius\n", | |
"using LinearAlgebra\n", | |
"using DifferentialEquations\n", | |
"using ForwardDiff\n", | |
"using DiffEqSensitivity\n", | |
"using Plots\n", | |
"using DelimitedFiles\n", | |
"using Profile" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Create a struct of solution\n", | |
"\n", | |
"Similar to Cantera, we create a struct of solution to store all of the kinetic and thermodynamic data.\n", | |
"\n", | |
"Those infomation are stored in the .yaml file. In addition, to preclude the need of re-invent wheels for interpreting .yaml files, we also rely on the package of ReacTorch to interpret the mechanism and save them into a .npy file.\n", | |
"\n", | |
"Here is a complete list of keys of the solution [source code](https://github.com/DENG-MIT/Arrhenius.jl/blob/a6e77fa501f8e1bfb0b4bd244b507f0bc10f1f8c/src/DataStructure.jl#L29)\n", | |
"\n", | |
"```Julia\n", | |
"struct Reaction\n", | |
" product_stoich_coeffs::Array{Float64, 2}\n", | |
" reactant_stoich_coeffs::Array{Float64, 2}\n", | |
" reactant_orders::Array{Float64, 2}\n", | |
" is_reversible::Array{Bool, 1}\n", | |
" Arrhenius_coeffs::Array{Float64, 2}\n", | |
" Arrhenius_A0::Array{Float64, 1}\n", | |
" Arrhenius_b0::Array{Float64, 1}\n", | |
" Arrhenius_Ea0::Array{Float64, 1}\n", | |
" Troe_A::Array{Float64, 1}\n", | |
" Troe_T1::Array{Float64, 1}\n", | |
" Troe_T2::Array{Float64, 1}\n", | |
" Troe_T3::Array{Float64, 1}\n", | |
" index_three_body::Array{Int64, 1}\n", | |
" index_falloff::Array{Int64, 1}\n", | |
" efficiencies_coeffs::Array{Float64, 2}\n", | |
" i_reactant::Array{Array{Int64, 1},1}\n", | |
" i_product::Array{Array{Int64, 1},1}\n", | |
" n_reactions::Int64\n", | |
" vk::Array{Float64, 2}\n", | |
" vk_sum::Array{Float64, 1}\n", | |
"end\n", | |
"\n", | |
"struct Thermo\n", | |
" nasa_low::Array{Float64, 2}\n", | |
" nasa_high::Array{Float64, 2}\n", | |
"end\n", | |
"\n", | |
"struct Solution\n", | |
" n_species::Int64\n", | |
" n_reactions::Int64\n", | |
" MW::Vector{Float64}\n", | |
" species_names::Vector{String}\n", | |
" thermo::Thermo\n", | |
" reaction::Reaction\n", | |
"end\n", | |
"```" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Arrhenius.Solution(9, 24, [2.016, 31.998, 28.014, 1.008, 15.999, 17.007, 33.006, 34.014, 18.015], [\"H2\", \"O2\", \"N2\", \"H\", \"O\", \"OH\", \"HO2\", \"H2O2\", \"H2O\"], [\"N\", \"H\", \"O\", \"C\"], [0.0 0.0 … 0.0 0.0; 2.0 0.0 … 2.0 2.0; 0.0 2.0 … 2.0 1.0; 0.0 0.0 … 0.0 0.0], Arrhenius.Thermo([2.34433112 0.00798052075 … -917.935173 0.683010238; 3.78245636 -0.00299673416 … -1063.94356 3.65767573; … ; 4.27611269 -0.000542822417 … -17702.5821 3.43505074; 4.19864056 -0.0020364341 … -30293.7267 -0.849032208], [3.3372792 -4.94024731e-5 … -950.158922 -3.20502331; 3.28253784 0.00148308754 … -1088.45772 5.45323129; … ; 4.16500285 0.00490831694 … -17861.7877 2.91615662; 3.03399249 0.00217691804 … -30004.2971 4.9667701]), Arrhenius.Reaction([0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 1.0 0.0], [0.0 1.0 … 0.0 0.0; 1.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 1.0 1.0; 0.0 0.0 … 0.0 0.0], [0.0 1.0 … 0.0 0.0; 1.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 1.0 1.0; 0.0 0.0 … 0.0 0.0], Bool[1, 1, 1, 1, 1, 1, 1, 1, 1, 1 … 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [3.52e13 -0.7 17069.79; 50.6 2.67 6290.63; … ; 7.59e10 0.0 7272.94; 9630.0 2.0 3991.4], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], [5, 6, 7, 8, 9, 10, 17], Int64[], [1.0 1.0 … 1.0 1.0; 1.0 1.0 … 1.0 1.0; … ; 1.0 1.0 … 1.0 1.0; 1.0 1.0 … 1.0 1.0], [[2, 4], [1, 5], [1, 6], [5, 9], [4], [4, 6], [5], [4, 5], [5, 6], [2, 4] … [6, 7], [6, 7], [6], [7], [7], [4, 8], [4, 8], [6, 8], [6, 8], [5, 8]], [[5, 6], [4, 6], [4, 9], [6], [1], [9], [2], [6], [7], [7] … [2, 9], [2, 9], [8], [2, 8], [2, 8], [1, 7], [6, 9], [7, 9], [7, 9], [6, 7]], 24, [0.0 -1.0 … 0.0 0.0; -1.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … -1.0 -1.0; 0.0 0.0 … 1.0 0.0], [0.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0 … 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"gas = CreateSolution(\"./chem.yaml\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"24" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ns = gas.n_species\n", | |
"nr = gas.n_reactions" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"9-element Array{String,1}:\n", | |
" \"H2\"\n", | |
" \"O2\"\n", | |
" \"N2\"\n", | |
" \"H\"\n", | |
" \"O\"\n", | |
" \"OH\"\n", | |
" \"HO2\"\n", | |
" \"H2O2\"\n", | |
" \"H2O\"" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"gas.species_names" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Impliment governing equations\n", | |
"\n", | |
"The core functionality of Arrhenius.jl is interpreting chemical kinetic models, and compute the reaction source term. Most of combustion simulations involves of equations on top of reaction source term.\n", | |
"\n", | |
"This example simulate the pyrolysis under constant pressure conditions. While the pressure is fixed, we need equations to describe the changes of species concentrations and temperature. Species concentrations can be represented in three ways: mass fraction, mole fractions and mole concentrations. Most of combustion software impletes the governing equations using mass fraction or mass fractions divided by density.\n", | |
"\n", | |
"Therefore, we create arrays to host the initial values of the ODEs." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Y0 = zeros(ns)\n", | |
"Y0[species_index(gas, \"H2\")] = 0.055463\n", | |
"Y0[species_index(gas, \"O2\")] = 0.22008\n", | |
"Y0[species_index(gas, \"N2\")] = 0.724457 #to sum as unity\n", | |
"T0 = 1100.0 #K\n", | |
"P = one_atm * 10.0\n", | |
"u0 = vcat(Y0, T0);" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"One of the cool features of Julia language is that writing julia code is like write math equations. Once you know the governing equations, it is easy to implement the governing equations. In the governing equations, we have some magic functions to derive all relevent internal variables from the exposed variables of mass fraction Y and temperature T.\n", | |
"\n", | |
"Notebly\n", | |
"\n", | |
"* mean molecular weights `mean_MW = 1. / dot(Y, 1 ./ gas.MW)`\n", | |
"* density\n", | |
"* mass fraction to mole fraction Y2X\n", | |
"* mass fraction to mole concentration Y2C\n", | |
"* cp_mole\n", | |
"* h_mole (enthapy)\n", | |
"* S0 (entropy)\n", | |
"* wdot = dC/dt\n", | |
"* Ydot = dY/dt\n", | |
"* Tdot = dT/dt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dudt (generic function with 1 method)" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"function dudt(u)\n", | |
" T = u[end]\n", | |
" Y = @view(u[1:ns])\n", | |
" mean_MW = 1. / dot(Y, 1 ./ gas.MW)\n", | |
" ρ_mass = P / R / T * mean_MW\n", | |
" X = Y2X(gas, Y, mean_MW)\n", | |
" C = Y2C(gas, Y, ρ_mass)\n", | |
" cp_mole, cp_mass = get_cp(gas, T, X, mean_MW)\n", | |
" h_mole = get_H(gas, T, Y, X)\n", | |
" S0 = get_S(gas, T, P, X)\n", | |
" wdot = wdot_func(gas.reaction, T, C, S0, h_mole)\n", | |
" Ydot = wdot / ρ_mass .* gas.MW\n", | |
" Tdot = -dot(h_mole, wdot) / ρ_mass / cp_mass\n", | |
" du = vcat(Ydot, Tdot)\n", | |
"end" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 0.026856 seconds (18.37 k allocations: 1.047 MiB)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"10×10 Array{Float64,2}:\n", | |
" -0.00227393 -0.000934232 0.000137514 … 0.000213839 -5.21262e-6\n", | |
" -0.0360919 -0.0148282 0.00218263 0.00334244 -8.27348e-5\n", | |
" 0.0 0.0 0.0 0.0 0.0\n", | |
" 0.00113697 0.000467116 -6.87571e-5 -0.000106919 2.60631e-6\n", | |
" 2.09985e-12 2.28459e-12 -1.26987e-13 2.97389e-12 2.53222e-14\n", | |
" 0.0 0.0 0.0 … 2.74378e-5 0.0\n", | |
" 0.0372289 0.0152953 -0.00225138 -0.00344774 8.53411e-5\n", | |
" 0.0 0.0 0.0 0.0 0.0\n", | |
" 0.0 0.0 0.0 -2.9064e-5 0.0\n", | |
" -27.3692 -47.4374 16.5061 29.0894 -0.306451" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"@time du0 = ForwardDiff.jacobian(dudt, u0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"10×10 Array{Float64,2}:\n", | |
" -0.002274 -0.000934 0.000138 0.003822 -2.395e6 -1.19579e7 -297.284 0.000113 0.000214 -5.0e-6\n", | |
" -0.036092 -0.014828 0.002183 -5.02344e7 0.003822 -0.008937 4.67671 -2.2362 0.003342 -8.3e-5\n", | |
" 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0\n", | |
" 0.001137 0.000467 -6.9e-5 -1.58248e6 1.1975e6 5.97897e6 148.789 -5.7e-5 -0.000107 3.0e-6\n", | |
" 0.0 0.0 -0.0 2.13209e7 -1.90067e7 0.006266 1.89648 -0.0 0.0 0.0\n", | |
" 0.0 0.0 0.0 2.26642e7 2.02042e7 -1.00877e8 2.01596 48.9504 2.7e-5 0.0\n", | |
" 0.037229 0.015295 -0.002251 7.8318e6 -0.003942 0.009218 -4875.88 4.61515 -0.003448 8.5e-5\n", | |
" 0.0 0.0 0.0 0.0 0.0 0.0 5015.79 -51.3294 0.0 0.0\n", | |
" 0.0 0.0 0.0 0.0 0.0 1.06856e8 0.0 0.0 -2.9e-5 0.0\n", | |
" -27.3692 -47.4374 16.5061 -1.96846e10 -3.90305e9 1.89949e11 -5.51997e6 -1.64747e5 29.0894 -0.306451" | |
] | |
} | |
], | |
"source": [ | |
"show(stdout, \"text/plain\", round.(du0, digits=6))" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Julia 1.5.2", | |
"language": "julia", | |
"name": "julia-1.5" | |
}, | |
"language_info": { | |
"file_extension": ".jl", | |
"mimetype": "application/julia", | |
"name": "julia", | |
"version": "1.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
chem.yaml
generator: cti2yaml
cantera-version: 2.5.0a4
date: Tue, 23 Feb 2021 11:08:23 -0500
input-files: [chem.cti]
units: {length: cm, quantity: mol, activation-energy: cal/mol}
phases:
- name: gas
thermo: ideal-gas
elements: [N, H, O, C]
species: [H2, O2, N2, H, O, OH, HO2, H2O2, H2O]
kinetics: gas
reactions: all
state:
T: 300.0
P: 1.01325e+05
species:
- name: H2
composition: {H: 2}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [2.34433112, 7.98052075e-03, -1.9478151e-05, 2.01572094e-08, -7.37611761e-12,
-917.935173, 0.683010238]
- [3.3372792, -4.94024731e-05, 4.99456778e-07, -1.79566394e-10, 2.00255376e-14,
-950.158922, -3.20502331]
note: '000000'
- name: O2
composition: {O: 2}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [3.78245636, -2.99673416e-03, 9.84730201e-06, -9.68129509e-09, 3.24372837e-12,
-1063.94356, 3.65767573]
- [3.28253784, 1.48308754e-03, -7.57966669e-07, 2.09470555e-10, -2.16717794e-14,
-1088.45772, 5.45323129]
note: '000000'
- name: N2
composition: {N: 2}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [3.298677, 1.4082404e-03, -3.963222e-06, 5.641515e-09, -2.444854e-12,
-1020.8999, 3.950372]
- [2.92664, 1.4879768e-03, -5.68476e-07, 1.0097038e-10, -6.753351e-15,
-922.7977, 5.980528]
note: '000000'
- name: H
composition: {H: 1}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [2.5, 7.05332819e-13, -1.99591964e-15, 2.30081632e-18, -9.27732332e-22,
2.54736599e+04, -0.446682853]
- [2.50000001, -2.30842973e-11, 1.61561948e-14, -4.73515235e-18, 4.98197357e-22,
2.54736599e+04, -0.446682914]
note: '000000'
- name: O
composition: {O: 1}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [3.1682671, -3.27931884e-03, 6.64306396e-06, -6.12806624e-09, 2.11265971e-12,
2.91222592e+04, 2.05193346]
- [2.56942078, -8.59741137e-05, 4.19484589e-08, -1.00177799e-11, 1.22833691e-15,
2.92175791e+04, 4.78433864]
note: '000000'
- name: OH
composition: {H: 1, O: 1}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [4.12530561, -3.22544939e-03, 6.52764691e-06, -5.79853643e-09, 2.06237379e-12,
3381.53812, -0.69043296]
- [2.86472886, 1.05650448e-03, -2.59082758e-07, 3.05218674e-11, -1.33195876e-15,
3718.85774, 5.70164073]
note: '000000'
- name: HO2
composition: {H: 1, O: 2}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [4.30179801, -4.74912051e-03, 2.11582891e-05, -2.42763894e-08, 9.29225124e-12,
294.80804, 3.71666245]
- [4.0172109, 2.23982013e-03, -6.3365815e-07, 1.1424637e-10, -1.07908535e-14,
111.856713, 3.78510215]
note: '000000'
- name: H2O2
composition: {H: 2, O: 2}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [4.27611269, -5.42822417e-04, 1.67335701e-05, -2.15770813e-08, 8.62454363e-12,
-1.77025821e+04, 3.43505074]
- [4.16500285, 4.90831694e-03, -1.90139225e-06, 3.71185986e-10, -2.87908305e-14,
-1.78617877e+04, 2.91615662]
note: '000000'
- name: H2O
composition: {H: 2, O: 1}
thermo:
model: NASA7
temperature-ranges: [300.0, 1000.0, 5000.0]
data:
- [4.19864056, -2.0364341e-03, 6.52040211e-06, -5.48797062e-09, 1.77197817e-12,
-3.02937267e+04, -0.849032208]
- [3.03399249, 2.17691804e-03, -1.64072518e-07, -9.7041987e-11, 1.68200992e-14,
-3.00042971e+04, 4.9667701]
note: '000000'
reactions:
- equation: H + O2 <=> OH + O # Reaction 1
rate-constant: {A: 3.52e+16, b: -0.7, Ea: 1.706979e+04}
- equation: H2 + O <=> OH + H # Reaction 2
rate-constant: {A: 5.06e+04, b: 2.67, Ea: 6290.63}
- equation: H2 + OH <=> H2O + H # Reaction 3
rate-constant: {A: 1.17e+09, b: 1.3, Ea: 3635.28}
- equation: H2O + O <=> OH + OH # Reaction 4
rate-constant: {A: 7.0e+05, b: 2.33, Ea: 1.454828e+04}
- equation: H + H + M <=> H2 + M # Reaction 5
type: three-body
rate-constant: {A: 1.3e+18, b: -1.0, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 12.0}
- equation: H + OH + M <=> H2O + M # Reaction 6
type: three-body
rate-constant: {A: 4.0e+22, b: -2.0, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 12.0}
- equation: O + O + M <=> O2 + M # Reaction 7
type: three-body
rate-constant: {A: 6.17e+15, b: -0.5, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 12.0}
- equation: H + O + M <=> OH + M # Reaction 8
type: three-body
rate-constant: {A: 4.71e+18, b: -1.0, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 12.0}
- equation: O + OH + M <=> HO2 + M # Reaction 9
type: three-body
rate-constant: {A: 8.0e+15, b: 0.0, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 12.0}
- equation: H + O2 + M <=> HO2 + M # Reaction 10
type: three-body
rate-constant: {A: 4.65e+12, b: 0.44, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 16.0}
- equation: HO2 + H <=> OH + OH # Reaction 11
rate-constant: {A: 7.08e+13, b: 0.0, Ea: 294.93}
- equation: HO2 + H <=> H2 + O2 # Reaction 12
rate-constant: {A: 1.66e+13, b: 0.0, Ea: 822.9}
- equation: HO2 + H <=> H2O + O # Reaction 13
rate-constant: {A: 3.1e+13, b: 0.0, Ea: 1720.84}
- equation: HO2 + O <=> OH + O2 # Reaction 14
rate-constant: {A: 2.0e+13, b: 0.0, Ea: 0.0}
- equation: HO2 + OH <=> H2O + O2 # Reaction 15
rate-constant: {A: 7.0e+12, b: 0.0, Ea: -1094.65}
duplicate: true
- equation: HO2 + OH <=> H2O + O2 # Reaction 16
rate-constant: {A: 4.5e+14, b: 0.0, Ea: 1.092973e+04}
duplicate: true
- equation: OH + OH + M <=> H2O2 + M # Reaction 17
type: three-body
rate-constant: {A: 9.55e+13, b: -0.27, Ea: 0.0}
efficiencies: {H2: 2.5, H2O: 6.0, H2O2: 6.0}
- equation: HO2 + HO2 <=> H2O2 + O2 # Reaction 18
rate-constant: {A: 1.03e+14, b: 0.0, Ea: 1.104207e+04}
duplicate: true
- equation: HO2 + HO2 <=> H2O2 + O2 # Reaction 19
rate-constant: {A: 1.94e+11, b: 0.0, Ea: -1408.94}
duplicate: true
- equation: H2O2 + H <=> HO2 + H2 # Reaction 20
rate-constant: {A: 2.3e+13, b: 0.0, Ea: 7950.05}
- equation: H2O2 + H <=> H2O + OH # Reaction 21
rate-constant: {A: 1.0e+13, b: 0.0, Ea: 3585.09}
- equation: H2O2 + OH <=> H2O + HO2 # Reaction 22
rate-constant: {A: 1.74e+12, b: 0.0, Ea: 1434.03}
duplicate: true
- equation: H2O2 + OH <=> H2O + HO2 # Reaction 23
rate-constant: {A: 7.59e+13, b: 0.0, Ea: 7272.94}
duplicate: true
- equation: H2O2 + O <=> HO2 + OH # Reaction 24
rate-constant: {A: 9.63e+06, b: 2.0, Ea: 3991.4}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
mechanism interpreter, disable Troe