Validations#
The Combustion Toolbox [Cuadra et al., 2024, Cuadra et al., 2026] has been rigorously benchmarked against several established reference codes across a range of thermochemical equilibrium problems. The table below summarizes the main external solvers considered for comparison together with their typical scopes of application.
Reference code |
Scope of application |
|---|---|
Chemical equilibrium, combustion, propulsion performance |
|
Chemical equilibrium, chemical kinetics, combustion, reactive flow simulations, transport, plasma and electrochemical systems |
|
Shock waves, detonations, high-enthalpy reactive flows |
|
Thermochemical equilibrium of exoplanetary atmospheres |
Note
Caltech’s SD-Toolbox internally uses the Cantera [Goodwin et al., 2021] software packag for thermochemical calculations.
Warning
For the sake of clarity, we only show a reduced set of species in the validation of the mole fractions.
Contents
Chemical equilibrium calculations#
Validations of the EquilibriumSolver for different problem types with NASA CEA as reference. The problem types covered are:
TP(defined temperature and pressure)HP(defined enthalpy and pressure)TV(defined temperature and volume)EV(defined internal energy and volume)SP(defined entropy and pressure)SV(defined entropy and volume)
Case |
Mixture definition |
Conditions |
Equivalence ratio |
Reference code |
MATLAB script |
Data source |
|---|---|---|---|---|---|---|
\(\text{C}_6\text{H}_6 + \dfrac{7.5}{\phi}(\text{O}_2 + 3.76\ \text{N}_2)\) |
\(T = 2500\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{C}_6\text{H}_6 + \dfrac{7.5}{\phi}\text{O}_2\) |
\(T = 2500\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_3\text{OH} + \dfrac{1.5}{\phi}(\text{O}_2 + 3.76\ \text{N}_2)\) |
\(T = 2500\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_3\text{OH} + \dfrac{1.5}{\phi}\text{O}_2\) |
\(T = 2500\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{C}_2\text{H}_2 + \dfrac{2.5}{\phi}(\text{O}_2 + 3.76 \text{N}_2)\) |
\(T_\text{initial} = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{C}_2\text{H}_2 + \dfrac{2.5}{\phi}\text{O}_2\) |
\(T_\text{initial} = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}(\text{O}_2 + 3.76 \text{N}_2)\) |
\(T_\text{initial} = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}\text{O}_2\) |
\(T_\text{initial} = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{Natural gas} + \dfrac{2.05}{\phi}\text{Air}\) |
\(T_\text{initial} = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}\text{Air}\) |
\(T = 3000\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}\text{Air}\) |
\(T = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
Note
Natural gas: \(0.85\text{CH}_4 + 0.1\text{C}_2\text{H}_6 + 0.05\text{CO}_2\)
Air: \(3.73 \text{N}_2 + \text{O}_2 + 0.0447\text{Ar} + 0.00152 \text{CO}_2\)
Ideal Air: \(3.76 \text{N}_2 + \text{O}_2\)
Hint
To run all the validations contrasted with CEA at once, write at the prompt:
run_validations_CEA
TP 1 - C\(_{6}\)H\(_{6}\) + Air#
TP 2 - C\(_{6}\)H\(_{6}\) + O\(_{2}\)#
TP 3 - CH\(_{3}\)OH + Air#
TP 4 - CH\(_{3}\)OH + O\(_{2}\)#
HP 1 - C\(_{2}\)H\(_{2}\) + Air#
HP 2 - C\(_{2}\)H\(_{2}\) + O\(_{2}\)#
HP 3 - CH\(_{4}\) + Air#
HP 4 - CH\(_{4}\) + O\(_{2}\)#
HP 5 - Natural Gas + Air#
TV 1 - CH\(_{4}\) + Air#
EV 1 - CH\(_{4}\) + Air#
Shock wave calculations#
Validations of the ShockSolver for different problem types with NASA CEA and Caltech’s SD-Toolbox as reference. The problem types covered are:
SHOCK I(planar shock waves)SHOCK R(reflected shock waves)SHOCK OBLIQUE(oblique shock waves)SHOCK POLAR(shock polar diagrams)SHOCK PRANDTL MEYER(Prandtl-Meyer expansion waves)
Case |
Mixture |
Conditions |
Reference code |
MATLAB script |
Data source |
|---|---|---|---|---|---|
Air + ions |
T = 300 K |
NASA CEA |
|||
Air + ions |
T = 300 K |
NASA CEA |
|||
Air (frozen) |
T = 300 K |
SD-Toolbox + Cantera |
|||
Air + ions |
T = 3000 K |
SD-Toolbox + Cantera |
|||
Air (frozen) |
T = 3000 K |
SD-Toolbox + Cantera |
SHOCK I - Air with ionization#
SHOCK R - Air with ionization#
SHOCK POLAR 1 - Air with ionization#
SHOCK PRANDTL MEYER 1 - Air#
SHOCK PRANDTL MEYER 2 - Air (frozen)#
Detonation wave calculations#
Validations of the DetonationSolver for different problem types with NASA CEA as reference. The problem type covered is:
DET(Chapman-Jouguet detonations)
Case |
Mixture definition |
Conditions |
Equivalence ratio |
Reference code |
MATLAB script |
Data source |
|---|---|---|---|---|---|---|
\(\text{C}_2\text{H}_2 + \dfrac{2.5}{\phi}(\text{O}_2 + 3.76,\text{N}_2)\) |
\(T = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{C}_2\text{H}_2 + \dfrac{2.5}{\phi}\text{O}_2\) |
\(T = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}(\text{O}_2 + 3.76,\text{N}_2)\) |
\(T = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
\(\text{CH}_4 + \dfrac{2}{\phi}\text{O}_2\) |
\(T = 300\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
DET 1 - C\(_{2}\)H\(_{2}\) + Air#
DET 2 - C\(_{2}\)H\(_{2}\) + O\(_{2}\)#
DET 3 - CH\(_{4}\) + Air#
DET 4 - CH\(_{4}\) + O\(_{2}\)#
Rocket calculations#
Validations of the RocketSolver for different problem types with NASA CEA as reference. The problem type covered is:
ROCKET IAC(Infinite area chamber model)ROCKET FAC(Finite area chamber model)
Case |
Propellants |
Conditions |
Equivalence ratio |
Reference code |
MATLAB script |
Data source |
|---|---|---|---|---|---|---|
LH\(_2\) + LOX |
\(T_\text{fuel} = 20.27\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
LH\(_2\) + LOX |
\(T_\text{fuel} = 298.15\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
RP-1 + LOX |
\(T_\text{fuel} = 298.15\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
LH\(_2\) + LOX |
\(T_\text{fuel} = 20.27\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
RP-1 + LOX |
\(T_\text{fuel} = 298.15\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
LCH\(_4\) + LOX |
\(T_\text{fuel} = 111.66\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
LH\(_2\) + LOX |
\(T_\text{fuel} = 20.27\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
|||
MMH + N\(_2\)O\(_4\) |
\(T_\text{fuel} = 298.15\,\mathrm{K}\) |
\(0.5 \le \phi \le 4\) |
NASA CEA |
ROCKET IAC 1 - LH2 + LOX#
ROCKET IAC 2 - LH2 + LOX#
ROCKET FAC 1 - RP1 + LOX#
ROCKET FAC 2 - LH2 + LOX#
ROCKET FAC 3 - RP1 + LOX#
ROCKET FAC 4 - LCH4 + LOX#
ROCKET FAC 5 - LH2 + LOX#
ROCKET FAC 6 - MMH + N2O4#
Exoplanet chemical equilibrium calculations#
Validations of the EquilibriumSolver and SolarAbundances classes for different temperature and pressure profiles with Thermochemical Equilibrium Abundances of chemical species (TEA) software as reference. The problem type covered is:
TP(defined temperature and pressure profiles)
Case |
Mixture / Scenario |
Temperature range |
Pressure range |
Reference code |
MATLAB script |
Data source / URL |
|---|---|---|---|---|---|---|
See note\(^1\) |
\(T \in [500, 5000]\) K |
\(p \in [10^{-5}, 10^{2}]\) bar |
TEA |
https://github.com/dzesmin/TEA/blob/master/doc/examples/quick_example/results/quick_example.tea |
||
WASP-43b, \(\text{metallicity} = 1\) |
\(T \in [958.36, 1811.89]\) K |
\(p \in [2.4\!\times\!10^{-6}, 31.62]\) bar |
TEA |
https://github.com/dzesmin/RRC-BlecicEtal-2015a-ApJS-TEA/tree/master/Fig6/WASP43b-solar |
||
WASP-43b, \(\text{metallicity} = 10\) |
\(T \in [958.36, 1811.89]\) K |
\(p \in [2.4\!\times\!10^{-6}, 31.62]\) bar |
TEA |
https://github.com/dzesmin/RRC-BlecicEtal-2015a-ApJS-TEA/tree/master/Fig6/WASP43b-10xsolar |
||
WASP-43b, \(\text{metallicity} = 50\) |
\(T \in [958.36, 1811.89]\) K |
\(p \in [2.4\!\times\!10^{-6}, 31.62]\) bar |
TEA |
https://github.com/dzesmin/RRC-BlecicEtal-2015a-ApJS-TEA/tree/master/Fig6/WASP43b-50xsolar |
\(^1\) Initial mixture: H = 1.0000000000e+00, He = 8.5113803820e-02, C = 2.6915348039e-04, N = 6.7608297539e-05, O = 4.8977881937e-04
TEA 1#
WASP-43b metallicity 1#
WASP-43b metallicity 10#
WASP-43b metallicity 50#