Extensible and Community-Driven Thermodynamics, Transport, and Chemical Kinetics Modeling with Cantera: Expanding to Diverse Scientific Domains COLORADO SCHOOL OF Jongyoon Bae, Bang-Shiuh Chen, Steven DeCaluwe, Franklin Goldsmith, China Hagström, Gregory Jackson, Robert Kee, Gandhali Kogekar, Daniel Korff, Kyle Niemeyer, Sun Su, Raymond Speth, Anthony Walker, Bryan Weber, Richard West, Chao Xu, and Xinyu Zhao - Cantera objects/classes represent: - Phases of matter (solids, liquids, gases, interfaces) - Functions to calculate properties and rates - Solvers for chemical equilibrium, time-dependent 0-D systems (reactor networks), and steady-state 1-D reacting systems (flames) - Core library written in C++ with interfaces for user applications available in Python, C++, MATLAB, C, and Fortran 90 - Cantera’s object-oriented architecture enables efficient development of new models This work is supported by the National Science Foundation under Grant Nos. 1931584, 1931391, 1931539, 1931592, 1931397, and 1931389. New developments with NSF funding - YAML-based input file format - Provides easy access to user-defined data fields - YAML files can be generated from dynamically- generated/modified Cantera objects (serialization) - Enables efficient interoperability with other tools - Extensibility of Cantera C++ models using Python classes - Allows users to extend existing C++ models with Python code - Enables rapid prototyping and easy distribution of new scientific models - New reaction rate models - Blowers-Masel parameterization, which captures sensitivity to enthalpy of reaction - Plasma reactions with distinct electron and gas temperatures - New thermodynamic models: - Peng-Robinson equation of state for real gases - Plasma phases including calculation of the electron energy distribution function - Non-ideal surface phases with coverage-dependent thermo - Adaptive preconditioning - Accelerate integration of kinetic models with 1000s of species - New user interfaces being developed for Julia and .NET/C# - Implemented using source code generation to simplify maintenance of repetitive wrapper code - Simpler installation options - pip package for the Cantera Python module - Workshops & community engagement - Established Cantera Scientific Advisory Board with representatives from academia, industry, and government - National Combustion Meeting Workshop (May 2021, virtual) - Combustion Symposium Workshop (July 2022, Vancouver) - ACS National Meeting Workshop (August 2022, Chicago) Cantera is an open-source suite of tools for solving problems involving chemical kinetics, thermodynamics, and transport processes. Cantera Input File (YAML) Computational Model species: - name: CH3 composition: {C: 1, H: 3} thermo: model: NASA7 temperature-ranges: [300.0, 1000.0, 5000.0] data: - [1.051551, 0.0259919, 2.380054e-06, ...] - [7.702698, 0.0160442, -1.9609569e-08, ...] transport: ... - name: CH2O composition: {C: 1, H: 2, O: 1} ... reactions: - equation: H + CH3 (+M) <=> CH4 (+M) type: falloff low-P-rate-constant: {A: 2.6e+33, b: -4.8, Ea: 2440} high-P-rate-constant: {A: 1.4e+16, b: -0.5, Ea: 536} Troe: {A: 0.783, T3: 74.0, T1: 2941.0, T2: 6964.0} efficiencies: {H2: 2.0, H2O: 6.0, ...} - equation: O + CH3 <=> H + CH2O # Reaction 10 rate-constant: {A: 5.06e+13, b: 0.0, Ea: 0.0} - equation: H + CH2CO <=> CH3 + CO # Reaction 81 rate-constant: {A: 1.13e+13, b: 0.0, Ea: 3428.0} ... phases: - name: flamegas thermo: ideal-gas kinetics: gas transport: mixture-averaged Goals of this project Extend Cantera’s capabilities - Support scientific discovery and technology development in energy storage & conversion, chemical processing, and atmospheric chemistry Expand Cantera’s user base - Outreach to critical fields including electrochemistry, heterogeneous catalysis, and atmospheric chemistry Broaden participation in the software’s development and management - Improve Cantera’s sustainability and usability SUNDIALS (ODE solver) Eigen (linear algebra) libyaml-cpp (in