VlachosGroup / openmkm

Opensource software to model heterogeneous catalytic reactions. Based on Cantera
MIT License
14 stars 10 forks source link

Why are Hrxn.out values pressure sensitive? #42

Closed MaxRCohen closed 2 years ago

MaxRCohen commented 4 years ago

I ran an ammonia model at 1atm and then ran it at 100 atm. The Hform.out values are all the same between the runs, but the Hrxn.out values change. The biggest change is for this reaction: At 1atm: -9.002899e-02 NH(T) + RU(T) <=> H(T) + N(T) + RU(B) At 100 atm: -7.910262e-02 NH(T) + RU(T) <=> H(T) + N(T) + RU(B) All species involved in these reactions are surface species, which don't even have their Sform.out values affected by pressure.

Why do the Hrxn.out values change when the Sform.out and Hform.out values are identical?

Caviness paths with relevant MKMS: 1atm location: /work/ccei_biomass/users/maxrc/MKM/openmkm/NH3_1atm 100atm location: /work/ccei_biomass/users/maxrc/MKM/openmkm/NH3_100atm

MaxRCohen commented 4 years ago

Hi @mbkumar, any progress on understanding this one?

mbkumar commented 4 years ago

Hello Max, Formation enthalpy of RU(B) at 100 atm is 0.0109264 (dimensionless). Formation enthalpy of RU(B) at 1 atm is 0.0

The reaction has RU(B) as participating species, which is a bulk species and not surface species.

MaxRCohen commented 4 years ago

Hi @mbkumar, thank you for catching this!

My follow up question is what is the bulk species RU(B) changing its Hform value with pressure? It's NASA polynomial is composed of coefficient of 0, the same as RU(S), so I do not understand why there is pressure dependence. I would also think physically that there should not be pressure dependence.

mbkumar commented 4 years ago

I'll look into it and get back to you.

Bharat

On Wed, May 27, 2020, 7:38 PM Max Cohen notifications@github.com wrote:

Hi @mbkumar https://github.com/mbkumar, thank you for catching this!

My follow up question is what is the bulk species RU(B) changing its Hform value with pressure? It's NASA polynomial is composed of coefficient of 0, the same as RU(S), so I do not understand why there is pressure dependence. I would also think physically that there should not be pressure dependence.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/VlachosGroup/openmkm/issues/42#issuecomment-635000242, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA62VEAKHU7IUT2GPL2O32LRTWQABANCNFSM4NA7CV2Q .

mbkumar commented 4 years ago

Hello @MaxRCohen I looked into it. The enthalpy coming from NASA polynomials is calculated at ref pressure, which is 1 atm. At pressures different from ref pressure, there is a pressure related correction to the enthalpy.

MaxRCohen commented 4 years ago

Hi @mbkumar, could you share this pressure correction term? We should probably add it to the documentation. Also, do you know why this pressure correction applies to the bulk and not to the surface species?

mbkumar commented 4 years ago

Hello Max,

The way gas phase and solid phase species are treated is different from that of surface phase species. The former two can be compressed and this compression contributes to enthalpy. Out of the former two, gas phase species can be compressed by a lot hence their enthalpy is highly dependent on pressure. For solid phase species, compressibility is low, so pressure related enthalpy is small.

The correction term is (P-P_ref) * molecular_wt / density. Divide by RT to get dimension-less value.

Bharat

On Fri, May 29, 2020 at 9:37 AM Max Cohen notifications@github.com wrote:

Hi @mbkumar https://github.com/mbkumar, could you share this pressure correction term? We should probably add it to the documentation. Also, do you know why this pressure correction applies to the bulk and not to the surface species?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/VlachosGroup/openmkm/issues/42#issuecomment-635976991, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA62VEEDXKBYRU2NKXJJ3TDRT63DBANCNFSM4NA7CV2Q .

--

Bharat Medasani

Computational Scientist Delaware Energy Institute University of Delaware

MaxRCohen commented 4 years ago

Hi @mbkumar,

To my knowledge, this approach is different from Chemkin's. Chemkin will use the bulk species species to balance the sites of the reaction, but it will not effect the thermodynamics of the reactions (that's why we set all the NASA terms to 0).

This decision to allow the bulk species to effect the thermodynamics based on the pressure warrants careful consideration before implementing it.

mbkumar commented 4 years ago

Agreed. I am going to check the cantera's implementation of surface and gas phase kinetics step by step and see if they are using any non-standard state terms anywhere.

skasiraj commented 2 years ago

Why do the Hrxn.out values change when the Sform.out and Hform.out values are identical?

@MaxRCohen, after investigation we attribute this to the discrepancy the calculation of enthalpy of Ru(B) vs Ru(T) species at elevated pressures or P != P_ref = 1atm. When we estimate Ru(B) enthalpy at a reference pressure of 1 atm then the values of Hrxn.out should be identical. Please see below for further information. If you don't have further questions I will close this issue.

Resolution: Use of current version of the openmkm branch of mbkumar/cantera: mbkumar/cantera and replace the StoichSubstance with RefStateStoichSubstance in the input file thermo.xml. This will activate this new thermodynamic model and resolve this issue.

Explanation: We added a new Thermodynamic model called RefStateStoichSubstance to re-estimate 'StoichSubstance` model thermodynamic parameters at reference pressure of 1 atm. such as Ru(B). In this new model the reaction deltas of Entropy and Gibbs free energy are calculated at the reference pressure of 1 atm. These changes are added to the openmkm branch of mbkumar/cantera. For more information please see https://github.com/mbkumar/cantera/pull/1

Edits: 11/01/21: Replaced 1 bar with 1 atm, in the description above. Cantera overrides the reference pressure present in the input "xml" file to 1 atm. So P = 1 atm is used as a reference state.

MaxRCohen commented 2 years ago

No further questions from me, it makes sense that the enthalpies should be identical (and therefore balanced). Thank you for investigating this aspect.