model

Functions to build the model. The LocalClusterExpansion reads a cif (for example, a NaSICON cif) and generate typically, the orbital in KMC. Typical output is lce.json

This is related to the Table S3 in KMC support information pdf.

class kmcpy.model.LocalClusterExpansion(api=1)[source]

LocalClusterExpansion will be initialized with a template structure where all the sites are occupied cutoff_cluster is the cutoff for pairs and triplet cutoff_region is the cutoff for generating local cluster region

initialization3(mobile_ion_identifier_type='label', mobile_ion_specie_1_identifier='Na1', cutoff_cluster=[8, 6, 0], cutoff_region=4, template_cif_fname='EntryWithCollCode15546_Na4Zr2Si3O12_573K.cif', is_write_basis=False, species_to_be_removed=['Zr4+', 'O2-', 'O', 'Zr'], convert_to_primitive_cell=False, exclude_site_with_identifier=[], is_grain_boundary_model=False, **kwargs)[source]

3rd version of initialization: Note that change the self.centerNa1 to self.center_site.coords

Strictly use the cif file because I only modified the structure.from_cif

use structure matcher

Parameters:
  • mobile_ion_identifier_type="label" – refers to structure_operation.find_atom_indices

  • mobile_ion_specie_1_identifier="Na1" – refers to structure_operation.find_atom_indices

  • cutoff_cluster (list, optional) – cluster cutoff. Defaults to [6,6,6].

  • cutoff_region (float, optional) – cutoff for finding migration unit. Defaults to 4.

  • template_cif_fname (str, optional) – generate cluster from which cif?. Defaults to ‘EntryWithCollCode15546_Na4Zr2Si3O12_573K.cif’.

  • is_write_basis (bool, optional) – .?. Defaults to False.

  • species_to_be_removed (list, optional) – species to be removed which do not involve in the calculation. Defaults to [‘Zr4+’,’O2-‘,’O’,’Zr’].

If the next-step KMC is not based on the same lce object generated in this step, then be careful with 2 things: 1) the Ekra generated in this step can be transferred to the KMC, within which the orbitals are arranged in the same way as here; 2) the sublattice_indices are exactly corresponding to the input structure used in the KMC step, which might in need of re-cunstruction of a lce object using the same KMC-input structure.

orbits_constructor(clusters)[source]

return a list of Orbit

For each orbit, loop over clusters
for each cluster, check if this cluster exists in this orbit

if not, attach the cluster to orbit else,

to_json(fname)[source]

example output as exmaples/lce.json

Parameters:

fname (_type_) – _description_