-
Notifications
You must be signed in to change notification settings - Fork 244
Description
Motivation or Problem
Currently, RMG applies implicit solvation corrections to all species in the solvent phase. However, in some cases, species thermochemistry is obtained from DFT calculations that already include explicit solvation effects. Applying an additional implicit correction to these species would result in double counting, reducing the accuracy of the model. This change would allow users to opt out of solvation corrections on a per-species/library basis, ensuring more accurate and flexible thermochemistry handling.
Desired Solution
I've opened #2818 but it's still just a draft at this point. Since the functions used to generate thermo properties take solvent_name
as an input parameter, IMO the proper way to do this is creating a dummy solvent with zero effects, and use it for the excluded species.
For input file processing I added two more attributes solvation_excluded_species
and solvation_excluded_libraries
. I then need to make a database of species that are in these two lists although I'm not sure not to implement that yet.
Then when a new species thermo is generated (in CoreEdgeReactionModel.generate_thermo
, an isomorphism check (to all species in the excluded species database) is performed to determine whether the dummy solvent should be used. I'm not sure if this will create a performance bottleneck. Is a SMILES string check sufficient?
The alternative is performing this check at the last level (in thermoengine.process_thermo_data
) so only liquid-phase species are considered, but that would require making the database of excluded species a global variable and I'm not sure about RMG's policy with the use of global variables (potential memory safety problems?).
Thoughts are welcome @rwest @mjohnson541 @JacksonBurns