Releases: Cantera/cantera
Cantera 3.1.0b1
The Cantera development team is pleased to announce the availability of Cantera 3.1.0b1. There have been over 1400 commits to Cantera since the last version, 3.0.0, which was released in August 2023. We have closed or merged 112 pull requests and closed 75 issues and 23 enhancement proposals. Instructions for installing Cantera 3.1 are available on the Cantera website.
Highlights
- Render examples using Sphinx-gallery (#1621, #1681, #1724, E#88)
- Added visualizations of reactor networks; see mix1.py and reactor2.py (E#180, #1624, #1714, #1792, E#212)
- Added ability to solve diffusion flames on the unstable branch using control of the temperature at two interior points; see diffusion_flame_continuation.py (#1622, #1779)
- Added the linear-Burke reaction rate parameterization which models pressure-dependent reactions with collider-specific behavior; see shock_tube.py, jet_stirred_reactor.py, and flame_speed.py (E#157, #1710, #1801)
- Major expansion of documentation for contributing to Cantera and understanding its internal workings (E#25, #1700, #1757, #1786)
- Update website structure to keep all version-specific documentation together and simplify URLs (E#145, E#146, #1631, #1638, #1647, #1657, #1657, #1737, #1766, #1790)
- Significant refactoring of the clib interface, which is now declared experimental and subject to API changes without receiving deprecation warnings. (E#211, E#199, #1741, #1752, #1760, #1769, #1773, #1780)
New features
- Add electron collision reactions (C++ class ElectronCollisionPlasmaRate) based on cross section data from the LXCat database; see plasma.py (#1262)
- Added an example demonstrating a 1D packed-bed reactor; see 1D_packed_bed.py (E#43)
- Added option to compute diffusive fluxes using mass fraction gradients in the 1D solver (E#195, #1668)
- Expose Peng-Robinson EoS parameters to Python interface (#1664)
- Created a new repository to clearly identify example input data and allow use of larger, more detailed mechanisms (E#22, #1689)
- Add HDF5 support to PyPI packages (E#205, (#1727)
- Add stack trace option to CanteraError for enhanced debugging (#1730)
- Enable cross compiling support without patches to simplify some package builds (E#210, #1749)
- Add support for Python 3.12 (#1604, #1648, #1716)
- Add compatibility with SUNDIALS 7.0 (#1672)
- Add compatibility with NumPy 2.0 (#1706, #1713)
- Support compilation in C++20 mode (#1739)
- Automatically adjust temperature bounds for low-temperature flames (#1684, #1705)
Changes to existing capabilities
- Refactored implementation of 1D flame governing equations (#1595, #1619)
- Improvements to 1D solver logging (#1660, #1759)
- Significant improvements to error messages reported when converting mechanisms using ck2yaml (#1669, #1736)
- Improved handling of edge cases involving third body colliders and “duplicate” reactions (#1696)
- Improve distinction between selecting none and default transport models (#1680, #1705)
- Improve error message for flames initialized with bad boundary conditions (#1694, #1705)
- Disallow redundant flame grid specification (#1693, #1705)
- Simplify YAML input for extensible interface reactions (#1709)
- Improve consistency of Func1 API between Matlab and Python interfaces (#1758, #1798)
- Use Solution objects to store reactor contents (#1663, #1685)
- Move locks that prevent adding species to ThermoPhase objects that are in use from Python to C++ (#1686)
- Use Jinja templates in C# sourcegen (#1785)
- Update ck2yaml to use argparse (#1616)
- Make names generated for reactor network objects reproducible (#1765)
- Make generated sources and error messages deterministic (#1804)
- Remove features deprecated in Cantera 3.0. (#1605)
- Remove legacy Matlab toolbox (E#196, #1670, #1688)
- Remove python_minimal interface (E#208, #1745)
- Expanded automated CI testing and other CI maintenance (#1608, #1612, #1630, #1652, #1662, #1671, #1677, #1703, #1738, [#1752](https://github.com/Cantera/cantera/pul...
Cantera 3.0.0
The Cantera development team is pleased to announce the availability of Cantera 3.0.0. There have been over 1400 commits to Cantera since the last version, 2.6.0, which was released in May 2022. We have closed or merged 192 pull requests and closed 111 issues. Instructions for installing Cantera 3.0 are available on the Cantera website.
Highlights
- Major performance enhancements for reactor network calculations with large kinetic mechanisms. This comes from a new formulation for the reactor governing equations using species moles (rather than mass fractions) used together with a sparse, iterative solver in the ODE integrator that makes use of a semi-analytical Jacobian. (
preconditioned_integration.py
, #1010, #1344, #1363, #1377, #1411) - Introduce
ExtensibleRate
Python class that can be used to implement new reaction rate parameterizations in Python, with parameters defined in YAML input files. These rate types can be used even when the main user application is not written in Python. (classExtensibleRate
,custom_reactions.py
, #1382, #1417, #1456, #1478, #1494, #1499) - Introduce a C++
SolutionArray
class, which is now used as the backend for the PythonSolutionArray
class (E#137, #1385, #1426, #1458, #1462, #1464, #1508, #1520, #1547, #1585) - Add "native" support for HDF5 as an input/output format for
SolutionArray
and 1D flames (E#166,flame_initial_guess.py
) - Add a new thermo model,
coverage-dependent-surface
for representing surfaces where the enthalpy, entropy, and heat capacity of each species may depend on its coverage and the coverage of other species in the phase. (classCoverageDependentSurfPhase
, E#59, #1135, #1471, #1529, #1583) - Add support for surface chemistry to the plug flow reactor model (classs
FlowReactor
,1D_pfr_surfchem.py
,surf_pfr.py
, #1490) - Add support for using real gas models (Redlich-Kwong and Peng-Robinson) with the 1D flame solver (E#109, #1079)
- Introduction of the
yaml2ck
script, which converts Cantera's YAML mechanism format into the legacy Chemkin format. (yaml2ck.py
, E#52, #1286, #1365, #1420) - Add an experimental Python module where Cantera returns dimensional values as quantities using the
pint
package. This is currently available only for thermo methods (modulecantera.with_units
,isentropic_units.py
,rankine_units.py
,sound_speed_units.py
, E#3, #991, #1569) - Preview release of a new Matlab toolbox, with a rewritten API that makes use of modern Matlab features and replaces the difficult-to-maintain MEX-file based backend with one based on using
calllib
to interact directly with the Cantera C interface. (For the adventurous, seeREADME.md
, E#32, #1182, #1496, #1498) - Preview release of a new C# interface. See
README.md
for more on what's implemented and how to contribute (#1331, #1401)
Additional new features
(click here to expand)
- Add support for polynomial dependency of activation energy on surface species coverages (documentation, #1495)
- Add speed of sound property to
ThermoPhase
objects (sound_speed.py
, #1491) - Implemented isothermal compressibility and thermal expansion coefficient calculations for Redlich-Kwong and Peng-Robinson equations of state (E#122, #1421)
- Add
interfaceCurrent
(C++) andinterface_current
methods toKinetics
objects (#1398) - Add molecular weight attribute to
Species
objects (#1266) - Add
set_equivalence_ratio
andset_mixture_fraction
methods to PythonQuantity
objects (#1517) - Add array size methods to Python
SolutionArray
class (#1284) - Add
Solution
class toclib
(#1448, #1600) - Introduce factory for creating 1D domains (
newDomain
in C++,domain_new
inclib
) (#1445) - Introduce factory for creating functor objects (
newFunc1
in C++;func_new_basic
,func_new_advanced
,func_new_compound
, andfunc_new_modified
inclib
; andFunc1.cxx_functor
in Python) (documentation, #1513, #1521) - Provide a more complete interface to the C++
Units
class in Python (#1285) - Add a sample program demonstrating the use of the Cantera C interface,
clib
(#1454) - Add an example of modelling a porous media burner using the
ExtensibleReactor
class (PorousMediaBurner.py
, #1443) - Add an example demonstrating saving and loading of 1D flame simulations and restarting with different initial guesses (
flame_initial_guess.py
, #1293) - The test suite now includes a comprehensive set of thermodynamic consistency tests for all phase models (E#114, #1299, #1501)
- Consolidate literature references in the C++ documentation into a bibliography (#1550, #1575)
- Enable linking to the Cantera shared library on Windows (E#140, [#1429](https://github.com/...
Cantera 3.0.0b1
See notes for Cantera 3.0.0.
Cantera 2.6.0
The Cantera development team is pleased to announce the availability of Cantera 2.6.0. There have been over 1400 commits to Cantera since the last version, 2.5.1, which was released in February 2021. We have closed or merged 162 pull requests and closed 101 issues.
New features, bug fixes, and other changes
Highlights
- Major redesign of how reaction rates are handled internally to improve extensibility and enable new capabilities (E#63, E#87, #982, #995, #1061, #1101, #1151, #1153, #1181, #1183, #1184, #1187, #1202, #1216, #1223, #1225, #1256, #1257)
- Enable delegation of reactor implementation to user-provided Python classes (
custom2.py
, #1003) - Enable serialization of Cantera objects to YAML (
mechanism_reduction.py
, #984, #1014, #1031) - Implement pickling of Python Solution objects (#692)
- Add PyPI package for Cantera, installable with
pip
(#1075, #1239, #1240, #1232, #1261) - Implement Peng-Robinson equation of state for real gases (#1047, #1141, #1180)
- Add Blowers-Masel reaction rate parameterization for gas phase and interface kinetics (
blowers-masel.py
, #987) - Add calculation of sparse, analytical Jacobians for gas kinetics (
derivative_speed.cpp
, #1088, #1089, #1212) - Add new phase type and reaction rate parameterizations for plasmas with independent electron temperature (#1099, #1166, #1190)
Click here for details on additional new features, changes to existing capabilities, and fixed bugs
New features
- Simplify creation of interface phases and their adjacent bulk phases (#1169, #1247)
- Add Tsang "falloff" function #1090
- Add option to allow unnormalized and/or negative mass/mole fractions in SolutionArray / 1D flame importers #1037
- Added access functions to polynomial fits of gas transport properties #817, #1077
- Add dilution options to equivalence ratio functions in Python #1206
- Make rate coefficient and standard concentration units available in Python #1076
- Add creation of Species from Python dict #1179
- Add thermal conductivity to DustyGas in Python #988
- Add
set_mixture_fraction
method toSolutionArray
#1242 - Exposed some additional functions to the Fortran interface #1154
- New C++ custom ODEs example #922
- Added a Python version of the Matlab lithium ion battery example #1263
- Add support for Sundials 6.0 #1162
Changes to existing capabilities
- Use YAML for saving and loading 1D flame simulations, replacing the XML output format #1112, #1140
- Use normal sign convention for reactor heat transfer #1156
- Separate third-body concentration term from rate constant for three body reactions #1084
- Translate C++ warnings to Python #1201
- Refactor SCons option handling and automatically extract compilation options for website documentation #1137
- Automatically use dependencies from and install into an active Conda environment #1191
- Include header description in when converting from CTI to YAML #1205
- Use of deprecated XML or CTI formats now actively issues warnings #1159
- Support legacy ruamel.yaml loaders #1060
- Update examples to use "h2o2.yaml" instead of GRI 3.0 #1109
- Prevent inadvertent attribute assignment in Quantity #1124
- Fix issues with composition strings and kinetics model of "None" in cti2yaml #1127
- Deprecate shell setup scripts (
setup_cantera
) #1189 - Replace deprecated yaml.safe_load / simplify paths #1049
- Read YAML using C++ newSolution in Python / access root level data #1129
- Improve YAML formatting of floating point values and multiline strings #1133
- Automatically detect unspecified third-body collision partners #1015
- Various compilation, build system, and test infrastructure updates #979, #994, #1000, #1004, #1012, #1020, #1025, #1034, #1043, #1056, #1062, #1145, #1158, #1102, #1119, #1122, #1144. #1167, #1172, #1176, #1178, #1197, #1208, #1222, #1229, #1241, #1268
- Various documentation updates #983, #1002, #1022, #1032, #1045, #1065, #1121, #1142, #1152, #1196, #1200, #1227, [#1...
Cantera 2.6.0b2
The Cantera development team is pleased to announce the general availability of the second beta for the next release of Cantera, v2.6.0. There have been over 1300 commits to Cantera since the last version, 2.5.1, which was released in February 2021. We have closed or merged 143 pull requests and closed 90 issues. Some of the highlights for this release are:
- Major redesign of how reaction rates are handled internally to improve extensibility and enable new capabilities (E#63, E#87)
- Enable delegation of reactor implementation to user-provided Python classes (
custom2.py
) - Enable serialization of Cantera objects to YAML (
mechanism_reduction.py
) - Implement pickling of Python Solution objects
- Add PyPI package for Cantera, installable with
pip
- Implement Peng-Robinson equation of state for real gases
- Add Blowers-Masel reaction rate parameterization for gas phase and interface kinetics (
blowers-masel.py
) - Add calculation of sparse, analytical Jacobians for gas kinetics (
derivative_speed.cpp
) - Add reaction rate parameterizations for plasmas with independent electron temperature
The complete list of changes can be found on the Cantera Wiki page: https://github.com/Cantera/cantera/wiki/Cantera-2.6.0-Changelog
Installation
Installation instructions for the Python module, Matlab toolbox, C++ interface, and Fortran 90 module on supported platforms are available at https://testing.cantera.org/install/index.html. Please note that as of 2022-04-11, installers for the beta are available via PyPI (using pip
), the cantera
conda channel, the cantera-team/cantera-unstable
Ubuntu PPA, and the installers below. Additional installers will be available soon.
Contributors
This release was made possible by the following contributors: @12Chao, @BangShiuh, @blackrabbit17, @DavidAkinpelu, @anthony-walker, @band-a-prend, @bryanwweber, @chinahg, @d-e-t, @decaluwe, @g3bk47, @gkogekar, @ischoegl, @jongyoonbae, @lavdwall, @leesharma, @mefuller, @paulblum, @speth, @stijn76, @tpg2114
Cantera 2.6.0b1
The Cantera development team is pleased to announce the general availability of the first beta for the next release of Cantera, v2.6.0. There have been over 1300 commits to Cantera since the last version, 2.5.1, which was released in February 2021. We have closed or merged 136 pull requests and closed 87 issues. Some of the highlights for this release are:
- Major redesign of how reaction rates are handled internally to improve extensibility and enable new capabilities (E#63, E#87)
- Enable delegation of reactor implementation to user-provided Python classes (
custom2.py
) - Enable serialization of Cantera objects to YAML (
mechanism_reduction.py
) - Implement pickling of Python Solution objects
- Add PyPI package for Cantera, installable with
pip
- Implement Peng-Robinson equation of state for real gases
- Add Blowers-Masel reaction rate parameterization for gas phase and interface kinetics (
blowers-masel.py
) - Add calculation of sparse, analytical Jacobians for gas kinetics (
derivative_speed.cpp
) - Add reaction rate parameterizations for plasmas with independent electron temperature
The complete list of changes can be found on the Cantera Wiki page: https://github.com/Cantera/cantera/wiki/Cantera-2.6.0-Changelog
This release was made possible by the following contributors: @12Chao, @BangShiuh, @blackrabbit17, @DavidAkinpelu, @anthony-walker, @band-a-prend, @bryanwweber, @chinahg, @d-e-t, @decaluwe, @g3bk47, @gkogekar, @ischoegl, @jongyoonbae, @lavdwall, @leesharma, @mefuller, @paulblum, @speth, @stijn76, @tpg2114
Cantera 2.5.1
The Cantera development team is pleased to announce the availability of Cantera 2.5.1. There have been 1000 commits to Cantera since the release of Cantera 2.4.0 in August 2018. We have closed or merged more than 250 pull requests and 100 issues. The complete list of changes can be found on the Cantera Wiki page, and a summary of new features, changes, and bugs fixed in this release is included below, with links to the associated Pull Requests on GitHub.
Cantera 2.5 introduces a new input file format, based on the YAML data format. This format supersedes the CTI and XML (sometimes called CTML) formats that Cantera has used for many years. Converter scripts from CTI and XML to YAML (cti2yaml
and ctml2yaml
), as well as from CHEMKIN (CK) format to YAML (ck2yaml
), are provided with this release. You can use these scripts in the same way that the old ck2cti
script was used. All users are encouraged to switch their input files to the new format.
Instructions for installing Cantera 2.5 are available on the Cantera website. Available options include Conda, native installers for Windows and macOS, Ubuntu packages, and compiling from source.
Thank you to the following contributors to Cantera 2.5:
@12Chao, @agarwalrounak, @arghdos, @band-a-prend, @BangShiuh, @bryanwweber, @CyberDrudge, @decaluwe, @dholland88, @g3bk47, @inducer, @ischoegl, @jsantner, @korffdm, @kyleniemeyer, @lavdwall, @lionkey, @manikmayur, @mgashwinkumar, @paulblum, @rwest, @sameshl, @sin-ha, @speth, @spinnau, @ThanasisMattas, @tsikes, @wbessler
Click here to see the complete Changelog
New Features:
- Added a new, YAML-based input file format (#584, #663, #664, #671, #693, #707, #708, #716, #723, #738, #750, #764, #768, #773, #784, #794, #795, #813, #855, #857, #866, #869, #880, #897, #899, #961, #970, #941, #974)
- Add interface for reading and writing 1D Flame and SolutionArray objects from/to HDF5 files (#680, #687, #805, #840, #860, #871, #900, #943, #931)
- Add BinarySolutionTabulatedThermo class, which implements implements tabulated standard state thermodynamics in a binary solution. (#563, #606, #637, #640, #725)
- Introduce C++ Solution class to simplify creation of coupled ThermoPhase, Kinetics, and Transport objects (#696, #735)
- Determine Redlich-Kwong parameters from a database of critical property data (#574, #576,
33e198f
,ebb93cb
) - Make transport property calculations available for pure fluid water phases (#558)
- Make InterfaceKinetics.advance_coverages_to_steady_state available in the Python interface (#592, #610)
- Add functions for returning the phase of matter for ThermoPhase objects (#722, #839)
- Add new ReactorNet::advanceTowards method to combine benefits of both the 'step' and 'advance' methods; see 'reactor3.py' example (#629, #756)
- Enable setting the maximum number of CVODEs steps in the Python interface (#581)
- Add factories for FlowDevice and Wall objects, to enable creation of user-defined derived classes (#632)
- Allow classes derived from StFlow to have additional state variables (#624)
- Add wrappers to make "piecewise-Gibbs" and "NASA9" species thermo objects accessible in Python (#711)
- Add set_equivalence_ratio function to SolutionArray objects (#677)
- Add ability to sort SolutionArray objects (#688)
- Support use of Sundials versions up to 5.7 (
5e22653
, #672, #780, #814, #974) - Add functions for setting species aliases and finding isomers (#714, #876)
- Added 'warn_user' function as a consistent way of issuing warnings from C++ (#741)
- Add get/set equivalenceRatio/mixtureFraction functions to C++ (#851)
- Make getDeltaEnthalpies available in the Matlab interface (#659)
- Add 'TabulatedFunction' class for providing time-varying reactor inputs specified by tabular input (#797)
- Add plug flow reactor example in MATLAB (#701)
- Make liquid-water-IAPWS95 available as a phase model (#921)
- Make species charge information available in Python (#863)
- Add 'kinet...
Cantera 2.5.0b1
Cantera 2.5.0b1
The Cantera development team is pleased to announce the general availability of the first beta for the next release of Cantera, v2.5.0. There have been almost 900 commits to Cantera since the last version, 2.4.0, which was released in August 2018. We have closed or merged more than 200 pull requests and 100 issues. The complete list of changes can be found on the Cantera Wiki page: https://github.com/Cantera/cantera/wiki/Complete-git-log-since-2.4.0
Cantera 2.5.0 introduces a new input file format, based on the YAML data format. This format will eventually replace the CTI and XML (sometimes called CTML) formats that Cantera has used for many years. Converter scripts from CTI and XML to YAML, as well as from CHEMKIN (CK) format to YAML, are provided with this release:
ctml2yaml
cti2yaml
ck2yaml
You can use these scripts in the same way that the old ck2cti
script was used. All users are encouraged to switch their input files to the new format.
This release was made possible by the following contributors: Dave Holland, @12Chao, @BangShiuh, @CyberDrudge, @ThanasisMattas, @agarwalrounak, @arghdos, @band-a-prend, @bryanwweber, @decaluwe, @g3bk47, @ischoegl, @jsantner, @kyleniemeyer, @lavdwall, @lionkey, @manikmayur, @mgashwinkumar, @paulblum, @rwest, @sameshl, @sin-ha, @speth, @spinnau, @tsikes, @wbessler, @korffdm
Cantera 2.4.0
Cantera 2.4.0
Cantera 2.4.0 includes more than 380 commits to the code since 2.3.0, merges more than 70 pull requests, and closes almost 60 issues. In this release, we improved the maintainability of Cantera by removing or deprecating old, untested code, moving the website and Mixmaster to separate repositories, and automating more of the build/testing process. We also added new features to the 1-D reactor code (among other areas), including adding an ionized gas transport class and the IonFlow
and BurnerIonFlame
classes, providing better accessing to callbacks during 1-D solutions, and automatically detecting certain common failure conditions of the 1-D solver. This release of Cantera was made possible by contributions from 14 developers: @speth, @bryanwweber, @BangShiuh, @decaluwe, @wandadars, @jsantner, @arghdos, @rwest, @g3bk47, @awehrfritz, @band-a-prend, @vdevgan, @KyleLinevitchJr, and @MarcDuQuesne.
For installation and compilation instructions for Cantera 2.4.0, please see the directions on the Cantera website. In addition to Conda packages, Windows installers, and Ubuntu packages, this release also features the addition of a pre-compiled Matlab toolbox for macOS users, replacing Homebrew as the prefered method of installing Cantera for Matlab on macOS.
Thanks to a small development grant from NumFOCUS (see more about NumFOCUS below), @bryanwweber and @decaluwe reorganized and restyled the Cantera website. The website has moved to a separate repository, allowing the website content to be updated without modifications to the main Cantera source code. We also tried to make it easy for all of our users to find what they're looking for quickly, from installation instructions and tutorials for beginners, to advanced examples and API documentation for experienced Cantera programmers. The new website also redirects all traffic to HTTPS, ensuring a secure experience for everyone.
Cantera is now officially part of NumFOCUS. NumFOCUS is a 501(c)3 nonprofit dedicated to supporting the open source scientific computing community. If you are interested in learning more about NumFOCUS, please visit their website at https://numfocus.org, or our website at https://cantera.org/community.html#donations.
Cantera 2.4.0 is the last release that will be compatible with Python 2.7. Support for Python 2.7 from the Python Software Foundation will end January 1, 2020. Given the recent release cadence of Cantera, the next major version of Cantera will probably be released very close to that date, so we have made the decision to drop Python 2.7 support for Cantera 2.5.0 and higher.
One notable change to the build requirements for Cantera 2.4.0 is that SCons 3.0.0 or higher must be used to compile the source code. This means that either Python 2 or Python 3 can be used to run SCons. In addition, there are now three options to handle building the Python interface, depending on whether the user wants to build for Python 2 or Python 3. Please check the documentation or run scons help
for more information.
Summary of changes in Cantera 2.4.0
Bugs fixed
- Fix inconstencies and bugs in several
ThermoPhase
derived classes, includingPDSS_IdealGas
,IonsFromNeutralVPSSTP
,PDSS_IonsFromNeutral
,PDSS_HKFT
,LatticePhase
,PDSS_SSVol
,ConstDensityThermo
, andPureFluidPhase
- Preserve constant property pair when multiplying
Quantity
objects - Fix using pure fluids in reactors
- Add temperature dependence of rotational relaxation in transport calculations
- Disable linking to external SUNDIALS libraries when building the Matlab toolbox
Changes to existing capabilities
- Allow instantiation of ThermoPhase derived classes without XML
set_equivalence_ratio
now supports sulfur oxidation- Make all complex object types (ThermoPhase, Kinetics, Transport, Reactor, Domain1D, etc.) objects non-copyable
- Deprecate
FreeFlow
andAxiStagnFlow
classes by moving the relevant functions into theStFlow
class - Allow
convertMech
function to be called multiple times - Remove the requirement for users to have Boost headers installed when building against the Cantera library
- Change the options to build the Python interface, since SCons can be run by Python 3
- Update GTest, fmtlib, SUNDIALS, and Eigen submodule versions
Additions
- Add ion gas transport model, and
IonFlow
andBurnerIonFlame
flame classes - Add C++ OpenMP, Non-Ideal Shock Tube, PSR/WSR, and time-dependent mass flow rate examples
- Add class
AnyMap
- Allow negative reaction orders
- Add unity Lewis number transport model
- Add electron to the built-in elements
- Add
get_equivalence_ratio
function
Click here to see the complete changelog
Full Changelog
Bugs fixed
Thermo/Species/Elements
- Fix issues parsing composition strings with mixtures of commas, colons, and spaces (3f6f580)
- Fix setting mass/mole fractions of phases with only a single species (ed8de04)
- Fix reference state calculations (38d291c, 7b529ac)
- Fix test failures due to inconsistent species addition order (11a0727, #433)
- Fix errors in entropy calculation in
PDSS_IdealGas
(dfb32f0) - Fix and test creation of
IonsFromNeutralVPSSTP
objects (3a11938) - Fix inconsistentices in
PDSS_IonsFromNeutral
(ff46dc9) - Fix
PDSS_HKFT
initialization when only one property is given (2c3512c) - Fix default molar volume in
LatticePhase
(f3ba29f) - Setting the composition with an empty array raises an exception (8a4142d)
- Fix implementation and documentation of
PDSS_SSVol
(ee663c9, a19b2bd, 286217d, be8e51d) - Fix definition of
ConstDensityThermo::standardConcentration
(89fded3, #458, #490) - Preserve constant property pair when multiplying
Quantity
objects (c9b0bce) - Fix
PureFluidPhase
state data consistency (fb68cae, 0417d31)
Kinetics
- Validate balance of surface sites for interface reactions (ac53371, #412)
- Reactions which are declared as duplicate but do not have the corresponding duplicate reaction are errors (0fd2f7c, 2678b57, #389)
- Fix use of
'scale'
and'OneWayFlow'
options inReactonPathDiagram
s (0d982c8, 0249ce8, #378, #424) - Fix how species contributions to reaction paths are handled (3093e6e, 5a0fb57, 092e007, #377, #424)
- Preserve pressure units in
PLOG
reactions when converting from Chemkin to CTI format (7b7aea2, a02753a, #435) - Fix style arguments for reaction path diagrams (b41038f, #463)
- Fix duplicate reaction checking (513b432, 4c489c1, #468)
- Fix failures due to tolerances in some kinetics tests (67aa9eb)
Transport
- Fixes to enable
CK_mix
andCK_multi
mode flags (35aa8be, 435f286, 1b60513) - Add temperature dependence of rotational relaxation (e79cf6f, #547)
0-D Reactors
- Fix using pure fluids in reactors (2ac8a0e, deeaaed, #475, #487)
- Check that contents are Solution objects not Mixtures (a22db9f)
1-D Flames
- Fix handling of domain boundary conditions when the energy equation is not solved (52dbe8c)
- Fix handling of Soret diffusion enabling/disabling with respect to mixture-averaged diffusion approximation (a03afbd, 4bd5e92, fde5051, #511)
CTI/Input files
- Fix file size limit when converting CTI to CTML (0a1257d, #416, #430)
- Fix for reactions with pathologically named third bodies (55a8910, 6d591b8, 44b24ca, #460)
ctml_writer
is more tolerant of non-ASCII characters (0c0a38d)- Fix incorrect entry in
nasathermo.dat
(3933a94, #491) - Fix writing surface reactions to the CTI file when there are no gas-phase reactions (552ba97)
- Fix over-zealous detection of new input file sections (f47e98a)
- Detect badly-formatted values of the 4th Troe coefficient (bde6e05)
- Suppress some output when
quiet=True
(70016b9) - Fix duplicate key check in parseCompString (d091617, #525)
- Fix spurious unexpected output warnings (fd57936)
Examples
- Fix errors and empty figures in IC engine example (6f564e6, 0d01d03)
- Remove extraneous arguments in Matlab example scripts (a31b7d1)
- Remove or fix broken Matlab examples (536158b, 987a247)
Other
- Add explicit dependencies on the
scons build
step forscons test
andscons install
(70e1063, #432) - Fix reproducibility of
add_species_sequential
test (11a0727, #433) - Disable linking to external SUNDIALS libraries when building the Matlab toolbox (c125878, #431, #456)
- Switch SourceForge links in the docs to point to GitHub (d920f2e, #442, #455)
- Fix typos in documentation (05809bb, fec6c34, 35ac1ac, af4ccae, #449)
- Easier debugging of NumPy import error messages during build (3f69f6a)
- Use Trusty Tahr and system Python 3 on TravisCI Linux builds (9e5da87, 45891a2)
- Fix parallel builds of the Matlab toolbox (8312396, #483)
- Remove outdated MacPorts installation instructions (46f8ef5, #496)
- Fix wrong environment variable MATLAB_PATH -> MATLABPATH (d86a7c1, #501)
- Fix broken links in README, clarify PR template, add Gitter, add badges (e052a44, 8de267f, de3ec3d, 0120f2f, #505, #506, #513)
- Fix installing dependencies on Appveyor (39c4103, 0b8f028, b1a010e, #517, #529)
- Add update of git submodules to code checkout instructions (66ba4b5)
- Remove blank documentation page (84acdb1, #518)
- Fix notation for mixture-averaged diffusion coefficient (df6ecb1)
- Fix compilier warning about
m_Faraday_dim
(...
Cantera 2.3.0
Installation Options
- Conda / anaconda packages for Windows, Linux, and macOS via the
cantera
channel. See installation instructions for more details. - Windows binary installers (downloads below; To use the Matlab toolbox on Windows, install both
Cantera-2.3.0-x64.msi
and one of the Python modules. The Python installers are standalone and do not require the base Cantera package. Installers are available Python 2.7, Python 3.4, Python 3.5, and Python 3.6. See detailed instructions for more. - Ubuntu packages for 16.04 (Xenial Xerus) and 16.10 (Yakkety Yak) are available via the PPA at https://launchpad.net/~speth/+archive/ubuntu/cantera. Additional details available here.
- Homebrew formula for macOS. See additonal instructions.
- Download and compile the source code. Full instructions here.
Documentation
Documentation for Cantera 2.3.0 can be found at: http://cantera.github.io/docs/sphinx/html/index.html.
Changes in Cantera 2.3.0
Highlights are listed here. See the full changelog for more.
- Add ability to modify species data for existing Phase objects
- Make species names case-preserving instead of case-sensitive, and allow colons in species names
- Add option for Motz & Wise correction to sticking reactions
- Implement enthalpy of formation sensitivity analysis for reactor networks
- Implement the Cython function
advance_to_steady_state
for reactor networks - Eliminate most known 1D flame solver failures by improving Jacobian evaluation, and using better default initial grids and initial guesses
- Introduce 'auto' option to Sim1D.solve to automatically try multiple initial grids
- Generalize initial profile generation for diffusion flames for arbitrary fuel/oxidizer combinations
- Add general support for calculating adjoint sensitivities for 1D flames
- Add a Twin Premixed Counterflow Flame class and example
- Support conversion of surface mechanism files
- Provide better error message for problematic reaction and thermo entries when converting input files
- Add 'nonreactant_orders' option to allow non-reactant orders
- Allow adding species / reactions from Python
- Add new classes
Quantity
andSolutionArray
to Python - Make Python test suite runnable from an installed copy of the Python module
- Introduced Continuous Integration testing using Travis CI and AppVeyor
- Use Git submodules for Sundials, Eigen, Google Test, and libfmt if system versions are not installed
- Use Sundials and Eigen to eliminate the need for bundled LAPACK
- Added Conda build recipe and made binaries available through anaconda.org
- Add support for Sundials 2.7
- Deprecate unused classes, functions, arguments, and constants (see http://cantera.github.io/dev-docs/doxygen/html/deprecated.html for details)
- Add notices to documentation for classes with no tests or examples (see #267)
- Make clib usable as a pure C (not C++) interface and add tests