data.oc.utils.flag_anomaly#

Classes#

Module Contents#

class data.oc.utils.flag_anomaly.DetectTrajAnomaly(init_atoms, final_atoms, atoms_tag, final_slab_atoms=None, surface_change_cutoff_multiplier=1.5, desorption_cutoff_multiplier=1.5)#
init_atoms#
final_atoms#
final_slab_atoms#
atoms_tag#
surface_change_cutoff_multiplier#
desorption_cutoff_multiplier#
is_adsorbate_dissociated()#

Tests if the initial adsorbate connectivity is maintained.

Returns:

True if the connectivity was not maintained, otherwise False

Return type:

(bool)

has_surface_changed()#

Tests bond breaking / forming events within a tolerance on the surface so that systems with significant adsorbate induces surface changes may be discarded since the reference to the relaxed slab may no longer be valid.

Returns:

True if the surface is reconstructed, otherwise False

Return type:

(bool)

is_adsorbate_desorbed()#

If the adsorbate binding atoms have no connection with slab atoms, consider it desorbed.

Returns:

True if there is desorption, otherwise False

Return type:

(bool)

_get_connectivity(atoms, cutoff_multiplier=1.0)#

Generate the connectivity of an atoms obj.

Parameters:
  • atoms (ase.Atoms) – object which will have its connectivity considered

  • cutoff_multiplier (float, optional) – cushion for small atom movements when assessing atom connectivity

Returns:

The connectivity matrix of the atoms object.

Return type:

(np.ndarray)

is_adsorbate_intercalated()#

Ensure the adsorbate isn’t interacting with an atom that is not allowed to relax.

Returns:

True if any adsorbate atom neighbors a frozen atom, otherwise False

Return type:

(bool)