Cantera 2.6.0#
Published on May 1, 2022 | Full release on GitHub
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)
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 #1037Added 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 #988Add
set_mixture_fraction
method toSolutionArray
#1242Exposed 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 #1060Update examples to use
h2o2.yaml
instead of GRI 3.0 #1109Prevent inadvertent attribute assignment in
Quantity
#1124Fix issues with composition strings and kinetics model of “None” in
cti2yaml
#1127Deprecate shell setup scripts (
setup_cantera
) #1189Replace deprecated
yaml.safe_load
/ simplify paths #1049Read YAML using C++
newSolution
in Python / access root level data #1129Improve 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, #1231, #1234, #1249, #1255, #1264
Bugs fixed#
Fix Redlich-Kwong partial molar properties #1218
Fix pressure dependence in
IdealSolidSolnPhase::getPartialMolarEnthalpies
#1087Fix evaluation of delta-star polynomials #1125
Consistently use physical concentrations when calculating third body and falloff reaction rates, for both specifically enumerated efficiencies and generic third body colliders #968
Add check for sticking coefficient more than 1 #1038
Fix typo in
equivalenceRatio.py
that resulted in printing wrong results #1173Fix memory error when deallocating Python reaction rate wrappers #1030
Prevent segmentation fault when initializing standalone Reactor objects #1063
Fix extinction temperature definition in
diffusion_flame_extinction.py
example #1066Fix handling of ‘CK_Multi’ transport model in flame simulations #1069
Fix issues with import of
SolutionArray
from CSV #1074Fix
SolutionArray.append
#1086Fix 1D solver errors when reporting singular Jacobian and use of non-default tolerances after automatic grid expansion #1103
Suppress output from
setEnergy.m
#1106Fix using reactors with both surface and gas phase chemistry with YAML input #981
Fix saving 1D output when
radiative_heat_loss
is enabled #993Fix CTI to YAML conversion for
transport='None'
#997Fix handling of CK mechanisms with ‘+M’ in PLOG reaction equations #1252
Fix detection of skipped/undeclared species in three body reactions #1027
Fix invalid unchecked cast to
StFlow
#1226Fix
SolutionArray
extra slice #1204Check for valid component name when setting reactor advance limits #1215
Fix incorrect temperature bounds and missing entries in
NASA_condensed.yaml
#1248, #1250Fix logic error in
CanteraTest.assertNear
#1120Fix various compilation / installation issues #980, #1011, #1052, #1057, #1100, #1105, #1107, #1110, #1116, #1123, #1148, #1161, #1168, #1171, #1265
The complete list of changes can be found here.
Installation#
Instructions for installing Cantera 2.6 are available on the Cantera website. Available options include Conda; pip; native installers for Windows and macOS; packages for Ubuntu, Fedora/Enterprise Linux, Gentoo, and FreeBSD; and compiling from source.
Contributors#
This release was made possible by the following contributors: @anthony-walker, @band-a-prend, @BangShiuh, @blackrabbit17, @bryanwweber, @12Chao, @chinahg, @DavidAkinpelu, @d-e-t, @decaluwe, @dschmider-HSOG, @g3bk47, @gkogekar, @ischoegl, @jongyoonbae, @lavdwall, @leesharma, @mefuller, @paulblum, @santoshshanbhogue, @speth, @stijn76, @tpg2114