Detailed kinetic mechanisms (for example from RMG Mechanism Generator) can have hundreds of species and thousands of reactions, too many to simulate quickly. Mechanism Reduction removes species and reactions that don't matter for the conditions you care about, keeping ignition delay and laminar flame speed within the error you allow. It uses pyMARS and Cantera, on CPU.
How it works
- You give the parent mechanism, the conditions to preserve, and an error limit.
- pyMARS runs a graph-based reduction:
DRGEP(the default),DRG, orPFA. Each ranks species by how much they affect the target species, and removes the least important while the error stays undererror_limit_pct. - Optionally,
sensitivity_analysis(greedyorinitial) then tries removing more species one at a time, checking the error after each.
Targets: autoignition delay at up to 20 conditions (ignition_conditions) and laminar flame speed at up to 5 (flame_conditions); at least one condition is required. Each condition gives temperature (K), pressure (Pa), and either an equivalence ratio with fuel and oxidizer or an explicit reactant mixture.
Inputs
- The parent mechanism: built-in
gri30orh2o2(mechanism_id), or your own as Cantera YAML or a single CHEMKIN file with thermodynamic data, uploaded or from an artifact. Up to 1,000 species. target_species(up to 10) that drive the reduction, typically fuel and oxidizer, andretained_species(up to 100) to always keep, such as diluents.
Outputs
| File | Contents |
|---|---|
mechanism/primary.yaml | The reduced mechanism, ready for Cantera |
errors.csv | Ignition delay (s) and flame speed (m/s) for the parent and reduced mechanisms at every condition, and the error |
removed.csv | Every species and reaction removed |
pymars_input.yaml | The exact pyMARS input, to reproduce the run yourself |
summary.json | Method, limits, species and reaction counts, and the worst condition |
Related tools
Generate mechanisms with RMG Mechanism Generator, and simulate the reduced one in Cantera.