@speth speth released this Aug 24, 2018 · 40 commits to master since this release

Assets 13

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, including PDSS_IdealGas, IonsFromNeutralVPSSTP, PDSS_IonsFromNeutral, PDSS_HKFT, LatticePhase, PDSS_SSVol, ConstDensityThermo, and PureFluidPhase
  • 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 and AxiStagnFlow classes by moving the relevant functions into the StFlow 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 and BurnerIonFlame 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 in ReactonPathDiagrams (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

0-D Reactors

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 for scons test and scons 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 (55490de)
  • Fix catching exceptions when checking git commit during build (3fac5f2, c830537)
  • Fix display of information from errors in Python callbacks (d3f49e7)
  • Clean the correct folder after building the minimal Python interface (ff91457)
  • Fix building MSI for Python 3.7 module (af51a61)

Changes to existing capabilities

Thermo/Species/Elements

Equilibrium Solvers

Transport

  • Allow construction of Transport derived classes without XML (4b5af64, 7020fa7)
  • Move simpleTransport test to GTest suite (4934079)

0-D Reactors

  • Make all reactor-related objects non-copyable (d9418bb)

1-D Flames

  • Make all 1-D-related objects non-copyable (279c5c8)
  • Deprecate FreeFlow and AxiStagnFlow classes by moving the relevant functions into the StFlow class (c1067aa, 3ade333, a54ab2f, #546, #548)

CTI/XML/Input Files

  • Make searches for child nodes case insensitive (1bd950f)
  • Improve error messages for invalid (floating point) geometry flags (6bf74d1, #446, #454)

Examples/Samples

  • Remove verbose output from f77 demo wrapper (172e9ff)

Documentation

Other

Additions

Thermo/Species/Elements

  • Allow synonyms for Factory model names (c28ca48)
  • Add electron to the built-in elements (974bbc7, #443)
  • Identify unspecified electrochemical reactions (04be988, #452)
  • Make activity coefficients and activities available (a5b0bdf)
  • Add regression tests for some thermo classes (338b216)
  • Create a default constructor for PDSS objects and avoid unnecessary arguments in the initializers (04cac2b)
  • Show values in setDensity/setTemperature exceptions (ebc478f)
  • Add Cython function to access species viscosity (cc93ce6, #527)
  • Add get_equivalence_ratio function (a9ad75e, #521)
  • Add newSubstance method to create pure fluid objects by name (62c67e4)
  • Allow surface_reactions (not just edge_reactions) to be charge transfer reactions (51f419f, #439)

Transport

1-D Flames

CTI/Input files

Other

Examples/Samples

@speth speth released this Jan 19, 2017 · 420 commits to master since this release

Assets 12

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 and SolutionArray 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
Nov 30, 2016
[CI] Return exit code from 'scons test' to make Appveyor status correct
Resolves #382

@speth speth released this Jun 5, 2015 · 1243 commits to master since this release

Assets 11

New major version. Highlights include:

  • Reformulated multicomponent diffusion calculation to improve 1D solver convergence.
  • Introduction of Species and Reaction classes which can be used to construct and modify ThermoPhase / Kinetics objects on-the-fly, without necessarily using CTI/XML input files. See the new examples extract_submechanism.py and mechanism_reduction.py.
  • Better handling of CTI and XML files: Parsed CTI and XML files are cached based on modification time and file content, and implicit conversions are done without generating .xml files. Phases can be imported directly from XML or CTI strings. Both CTI and XML files can import species and reactions from other CTI or XML files.
  • Enable re-initialization of reactor networks, which improves efficiency for integration with CFD-like codes - see the example surf_pfr.py.
  • Introduction of a simple radiation model for flames (optically thin, gray gas for CO2 and H2O) - see the example diffusion_flame.py.
  • Efficient sensitivity analysis of 1D flame solutions (see flamespeed_sensitivity.py).
  • Added strain rate calculations for diffusion flames (see diffusion_flame_extinction.py and diffusion_flame_batch.py).
  • Added premixed counterflow flame configuration to Python module (see premixed_counterflow_flame.py).
  • Allow Sundials to link to external (optimized) BLAS/LAPACK libraries.
  • Support for Sundials 2.6.
  • Updated Matlab toolbox documentation, which is included in the online HTML documentation.

Downloads available:

May 11, 2015
Bump version to 2.2.0b1

@speth speth released this Apr 6, 2015 · 2163 commits to master since this release

Assets 11

Some of the major improvements since the release of Cantera 2.0 are:

  • A new Cython-based Python interface, with a streamlined API and support for Python 3.2 and higher (as well as Python 2.6 and 2.7)
  • Reformulation of reactor governing equations to improve performance and robustness, especially for larger mechanisms, including the addition of reactor types specifically optimized for ideal gases
  • Improved support for reactor network sensitivity analysis
  • Support for "chemically activated" reaction rate parameterizations
  • Better support for importing "Chemkin"-format mechanisms using ck2cti.py
  • Numerous improvements to performance and robustness of the 1D solver
  • More comprehensive save/restore feature for 1D simulations
  • Test suite coverage of the 1D flame module
  • Support for compilation using Visual Studio 2012
  • Extensive clean-up of Doxygen documentation