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

RMG/Cantera compatibility for Plog reactions #2428

Open
ChrisBNEU opened this issue May 8, 2023 · 3 comments
Open

RMG/Cantera compatibility for Plog reactions #2428

ChrisBNEU opened this issue May 8, 2023 · 3 comments
Labels
bug bug which will never be closed by the actions bot

Comments

@ChrisBNEU
Copy link
Contributor

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:

chemkin_error.zip

@github-actions
Copy link

github-actions bot commented Aug 7, 2023

This issue is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant issue, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Aug 7, 2023
@ChrisBNEU
Copy link
Contributor Author

this is still relevant.

@ChrisBNEU ChrisBNEU removed the stale stale issue/PR as determined by actions bot label Aug 7, 2023
Copy link

github-actions bot commented Nov 6, 2023

This issue is being automatically marked as stale because it has not received any interaction in the last 90 days. Please leave a comment if this is still a relevant issue, otherwise it will automatically be closed in 30 days.

@github-actions github-actions bot added the stale stale issue/PR as determined by actions bot label Nov 6, 2023
@JacksonBurns JacksonBurns added bug bug which will never be closed by the actions bot and removed stale stale issue/PR as determined by actions bot labels Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug bug which will never be closed by the actions bot
Projects
None yet
Development

No branches or pull requests

2 participants