# ChemGen: Code Generation for Multispecies Chemically Reacting Flow Simulations

Source: [ChemGen: Code Generation for Multispecies Chemically Reacting Flow Simulations](<https://www.sota2.com/research/paper/68fa4c4a1e209131ce94bf39>)

Collection index: [llms.txt](<https://www.sota2.com/research/llms.txt>)

Data updated: 2025-12-12T05:01:30.602Z

Authors: Ryan F. Johnson, Eric J. Ching, Ethan S. Genter, Joshua E. Lipman, Andrew D. Kercher, Jay Arcities, Hai Wang

Published: 2025-10-11T04:16:33.000Z

## Abstract

This paper introduces ChemGen, a software package that uses code generation to integrate multispecies thermodynamics and chemical kinetics into C+-based computational physics codes. ChemGen aims to make chemical kinetics more accessible in existing simulation frameworks and help bridge the gap between combustion modeling and computational physics. The package employs the concept of decorators which enable flexible C++ code generation to target established software ecosystems. ChemGen generates code to evaluate thermodynamic properties, chemical source terms, and their analytical derivatives for Jacobian calculations. Also included are a variety of implicit time integration schemes, linear solvers, and preconditioners. The various components of Chemgen are verified by demonstrating agreement with Cantera and/or theoretical convergence rates. Finally, we integrate ChemGen into OpenFOAM and achieve a speedup over its native chemistry solver by approximately four times. ChemGen is an ongoing project released under the NRL Open License, a source-available license provided by the U.S. Naval Research Laboratory.

## Recorded benchmark results

A research result applies to its stated dataset, split, metric and evaluation configuration. Compare like-for-like settings, preserve the metric's unit and direction, and distinguish paper-reported results from independent reproduction. The best result recorded here is not a claim of exhaustive, current global coverage.

## Original sources and implementation

[Original paper](<https://arxiv.org/abs/2510.10005>)

[PDF](<https://arxiv.org/pdf/2510.10005.pdf>)
