Cantera 2.5.1#
Published on February 12, 2021 | Full release on GitHub
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
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 coupledThermoPhase
,Kinetics
, andTransport
objects (#696, #735)Determine Redlich-Kwong parameters from a database of critical property data (#574, #576,
33e198f7e
,ebb93cb5a
)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
andWall
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
andNASA9
species thermo objects accessible in Python (#711)Add
set_equivalence_ratio
function toSolutionArray
objects (#677)Add ability to sort
SolutionArray
objects (#688)Support use of Sundials versions up to 5.7 (
5e226535d
, #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
kinetics_species_name
andkinetics_species_names
functions to Python interface (5601ee906
)Added
list_data_files
function to Python module (#589)Add
fast_fail_tests
option to SCons (#772)Add some functions which were missing from the Fortran interface (#828, #858, #870)
Provide
const
versions of certain functions (#850,9aa507a09
)Expand
~
as user homedir shortcut when adding data directories (ca8700fdd
)
Changes to existing features#
Update physical constants based on 2018 CODATA values, and atomic weights to 2018 IUPAC/CIAAW values (#653)
Deprecated some redundant or rarely-used classes and functions. See the deprecation lists for C++ and Python / Matlab / Input files. (#580, #588, #645, #643, #660, #733, #735, #762, #787, #790, #806, #815, #864,
35be561d9
,27d9b6413
)Build and test the sample programs / scripts as part of the CI process (
1ec9ce2c0
, #649, #776, #874, #883, #905, #923, #927)Improve handling of phases where the intrinsic state variables are not temperature and density (#720)
Improve detection and handling of errors in Chemkin input files (#585,
b2acc43a8
,4f4a2bd07
,d04fd8cc3
)Consolidate and report all errors when adding reactions, instead of just failing on the first one (#903, #946)
Use ‘Q’ instead of ‘X’ for the quality (vapor fraction) of two-phase mixtures in Python (#719)
Always use temperature of the “reacting” phase for interface kinetics (
6c82b61c3
)Make interface for setting parameters for Valves and PressureControllers more intuitive (#667, #682)
Add N2 to
h2o2.yaml
(#959)Make CVODES integrator
max_time_step
a property in the Python module (#731)Use experimentally-derived O2/O2- collision integral in ionized flames (#552)
Consistently use
CanteraError
in Python examples (#596,05eaa0a5e
)Add option to use case-sensitive species names (#689)
Treat deprecation warnings issued from Python and C++ consistently (#796)
Improve sample build scripts on maCOS (#612)
Updated the
diamond_cvd.py
example to include plotting the output (#630)Make GRI-3.0 mechanisms consistent with latest online version (#718)
Follow Python naming convention for arguments to
ThermoPhase.equilibrate
(#684)Remove unused Chemkin input files from the source distribution (#799)
Move
heat_release_rate
method to PythonKinetics
class (#810)Automatically add
negative_A
option for third body reactions when converting from Chemkin input (#822)Allow negative pre-exponential factor for falloff reactions (#868)
Search current working directory before built-in data directories when using Python (#792)
Check for additional invalid string-to-double conversions when parsing composition strings (
84535483f
)The default branch for the Cantera Git repository is now named
main
(#890)Include more significant digits for Redlich-Kwong coefficients when converting from CTI to XML (
ec7f77943
)
Bugs fixed#
Fixed various compilation issues on specific platforms and with certain SCons/compiler options (#561, #572, #601, #648, #661, #674, #676, #685, #742, #765, #779, #803, #824, #879, #891, #918, #960, #962, #973,
46b7cf180
)Fix handling of local quantity units rate for Chebyshev rate constants when converting Chemkin input files (#600)
Fix setting of Soret and multicomponent diffusion options after exceptions when using the
auto
option toSim1D.solve
(#631)Disable free flame domain width check when
auto=False
(#690)Allow setting beta = 0 for electrochemical reactions (#955)
Fix Redlich-Kwong phase to not use the element potential equilibrium solver (#898)
Fix erroneously-rounded transport coefficients in input files derived from GRI 3.0 (#598)
Use correct phase state after
Reactor
mass flow rate evaluation (#651)Avoid NaN in entropy with small negative mass fractions (#686)
Fix conversion of Chemkin input files with surface reactions with explicit reverse rates (#754)
Fix conditional property updates in
IonGasTransport
(#568)Fix Chebyshev rate evaluation with only 1 point in T or P (#706)
Check for non-existent species in reaction orders when adding reactions (
e4362d37e
)Fix various edge cases for saturated
PureFluid
states (#907)Fix comparisons of non-numeric text in
test_problems
(#785)Prevent overwriting of pre-existing extra
SolutionArray
columns (#820)Prevent erroneous creation of standalone
Kinetics
andTransport
objects in Python (#845)Ensure that the mass flow rate returned by
FlowDevice
objects is correct after a call toReactorNet::advance
(#886)Fix indexed assignment of ‘extra’ columns in
SolutionArray
(#838)Fix handling of reaction units settings not on last line when convert Chemkin input files (
540777c32
)Fix over-zealous detection of section ‘end’ labels when converting Chemkin input files (
e3424d8ed
)Fix building and installing the minimal Python package (#928, #974)
Check for a valid species index in
ThermoPhase::species()
(#949)Fix some corner cases in
Sim1D::setFixedTemperature
(#936)Retain user-specified products in counterflow premixed flame when using “auto” option (
b63354447
)Fix refinement check in
ic_engine.py
example (d9b95b2ef
)Fix issues with Blasius BVP example, and install it with other C++ samples (
dc0904027
,600580ead
,c26db356e
,b9a5913af
,22efbe25d
,8c213da93
)
Documentation updates#
Improve “offline” builds of API documentation (#562)
Document required versions of Cantera and dependencies for Python examples (#729, #756)
Update
AUTHORS
list to include authors from all Cantera organization repos (#573)Fix various typos and other issues (#591, #627, #636, #673, #709, #726, #744, #770, #771, #781, #790, #793, #939,
50997a165
,9f5dfbdb1
,442433ad3
, #975, #976)