enumerate_slabs_adslabs
enumerate_slabs_adslabs#
- class catlas.enumerate_slabs_adslabs.CustomAdsorbate(ads_atoms, bond_indices, smiles)#
- A custom adsorbate object for ocdata compatability. 
- class catlas.enumerate_slabs_adslabs.CustomBulk(bulk_atoms)#
- A custom bulk object for ocdata compatability. 
- catlas.enumerate_slabs_adslabs.convert_adslabs_to_graphs(adslab_result, max_neighbors=50, cutoff=6)#
- Turn ase.Atoms adslabs into graphs compatible with ocp models. - Parameters
- adslab_result (ase.Atoms) – an ase.Atoms object containing an adsorbate positioned on top of a surface. 
- max_neighbors (int, optional) – The highest number of neighbors to be considered in a graph. If a node ends up with more than this many neighbors, the furthest neighbors will be ignored. Defaults to 50. 
- cutoff (int, optional) – The maximum distance in Angstroms to look for neighbors. Defaults to 6. 
 
- Returns
- A dictionary containing a single key “adslab_graphs” which
- contains a list of torch_geometric.data.Data objects that can be used by OCP models. 
 
- Return type
- graph_dict (dict) 
 
- catlas.enumerate_slabs_adslabs.enumerate_adslabs(surface_ads_combo)#
- Generate adslabs from two dictionaries specifying a surface and an adsorbate. The only difference between these adslabs is the surface site where the adsorbate binds, allowing every adslab to be a shallow copy of the same object with updated positions. Because of this, be careful about updating adslab properties! - Parameters
- surface_ads_combo ([dict, dict]) – a list containing a surface dictionary and an adsorbate dictionary. 
- Returns
- A list of Atoms objects of the adslab systems with constraints
- applied. 
 
- Return type
- list[ase.Atoms] 
 
- catlas.enumerate_slabs_adslabs.enumerate_slabs(bulk_dict, max_miller)#
- Given a dictionary defining a material bulk, use pymatgen’s SlabGenerator object to enumerate all the slabs associated with the bulk object. :param bulk_dict: A dictionary containing a key “bulk_structure” containing - an pymatgen structure object corresponding to a bulk material. - Parameters
- max_miller (int, optional) – The highest miller index to enumerate up to. 
- Returns
- A list of dictionaries corresponding to the surfaces enumerated
- from the input bulk. Each dictionary has the following key-value pairs: – slab_surface_object (ocdata.surfaces.Surface): the ocdata surface object. – slab_millers (tuple[int]): the miller index of the surface. – slab_max_miller_index (int): the highest miller index of the surface. – slab_shift (float): the shift of the termination of the surface. – slab_top (bool): whether the termination is the top of the slab. 
 
- Return type
- list[dict] 
 
- catlas.enumerate_slabs_adslabs.merge_surface_adsorbate_combo(surface_adsorbate_combo)#
- Combines a surface dict and an adsorbate dict. - Parameters
- surface_adsorbate_combo (Iterable[dict, dict]) – a surface and an adsorbate. 
- Returns
- a single dictionary containing a surface and an adsorbate. 
- Return type
- dict 
 
