from pymatgen import Structure, Lattice, MPRester, Molecule
from pymatgen.analysis.adsorption import *
from pymatgen.core.surface import generate_all_slabs
from pymatgen.symmetry.analyzer import SpacegroupAnalyzer
import pymatgen as mg
znte_lattice = mg.Lattice.hexagonal(4.373, 10.705)
species = ["Zn", "Zn","Zn","Te","Te","Te"]
coordinates = [[0.3606,0.0212,0.0265], [0.6606,0.6394,0.6932],[0.9788,0.3394,0.3598],
[0.0237,0.353,0.1102],
[0.3293,0.9763,0.7768],[0.647,0.6707,0.4435]]
znte = mg.Structure(znte_lattice,species=species,coords=coordinates)
slabs = generate_all_slabs(znte, max_index=1, min_slab_size=8.0,min_vacuum_size=10.0)
znte_100 = [slab for slab in slabs if slab.miller_index==(1,0,0)][0] #Use first slab with 100 surface
from atomate.vasp.workflows.base import adsorption
co = Molecule("CO", [[0, 0, 0], [0, 0, 1.23]])
h = Molecule("H", [[0, 0, 0]])
adsorbate_config = {(1,1,1):[co, h],(1,0,0):[co]}
wf = adsorption.get_wf_slab(znte_100,adsorbate_config)
from pymatgen import Structure, MPRester, Moleculefrom pymatgen.symmetry.analyzer import SpacegroupAnalyzerfrom fireworks import LaunchPadfrom atomate.vasp.workflows.base.adsorption import get_wfs_all_slabs
mpr=MPRester()
#typical adsorbates to use for CO2 reduction workflowsCO = Molecule("CO", [[0, 0, 0],[0, 0, 1.23]])
# list of adsorbates for current runadsorbates = [CO]
#list of catalysts from materials project to run workflows for catalysts = "mp-2176"
struct = mpr.get_structure_by_material_id(catalyst)struct = SpacegroupAnalyzer(struct).get_conventional_standard_structure()wfs = get_wfs_all_slabs(struct, True, adsorbates, vasp_cmd=">>vasp_cmd<<", db_file=">>db_file<<")
wfs[0].fws[0].tasks
'vasp_input_set': MPSurfaceSet
from atomate.vasp.workflows.base.adsorption import MPSurfaceSet
s = MPSurfaceSet(wfs[0].fws[0].tasks[0]["structure"])s.write_input(output_dir="test")
task_doc = drone.assimilate(calc_dir)
To see the JSON data that results from parsing a particular VASP calculation directory. In some cases, downstream code in the Firetask might add / remove / modify some of this information.