Skip to content

Refactor Reaction Rate Evaluators #87

@ischoegl

Description

@ischoegl

Abstract

Following #63 (and based on comments in #79), a new framework for reaction factories and reaction rate evaluators (MultiRateBase) is now introduced with Cantera/cantera#982. Once fully implemented, the new framework will allow for a unified handling that avoids the rigid Rate1 templates, and eliminates the need for FalloffFactory, etc..

Motivation

Describe the need for the work being done:

  • Simplify handling of reaction rates
  • Replace hard-coded reaction rate implementation
  • Simplify implementation of derivatives/Jacobians
  • Improve API handling (take full advantage of AnyMap serialization)

Description

An intermediate Reaction3 class allows for a clean deprecation of reaction types that use the old framework; until the transition is complete (Cantera 3.0?), both will remain fully functional. The refactoring is planned to involve multiple phases:

  1. BulkKinetics: use existing MultiBulkRates rate evaluator to handle replacement classes, and deprecate current approaches

    a. PR to replace everything except FalloffReaction, i.e. create ElementaryReaction3, ThreeBodyReaction3, ... see Refactor reaction rate evaluators cantera#995
    b. PR’s to update infrastructure … see Proof-of-concept: Modify reaction rates in memory cantera#1051 (modification of rate parameters in memory), Reaction rate factories cantera#1061 (rate factories), Make rate constant calculation consistent with Kee, et al. cantera#1084 (resolve role of M), Small fixes and improvements / sparse coefficient matrices cantera#1088 (remove some inconsistencies of API's)
    c. PR to replace FalloffReactions and associated Falloff and FalloffFactory classes, i.e. LindemannFalloff, TroeFalloff, SRIFalloff ... see Wrap up GasKinetics cantera#1101

  2. InterfaceKinetics: a new MultiInterfaceRates rate evaluator will require some discussion prior to implementation

    a. PR to streamline ... see Preamble to InterfaceKinetics refactoring cantera#1184
    b. Once everything is fully ported, deprecated classes (and associated handlers) can be removed and the '3' can be dropped from names of all replacement classes. ... see Refactor interface kinetics cantera#1181

References

The following issues/PR's are tagged as there may be synergies and/or repercussions


Metadata

Metadata

Assignees

Labels

work-in-progressAn enhancement that someone is currently working on

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions