Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Reaction Rate Evaluators #87

Closed
ischoegl opened this issue Mar 19, 2021 · 0 comments · Fixed by Cantera/cantera#1181
Closed

Refactor Reaction Rate Evaluators #87

ischoegl opened this issue Mar 19, 2021 · 0 comments · Fixed by Cantera/cantera#1181
Assignees
Labels
work-in-progress An enhancement that someone is currently working on

Comments

@ischoegl
Copy link
Member

ischoegl commented Mar 19, 2021

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


@ischoegl ischoegl added the work-in-progress An enhancement that someone is currently working on label Mar 19, 2021
@ischoegl ischoegl changed the title Refactor Reaction Rate Implementation Refactor Reaction Rate Evaluators Mar 19, 2021
@ischoegl ischoegl self-assigned this Jan 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
work-in-progress An enhancement that someone is currently working on
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant