Skip to content
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

Checks for adsorbate integrity, implement adsorbate constraints #13

Open
zulissi opened this issue Apr 28, 2017 · 6 comments
Open

Checks for adsorbate integrity, implement adsorbate constraints #13

zulissi opened this issue Apr 28, 2017 · 6 comments

Comments

@zulissi
Copy link
Member

zulissi commented Apr 28, 2017

In some of the simulations, CO is dissociating, especially when a carbide or oxide is favorable. For example:
http://gilgamesh.cheme.cmu.edu:5000/id/4059

We need to implement checks for each adsorbate type to ensure that it is still what we think it is. Possibilities include:

  1. Throw out simulations where the slab atoms moves more than 1 angstrom (i.e. reconstruction is going on)
  2. Make an adsorbate specific check to verify the final image. In the case of CO, probably check the C-O bond distance.
@ktran9891
Copy link
Collaborator

Zach started some work here:
17b53d7

@ktran9891
Copy link
Collaborator

I added a movement checker for adsorbate: bdcdfe4

@ktran9891
Copy link
Collaborator

What if we end up using adsorbates that rotate? Our adsorbate checker would probably get some false positives.

If we can address this, then this issue should be closable.

@zulissi
Copy link
Member Author

zulissi commented Jul 12, 2017

Things that are needed to implement complex adsorbates:

  1. adsorbate-specific code to check integrity (in adsorbateStructures in defaults.adsorptionParameters)

  2. adsorbate-specific code to add constraints (in adsorbateStructures in defaults.adsorptionParameters)

  3. test the ASE-based optimization code, implement a check to switch this somewhere in gaspy (where the firework is made? make a new function that gets called that checks for types of constraints and switches if something interesting is present?)

    if 'constraint' in adsorbateStructures[adsorbate]:
    calcsettings['nsw']=0
    calcsettings['optmethod']='ase'

@zulissi zulissi changed the title Checks for adsorbate integrity Checks for adsorbate integrity, implement adsorbate constraints Jul 13, 2017
@ktran9891
Copy link
Collaborator

  1. Not yet addressed. I'm still not sure how to do this robustly. Specifically: I think we can avoid dissociation by adding adsorbate hookeans, but I am unsure how to check for desorption. We can see how far adsorbates move, but rotations would be flagged incorrectly as desorptions.
  2. This commit adds OOH constraints and these
    commits allow us to keep the adsorbate constraints when creating adslabs.
  3. This commit laid down the framework to accomplish this. We are now passing vasp-calling scripts through the Firework, and these vasp-calling scripts check for constraints. If there are constraints (besides FixAtoms), then it switches to an ase optimization in lieu of a vasp optimization.

@ktran9891
Copy link
Collaborator

I know @apalizha has done a lot of this over the years, and that you've written checks like this. Is something like that implemented in GASpy? I couldn't find it easily. But I remember you saying we do have it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants