Cantera 3.2.0b1#

Published on November 1, 2025 | Full release on GitHub

The Cantera development team is pleased to announce the availability of Cantera 3.2.0. There have been over 800 commits to Cantera since the last version, 3.1.0, which was released in December 2024. We have closed or merged 144 pull requests and closed 62 issues and 17 enhancement proposals. Instructions for installing Cantera 3.2 are available on the Cantera website.

Highlights#

New features#

  • Introduce high-pressure-Chung model for high pressure gas transport properties, and improve documentation and testing of the existing high-pressure transport model (#1704, high_pressure_transport.py)

  • Add type annotations to the Python module using stub (.pyi) files (#1926, #2019, #2024)

  • Add Soret model for mixture-averaged diffusion (#1930, adiabatic_flame.py)

  • Enable pickling of SolutionArray objects (#1964, #1970)

  • Allow Unicode volume units (m³) in YAML input (#1989)

Changes to existing capabilities#

  • Remove features deprecated in Cantera 3.1 (#1833)

  • Simplify calculation of molar mixture properties (#1837)

  • Make IndexError and ArraySizeError consistent (#1851)

  • [C++] Provide const access to falloff rate parameters (#1857)

  • Introduce ConnectorNode as a common base class for devices connecting zero-D reactors (#1848)

  • Refactor ReactorSurface to inherit from ReactorBase (#1864, #1955)

  • Simplify logger setup and eliminate per-thread logging (#1904)

  • Improve .NET Interface Interop layer (#1906)

  • Improve support for compiling with MPI compiler wrappers (#1918, #1933)

  • Make imports of external Python modules private (#1948)

  • Consolidate Gaussian functors used in examples (#1951)

  • Restore previous ThermoPhase state after encountering an error setting the state (#1981)

  • Revise methods for accessing state from Sim1D/Domain1D to be more consistent with SolutionArray (#1995, #2008)

  • Make index lookups more robust (#2010)

  • Use phase as name of Reactor member variable / getter for accessing the Solution object representing its contents (#2001, #2002)

  • Improve exceptions for speciesName(index) and similar methods (#2014)

  • Deprecate ReactorBase::addThermo (#1966)

  • Deprecate LatticePhase and LatticeSolidPhase (#1959)

  • Deprecate Python Arrhenius class in favor of ArrheniusRate (#1978)

  • Deprecate legacy convenience headers (#1984)

  • Deprecate legacy Domain1D constructors based on raw ThermoPhase pointers (#2003)

  • Handle removal of numpy.trapz (#2015)

  • Expanded automated CI testing and other CI maintenance (#1844, #1861, #1862, #1875, #1891, #1908, #1909, #1913, #1914, #1952, #1962, #1993, #2012)

  • Various documentation updates (#1831, #1853, #1866, #1884, #1901, #1939, #1945, #1958, #1969, #1983)

  • Various build system updates (#1828, #1890, #1960, #1972, #1973)

  • Fix some compiler/Python warnings (#1834, #1850, #1946, #2020)

  • Maintenance of the sdist / PyPI packages (#1915, #1919, #1982)

Bugs fixed#

  • Fix using Python SolutionArray.append with different keyword argument orders (#1840)

  • Fix transport model selection when initializing 1D flame from SolutionArray (#1841)

  • Fix ck2yaml handling of unnamed surfaces (#1876)

  • Fix isotropic electron energy distribution expression in PlasmaPhase (#1858)

  • Fix handles in .NET interface (#1894)

  • Fix layout of multi_diff_coeffs matrix in Python (#1899)

  • Fix reaction balance check for elements with negative abundances (#1917)

  • Update duplicate reaction labels when serializing (#1923)

  • Fix inlet initialization in continuous reactor example (#1944)

  • Fix flow reactor visualization for bi-directional mass flows (#1949)

  • Fix SolutionArray.read_csv when using Pandas 3.x (#1956)

  • Fix and simplify options for solving electric field/ion diffusion in 1D flames (#1961)

  • Fix handling of falloff reactions with extra apparent third body (#1965)

  • Fix 1D flame auto-solve after restoring from Pandas (#1967)

  • Fix introspection of key names in AnyMap generated from Python (#1979)

  • Fix lxcat2yaml for empty product case (#1988)

  • Fix surface density/concentration calculation for multi-site species (#2016)

  • Fix conservation of mass fraction sum in FlowReactor (#2018)

  • Fix Python units function that returned bytes instead of str (#2017)

Contributors#

This release was made possible by the following contributors: @BangShiuh, @bryanwweber, @burkenyo, @cwillits123, @etsandall, @g3bk47, @ischoegl, @itnonaka, @mquiram, @mruijzendaal, @nicolasbarleon, @QuentinMale, @rwest, @speth, @ssun30, @TimothyEDawson, @wandadars