In [1]:
TEST_DIR='/home/matk/Software/vasp_automation/test/'
from ase.lattice.surface import fcc111
from ase.io.vasp import write_vasp
pt_slab = fcc111('Pt', size=(2,2,5), vacuum=10.0, orthogonal=True)
write_vasp(TEST_DIR+'POSCAR_pt_ase.vasp', pt_slab,
direct=False, sort=None,
symbol_count=None, long_format=True,
vasp5=True )
In [2]:
#%load TEST_DIR+/POSCAR_pt_ase.vasp
#from ase.io.png import write_png
#write_png(TEST_DIR+'test.png', slab)
#from IPython.display import Image
#Image(filename='TEST_DIR+test.png')
#from ase.visualize import view
#view(pt_slab)
#pt_slab.edit()
In [3]:
from ase import Atoms
from ase.lattice.surface import surface
a = 6.0
pbs_conventional = Atoms('Pb4S4',
scaled_positions=[(0, 0, 0),
(0.5, 0.5, 0),
(0.5, 0, 0.5),
(0, 0.5, 0.5),
(0, 0.5, 0),
(0, 0, 0.5),
(0.5, 0, 0),
(0.5, 0.5, 0.5)],
cell=[a, a, a],
pbc=True)
#111, 2 layers
pbs_slab1 = surface(pbs_conventional, (1, 1, 1), 2)
pbs_slab1.center(vacuum=10, axis=2)
write_vasp(TEST_DIR+'POSCAR_pbs_ase1.vasp', pbs_slab1,
direct=False, sort=None,
symbol_count=None, long_format=True,
vasp5=True)
In [4]:
from ase.io.vasp import read_vasp
#primitve PbS from materialsproject
pbs_primitive = read_vasp(filename=TEST_DIR+'POSCAR.mp-21276_PbS')
#111, 2 layers
pbs_slab2 = surface(pbs_primitive, (1, 1, 1), 2)
pbs_slab2.center(vacuum=10, axis=2)
write_vasp(TEST_DIR+'POSCAR_pbs_ase2.vasp', pbs_slab2,
direct=False, sort=None,
symbol_count=None, long_format=True,
vasp5=True)
In [5]:
#convert ase Atoms object to pymatgen Structure object
from pymatgen.io.aseio import AseAtomsAdaptor
pmg_structure = AseAtomsAdaptor().get_structure(pbs_slab2)
print pmg_structure
In [5]: