Published June 25, 2026
| Version v1.2.0
Software
Open
pyMARS
Authors/Creators
Description
[1.2.0] - 2026-06-24
Added
- Added laminar flame speed support: freely-propagating
FlameSimulation, thelaminar-flame-conditionsinput block, and laminar flame speed as an error metric, enabling reductions driven by flame data alone or combined with autoignition (based on work by Cailin Moore, #82) - Added
BaseSimulationabstract base class with shared gas setup and thermochemical-profile sampling, givingIgnitionSimulationandFlameSimulationa common interface - Added automatic retention of fuel, oxidizer, and reactant species from the initial conditions so they are never removed during reduction (fixes #12; based on work by Katherine Bronstein, #80)
- Added
soln2yamlmodule for writing CanteraSolutionobjects to YAML files, delegating to Cantera's built-inwrite_yaml()method - Added YAML equivalents of all test asset models (
artificial-mechanism.yaml,model-third-bodies.yaml, reduced GRI 3.0 models) - Added conda recipe (
conda.recipe/meta.yaml) updated for Python 3.10+ and Cantera 3.x - Added GitHub Actions CI workflow with matrix testing on Python 3.10–3.14 (Linux) and Python 3.14 (macOS, Windows), with Coveralls coverage reporting
- Added GitHub Actions publish workflow for PyPI (OIDC trusted publishing) and Anaconda.org; conda publish triggers automatically on
v*tags after CI passes - Added GitHub Actions docs workflow that deploys to GitHub Pages after CI passes on
main
Changed
- Autoignition simulations now use Cantera mole reactors (
IdealGasMoleReactor/IdealGasConstPressureMoleReactor) with an adaptive preconditioner, accelerating integration of large models (based on work by Anthony Walker, #84) - Reduction drivers (
run_drg,run_drgep,run_pfa, and sensitivity analysis) now accept laminar flame conditions and combine ignition and flame error metrics and sampled state data uniformly, regardless of simulation type - Input files now require at least one of
autoignition-conditionsorlaminar-flame-conditions(previously autoignition was mandatory) - Renamed the
Simulationclass toIgnitionSimulationand consolidated the base, ignition, and flame simulation classes into a singlesimulation.py trim()now preserves the original model's transport model so reduced models remain usable for laminar flame simulations- Minimum Python version raised from 3.6 to 3.10
- Updated Cantera dependency to 3.x; updated all API calls for Cantera 3.x (reaction type strings, stoichiometric coefficient property names, reactor constructor, phase/kinetics identifiers)
- Replaced
.ctiformat throughout with Cantera's YAML format;soln2cti.pyremoved and replaced bysoln2yaml.py - Replaced
pkg_resourceswithpathlibandimportlib.metadatafor Python 3.14 compatibility - Switched build system from setuptools to hatchling
- Model file references in CLI, documentation, and examples updated from
.ctito.yaml compare_modelsnow usesnp.isclose()for floating-point rate parameter comparisons and evaluates thermodynamic properties at reference temperatures instead of comparing raw polynomial coefficientsdocs/conf.pyupdated to useimportlib.metadatafor version detection; removed Travis CI references; updated Cantera intersphinx URL to 3.x docs
Fixed
- Fixed bug in soln2ck.py where the reaction high rate was being used instead of the reaction low rate
- Fixed Cantera 3.x deprecation warnings:
reactor.thermo→reactor.phase,IdealGas/GasKinetics→ideal-gas/bulk, reactorclone=False - Removed broken xfail and skip-decorated tests that referenced undefined functions
Notes
Files
Niemeyer-Research-Group/pyMARS-v1.2.0.zip
Files
(557.0 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:550823336891d868876b0abbb7d67131
|
557.0 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/Niemeyer-Research-Group/pyMARS/tree/v1.2.0 (URL)
Software
- Repository URL
- https://github.com/Niemeyer-Research-Group/pyMARS