RMG/Cantera compatibility for Plog reactions
まだ誰も着手していません。
評価
調査の方向性
添付された最小限の例の Jupyter ノートブックと Chemkin/Cantera 入力ファイルから始め、コンテキストについて issue #2288 を読んでください。報告された圧力と温度において、重複反応を個別に記述する表現と、PLOG を組み合わせた表現を比較します。選択した表現が Cantera の検証に合格し、期待される反応速度を維持できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Bug Description
This isn't necessarily an RMG/cantera bug, it is just a difference of how reactions are interpreted in each.
For plog reactions, RMG represents multiple plog reactions in chemkin by marking them as "duplicates":
! Reaction index: Chemkin #8; RMG #5
HO2(5)+CH3(13)=O2(6)+CH4(15) 1.000e+00 0.000 0.000
PLOG/ 0.001 9.300e+10 0.000 0.000 /
PLOG/ 1.000 8.000e+10 0.000 0.000 /
PLOG/ 3.000 7.000e+10 0.000 0.000 /
PLOG/ 10.000 3.700e+12 0.000 12.518 /
PLOG/ 20.000 2.900e+12 0.000 11.922 /
PLOG/ 50.000 1.500e+12 0.000 13.909 /
PLOG/ 80.000 1.500e+11 0.000 1.987 /
PLOG/ 100.000 1.500e+11 0.000 1.987 /
PLOG/ 650.000 2.300e+11 0.200 4.968 /
PLOG/ 2000.000 3.700e+07 1.340 2.186 /
DUPLICATE
! Reaction index: Chemkin #9; RMG #5
HO2(5)+CH3(13)=O2(6)+CH4(15) 1.000e+00 0.000 0.000
PLOG/ 0.001 7.100e+05 1.800 1.133 /
PLOG/ 1.000 8.800e+05 1.770 0.954 /
PLOG/ 3.000 2.900e+05 1.900 0.397 /
PLOG/ 10.000 9.300e+07 1.100 0.000 /
PLOG/ 20.000 4.500e+07 1.200 0.000 /
PLOG/ 50.000 5.800e+06 1.500 0.000 /
PLOG/ 80.000 2.500e+05 1.900 0.000 /
PLOG/ 100.000 1.900e+05 1.940 0.000 /
PLOG/ 650.000 7.000e+05 1.700 0.298 /
PLOG/ 2000.000 0.000e+00 0.000 0.000 /
DUPLICATE
the above mechanism can be converted to a cantera yaml file, but attempting to use it in a cantera reactor will give the following message:
CanteraError:
*******************************************************************************
CanteraError thrown by addReactions:
*******************************************************************************
InputFileError thrown by PlogRate::validate:
Error on line 225 of ./chemkin_error.yaml:
Invalid rate coefficient for reaction 'CH3(13) + HO2(5) <=> CH4(15) + O2(6)'
at P = 2.0265e+08, T = 200.0
at P = 2.0265e+08, T = 500.0
at P = 2.0265e+08, T = 1000.0
at P = 2.0265e+08, T = 2000.0
at P = 2.0265e+08, T = 5000.0
at P = 2.0265e+08, T = 10000.0
| Line |
| 220 | - {P: 80.0 atm, A: 1.5e+11, b: 0.0, Ea: 1.987}
| 221 | - {P: 100.0 atm, A: 1.5e+11, b: 0.0, Ea: 1.987}
| 222 | - {P: 650.0 atm, A: 2.3e+11, b: 0.2, Ea: 4.968}
| 223 | - {P: 2000.0 atm, A: 3.7e+07, b: 1.34, Ea: 2.186}
| 224 | note: 'Reaction index: Chemkin #8; RMG #5'
> 225 > - equation: HO2(5) + CH3(13) <=> O2(6) + CH4(15) # Reaction 9
^
| 226 | duplicate: true
| 227 | type: pressure-dependent-Arrhenius
| 228 | rate-constants:
*******************************************************************************
*******************************************************************************
the PLOG/ 2000.000 0.000e+00 0.000 0.000 / line is what causes the error. Cantera evaluates the reactions separately at a number of temperatures and pressures as part of it's validation procedure. In order for this representation to be interpreted at all, the above line needs to be commented out.
This reaction can alternatively be represented as follows, which will yield no errors:
! Reaction index: Chemkin #8; RMG #5
HO2(5)+CH3(13)=O2(6)+CH4(15) 1.000e+00 0.000 0.000
PLOG/ 0.001 9.300e+10 0.000 0.000 /
PLOG/ 0.001 7.100e+05 1.800 1.133 /
PLOG/ 1.000 8.000e+10 0.000 0.000 /
PLOG/ 1.000 8.800e+05 1.770 0.954 /
PLOG/ 3.000 7.000e+10 0.000 0.000 /
PLOG/ 3.000 2.900e+05 1.900 0.397 /
PLOG/ 10.000 3.700e+12 0.000 12.518 /
PLOG/ 10.000 9.300e+07 1.100 0.000 /
PLOG/ 20.000 2.900e+12 0.000 11.922 /
PLOG/ 20.000 4.500e+07 1.200 0.000 /
PLOG/ 50.000 1.500e+12 0.000 13.909 /
PLOG/ 50.000 5.800e+06 1.500 0.000 /
PLOG/ 80.000 1.500e+11 0.000 1.987 /
PLOG/ 80.000 2.500e+05 1.900 0.000 /
PLOG/ 100.000 1.500e+11 0.000 1.987 /
PLOG/ 100.000 1.900e+05 1.940 0.000 /
PLOG/ 650.000 2.300e+11 0.200 4.968 /
PLOG/ 650.000 7.000e+05 1.700 0.298 /
PLOG/ 2000.000 3.700e+07 1.340 2.186 /
PLOG/ 2000.000 0.000e+00 0.000 0.000 /
The two representations (2 reactions with the 2000 atm rate commented out vs 1 reaction) yield different results for rates in cantera at 2000 atm (see minimal example for code used to generate this:)
rate not equal at pressure: 2000.0 and temperature 500
combined rate expression: 1007315.6839752827 kmol/cm^3/s ; separate rate expression : 2201080.556622974 kmol/cm^3/s
How To Reproduce
I have attached a minimal example with a jupyter notebook and chemkin/cantera input files.
Expected Behavior
I think it requires some thought, but I believe the "combined" method is how we want to represent reactions before we port them to Cantera.
Installation Information
Describe your installation method and system information.
- macOS 10.15.7
- Installed from source, with anaconda
- RMG version: 3.0.0-1208-gf8b136e26
Additional Context
this came up in #2288, you can refer to that for additional context.
see below for minimal example:
- 主要言語
- Python
- スター
- 540
- フォーク
- 266
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ReactionMechanismGenerator/RMG-Py のほかの issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
ReactionMechanismGenerator/RMG-Py#3014 ·
-
Eckart.calculate_tunneling_function: cancellation in 1 - ratio and missing cos branch for small barriers対応中かも @sectio-aurea-q が 14 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
ReactionMechanismGenerator/RMG-Py#3019 ·
-
Arkane ORCA parser misclassifies oblique diatomic OH as a nonlinear rotor due to exact-zero inertia test対応中かも @Mohit-Ak が 13 日前に担当しました。 オープン
難易度 3/5 半日 初心者へのやさしさ 52/100
ReactionMechanismGenerator/RMG-Py#3016 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
ReactionMechanismGenerator/RMG-Py#3015 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
ReactionMechanismGenerator/RMG-Py#3008 · コメント 2 件 ·
ReactionMechanismGenerator/RMG-Py の issue をすべて見る
似ている issue
-
needs-area-label
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 2 日以内に返信
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Official-Space-AI/OpenPhysGraspGen#114 ·
メンテナーはふだん 2 日以内に返信
-
changelog investigate
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
ramnes/notion-sdk-py#441 ·
-
qa_bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NVIDIA-NeMo/Gym#5644 ·
メンテナーはふだん 2 日以内に返信
-
BUG: catalog database credentials printed to logs at startup対応中かも @cjboyle が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信