-
Notifications
You must be signed in to change notification settings - Fork 238
Creation of surface species with charge separation more than one atom apart. #2716
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
Comments
There's a lot of smaller issues here that probably warrant more discussion. However, I think your more fundamental issue is that the Surface_Monodentate_to_Bidentate template allows the participating atoms to have any charge, which makes this a reaction. If you require the participating atoms to be uncharged in the template the charge separated resonance structure will not react with that template. |
I made a PR that fixes this issue. |
In discussion today, Kirk described an issue with using this recipe (noted in the comments to PR #2717)
Currently using the top level node
I think this is what's happening: Ideally the atom *1 is labeled as having a charge +1 and atom *2 is labeled as having charge -1, to restrict when this template can apply:
But then when the recipe is used to create the reverse template, it doesn't know to decrement or increment the charge on the wildcard atom types, so the reverse template is still looking for charged atoms. And it never finds the reverse reaction. The recipe should probably have INCREMENT_CHARGE and DECREMENT_CHARGE actions, which would hopefully then generate the correct reverse template, when the forward template has specified charges. If this turns out to be correct analysis, then I suggest we try to add tests to RMG-Py/test/database |
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. |
@rwest the atom type 'N' is not at the moment able to increment charge, but 'R!H' is. If I instead write *1 in the above example as "R!H" then I think it will work fine. If we wanted to have "N" or "C" or "O" in a top-level node and be able to increment charge, we would need to add instructions to these sections in the atomtype.py file. The recipe now looks like:
and the top-level node looks like:
|
Should N be able to increment charge, or would adding that mess something else up? |
It seems that it is okay that we leave it be for now. If I add a new node:
RMG is able to find the reaction *NO + *O --> O[-]--*N[+]==O, and populate it with the rule related to this lower level. It seems that it will be okay to just make the top-level nodes where charges change have only "R" and "R!H" atomtypes, then lower levels can use "C", "N", and "O" without issue. I guess the main question is if we will ever need to make a top-level node where charge is transferred be something that's not "R" or "R!H" |
Hello,
I have been starting to work with nitrogenous surface species and have been seeing something odd and unintentional happening. It seems that RMG is applying reaction templates that do not fit which results in charge separated species with the charges more than one atom apart.
If I work on the main branch of the database and rmg-py, and run RMG with the following script, I see it predict this reaction:
input.zip
This reaction violates the reaction template of Surface_Monodentate_to_Bidentate. My thought is that somehow RMG is finding a resonant structure of the monodentate, where the O has a negative charge and the N has a positive charge, and is then applying the template to that species?
If this is the case, is there a way to turn this off? As I am starting to work with nitrogen species, I am building my own recipes that are able to create/remove charge separation for some species (*NO2 --> *NO + *O), but my recipes are clashing with these species where the charge separation exists over more than one atom.
If it is important to keep these resonant forms of adsorbates, then we will need to find a way to create recipes that can preform surface transformations on them. If we take the species the above reaction produces:
We would need a recipe that could dissociate the bidentate bond, or dissociate the oxygen, dissociate a hydrogen, or any number of operations. Each would need to be able to move loan pairs around to remove or create these charges.
I am curious what path we should go down. Should we remove this type of resonance for surface species, or keep it and figure out how to manipulate charge separated adsorbates more generally where the charges can be separated by more than one atom? At least for the meantime it would be useful for me to disable this type of resonance (assuming resonance is doing this). Would anyone have an idea of how to do this at least locally?
Thank you,
Kirk
The text was updated successfully, but these errors were encountered: