Make adsorbate initial structures in CatKit

Thank you for the dataset.
From the paper, I understand that the input configurations were generated using the CatKit tool.
I was wondering how to identify the surface atoms from the .cif input files. Is there any code snippet available for generating different initial adsorbate configurations on a given slab structure?
Thanks!

Hi Jus - Sorry for the delayed response.

As far as code snippets regarding our input configurations, you may find the following useful: GitHub - Open-Catalyst-Project/Open-Catalyst-Dataset: Workflow for creating and analyzing the Open Catalyst Dataset. This was the code used for our input generation. To answer your question specifically, to generate different adsorbate configurations:

  1. Define an Adsorbate object.
  2. Define a Surface object from the corresponding Bulk object.
  3. The adsorbate+surface configuration is then created with the Combined object. For instance the following would randomly place the adsorbate onto the surface:
adslab = Combined(Adsorbate_object, Surface_object, enumerate_all_configs=False)

Note - setting enumerate_all_configs=True would return all enumerations of the adsorbate on the surface.

I hope this helps!