Open zulissi opened 7 years ago
Zach started some work here: https://github.com/ktran9891/GASpy/commit/17b53d7d2a4699fc09aa30b7ca51386e6316dc6a
I added a movement checker for adsorbate: https://github.com/ktran9891/GASpy/commit/bdcdfe4644ed08841077021e32d01db78396e639
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.
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'
FixAtoms
), then it switches to an ase optimization in lieu of a vasp optimization.
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.