SurfaceArrheniusBM Kinetics#2894
SurfaceArrheniusBM Kinetics#2894sevyharris wants to merge 5 commits intoReactionMechanismGenerator:mainfrom
Conversation
Surface arrhenius inherits from regular arrhenius, so it's actually handled further up in the code (line 331) and this should be deleted to prevent confusion
Add SurfaceArrheniusBM class to correspond to Cantera's InterfaceBlowersMaselRate. This also implements to_cantera for the gas-phase ArrheniusBM
Regression Testing Results
Detailed regression test results.Regression test aromatics:Reference: Execution time (DD:HH:MM:SS): 00:00:00:52 aromatics Passed Core Comparison ✅Original model has 15 species. aromatics Failed Edge Comparison ❌Original model has 106 species. Non-identical kinetics! ❌
kinetics: DetailsObservables Test Case: Aromatics Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! aromatics Passed Observable Testing ✅Regression test liquid_oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:51 liquid_oxidation Passed Core Comparison ✅Original model has 37 species. liquid_oxidation Failed Edge Comparison ❌Original model has 214 species. DetailsObservables Test Case: liquid_oxidation Comparison✅ All Observables varied by less than 0.100 on average between old model and new model in all conditions! liquid_oxidation Passed Observable Testing ✅Regression test nitrogen:Reference: Execution time (DD:HH:MM:SS): 00:00:00:58 nitrogen Failed Core Comparison ❌Original model has 41 species. nitrogen Failed Edge Comparison ❌Original model has 133 species. Non-identical thermo! ❌
thermo: Thermo group additivity estimation: group(O2s-CdN3d) + group(N3d-OCd) + group(Cd-HN3dO) + ring(oxirene) + radical(CdJ-NdO) Non-identical kinetics! ❌
kinetics: DetailsObservables Test Case: NC Comparison✅ All Observables varied by less than 0.200 on average between old model and new model in all conditions! nitrogen Passed Observable Testing ✅Regression test oxidation:Reference: Execution time (DD:HH:MM:SS): 00:00:01:41 oxidation Passed Core Comparison ✅Original model has 59 species. oxidation Passed Edge Comparison ✅Original model has 230 species. DetailsObservables Test Case: Oxidation Comparison✅ All Observables varied by less than 0.500 on average between old model and new model in all conditions! oxidation Passed Observable Testing ✅Errors occurred during observable testing
WARNING:root:Initial mole fractions do not sum to one; normalizing.
|
Motivation or Problem
There is no SurfaceArrheniusBM kinetics class to match Cantera's InterfaceBlowersMaselRate, and this makes it difficult to convert from RMG to Cantera surface mechanisms that use Blowers-Masel.
Also, the regular to_cantera() call for ArrheniusBM reactions doesn't work, so this fixes that.
Description of Changes
Testing
I added tests which includes round-trip conversion from
SurfaceArrheniustoSurfaceArrheniusBMand back toSurfaceArrheniusI will try generating some kinetics family trees to make sure I didn't change anything numerically in SurfaceArrhenius
I will try using this to convert a mechanism that mostly uses SurfaceArrhenius into SurfaceArrheniusBM and see if the simulation results change
I also need to do a bit more unit testing in Cantera to make sure I'm getting the same answer from both RMG and Cantera objects. I should probably include these as unit tests too.
Reviewer Tips
Reminding myself that this one changes some .pyx files, so don't forget to rebuild RMG!