SUNCAT-Center / CatKit

General purpose tools for high-throughput catalysis
GNU General Public License v3.0
85 stars 51 forks source link

Adsorbate splits in example script #98

Open LarsSchaaf opened 2 years ago

LarsSchaaf commented 2 years ago

Following the SI of the 2019 paper results in a split adsorbate (C3H5) as shown below

image

Following the code:

from catkit.gen.surface import SlabGenerator
from catkit.gen.adsorption import Builder
from ase.build import bulk
from ase.io import write
from ase.visualize import view
import numpy as np
from catkit.build import molecule
atoms = bulk('Pd', 'fcc', a=4, cubic=True)
atoms[3].symbol='Au'

gen = SlabGenerator(atoms, miller_index= [1,1,1], layers=6, layer_type='trim', vacuum=10)
slab = gen.get_slab()

exslab=slab.copy()
exslab*=(9,9,1)
exslab.set_cell(slab.cell)
exslab.translate(-4*np.sum(exslab.cell[:2], axis=0))

adsorbate=molecule('C3H5')[4]
builder=Builder(slab)

ads_slab = builder.add_adsorbate(adsorbate, bonds=[0, 2], index=-1)
for aslab in ads_slab:
    aslab = aslab.copy()
    surf_atoms = np.where(np.in1d(aslab.get_chemical_symbols(), ['Pd', 'Au']))
    del aslab[surf_atoms]
    aslab += exslab
    aslab.set_cell([0, 0, 0])
write('tutorial-1.xyz', ads_slab)
write('tutorial-2.xyz', aslab)

import catkit
catkit.__version__ # '0.5.4'
srrohit7 commented 1 year ago

I have the same problem, did anyone find a fix around to this?