Table of Contents
Fetching ...

equilibrium-c: A Lightweight Modern Equilibrium Chemistry Calculator for Hypersonic Flow Applications

Nicholas N. Gibbons

TL;DR

eqc addresses the need for a modern, open-source chemical equilibrium solver suitable for hypersonic and multi-physics simulations by employing an element-potential framework that minimises Gibbs energy under elemental constraints. The code combines a rigorously derived thermodynamic foundation with a robust, analytically-informed Newton solver, including under-relaxation and log-space handling to ensure convergence even with many species and high-temperature ionisation. Validation spans analytic benchmarks (e.g., CO₂ dissociation), cross-code comparisons with NASA CEA, and experimental data from shock-tunnel tests, demonstrating accuracy and robustness across representative regimes. The result is a lightweight, minimal-dependency tool with a Python interface and unit-tested C core, intended for easy integration into complex fluid-dynamics, combustion, and hypersonic design workflows, with broad applicability beyond its primary focus.

Abstract

equilibrium-c (eqc) is a program for computing the composition of gas mixtures in chemical equilibrium. In typical usage, the program is given a known thermodynamic state, such as fixed temperature and pressure, as well as an initial composition of gaseous species, and computes the final composition in the limit of a large amount of time relative to the reaction speeds. eqc includes a database of thermodynamic properties taken from the literature, a set of core routines written the C programming language to solve the equilibrium problems, and a Python wrapper layer to organise the solution process and interface with user code. Dependencies are extremely minimal, and the API is designed to be easily embedded in multi-physics codes that solve problems in fluid dynamics, combustion, and chemical processing. In this paper, I first introduce the equations of chemical equilibrium, then spend some time discussing their numerical solution, and finally present a series of example problems, with an emphasis on verification and validation of the solver.

equilibrium-c: A Lightweight Modern Equilibrium Chemistry Calculator for Hypersonic Flow Applications

TL;DR

eqc addresses the need for a modern, open-source chemical equilibrium solver suitable for hypersonic and multi-physics simulations by employing an element-potential framework that minimises Gibbs energy under elemental constraints. The code combines a rigorously derived thermodynamic foundation with a robust, analytically-informed Newton solver, including under-relaxation and log-space handling to ensure convergence even with many species and high-temperature ionisation. Validation spans analytic benchmarks (e.g., CO₂ dissociation), cross-code comparisons with NASA CEA, and experimental data from shock-tunnel tests, demonstrating accuracy and robustness across representative regimes. The result is a lightweight, minimal-dependency tool with a Python interface and unit-tested C core, intended for easy integration into complex fluid-dynamics, combustion, and hypersonic design workflows, with broad applicability beyond its primary focus.

Abstract

equilibrium-c (eqc) is a program for computing the composition of gas mixtures in chemical equilibrium. In typical usage, the program is given a known thermodynamic state, such as fixed temperature and pressure, as well as an initial composition of gaseous species, and computes the final composition in the limit of a large amount of time relative to the reaction speeds. eqc includes a database of thermodynamic properties taken from the literature, a set of core routines written the C programming language to solve the equilibrium problems, and a Python wrapper layer to organise the solution process and interface with user code. Dependencies are extremely minimal, and the API is designed to be easily embedded in multi-physics codes that solve problems in fluid dynamics, combustion, and chemical processing. In this paper, I first introduce the equations of chemical equilibrium, then spend some time discussing their numerical solution, and finally present a series of example problems, with an emphasis on verification and validation of the solver.

Paper Structure

This paper contains 20 sections, 211 equations, 10 figures, 1 table.

Figures (10)

  • Figure 1: Chemically reacting flow passing through a shockwave.
  • Figure 2: Illustration of particles and energy levels in an ideal gas.
  • Figure 3: Discrete PDFs of multiple dice rolls, normalised across domain and range.
  • Figure 4: Comparison of eqc numerical solutions with CO2 dissociation problem from turns, Chapter 2.
  • Figure 5: Post-normal shock electron number density, computed vs. Altitude and Flight velocity
  • ...and 5 more figures