RMG-Java
RMG-Java copied to clipboard
Feature request: Pressure dependence for small molecules only
For a given temperature and pressure, larger molecules are less likely to exhibit pressure dependent reaction kinetics than small molecules. Also, pressure dependence for large molecules can be very expensive to calculate due to the large number of isomers. For this reason, it makes some sense to allow the user the option of only running pressure dependence for molecules of a certain size or smaller.
I think the implementation would be straightforward. At the point where you would add a pressure-dependent reaction to a network, you instead first look at the total number of atoms involved. If it's above the user-specified threshold, then skip the pressure dependence and just add it to the edge (as if the reaction was a hydrogen abstration or disproportionation). Since each network is defined by molecular formula, using total atoms as the arbiter should work nicely.
Some relevant discussion at doi:10.1021/jp034165g.
I think this shouldn't have any affect on how the reactions are handled numerically. The only difference should how they're stored in objects, the difference being whether they are two reaction objects with their own kinetics, or a single reaction object with multi kinetics.
The warning comes from when we try to combine duplicate reactions into MultiArrhenius or MultiPDepArrhenius objects. As the names imply, only Arrhenius or PDepArrhenius objects are supported. There was some related discussion in ReactionMechanismGenerator/RMG-Py#1341. I think the ideal fix for this might be to create a single MultiKinetics class which could handle any kinetics type.
Just a note, using a MultiKinetics class will probably break the current codes used to output RMG objects as RMS yaml.