The changelog for Cantera 3.2.0 is included below.
Highlights
- Generate a new version of CLib based on the C++ Doxygen documentation, using a significantly updated sourcegen tool (#1835, #1842, #1846, #1863, #1878, #1879, #1888, #1893, #1897, #1903, #1931, #1975, #1977, #1986, #1987, #2009, #2011)
- Clone Solution objects used by Reactor / ReactorSurface, ensuring that all ThermoPhase
objects used within a network are independent and that properties
accessed after integration reflect results at the integrator’s output
time (#1921)
- Improved plasma kinetics calculations based on electron collision
cross sections, including the addition of a two-term Boltzmann equation
solver (#1731, #1854, #1887, #1953, nanosecond_pulse_discharge.py)
- Generalized the hybrid time/stepping steady-state solver used for 1D flames to also be used for reactor networks (#1836, #1907, combustor.py)
- Major updates to the new Matlab toolbox, including addition of a significant unit test suite (#1665, #1881, #1911, #1868, #1997, Matlab Example Gallery)
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