make_all_distinct_local_perturbations#

libcasm.enumerate.make_all_distinct_local_perturbations(
supercell: Supercell,
occ_event: OccEvent,
motif: Configuration,
local_clusters: list[Cluster],
) list[Configuration][source]#

Construct distinct local perturbations of a configuration

This method constructs symmetrically distinct perturbations of a “motif” configuration, in a given supercell, on specified local-clusters around an OccEvent. The method works as follows:

  • Each local cluster is used to generate local-cluster orbits around the OccEvent, using the symmetry of the Prim and OccEvent, without regard to the background Configuration or Supercell. Duplicate local-cluster orbits are discarded.

  • The motif Configuration is tiled into the Supercell to generate all possible background Configuration, using make_all_super_configurations.

  • The subgroup of the supercell factor group that leaves the OccEvent invariant is used to find symmetrically distinct background Configuration.

  • For each distinct background Configuration, the local-cluster orbits are used to find the distinct local-clusters, now taking into account the background Configuration and Supercell.

  • For each distinct local-cluster in a distinct background configuration, all possible changes in occupation are performed to generate local perturbation configurations.

  • Each local perturbation configuration is put into a canonical form, using the subgroup of the supercell factor group that leaves the OccEvent invariant, in order to identify the distinct local perturbation Configuration.

Parameters:
  • supercell (Supercell) – The supercell in which local environment configurations will be generated.

  • occ_event (OccEvent) – The occupation event.

  • motif (Configuration) – The motif configuration is tiled into the supercell to generate background configurations. The occ_event is kept in the same position while prim factor group symmetry operations are applied to the motif configuration to generate all symmetrically distinct combinations of the background configuration and occ_event before generating perturbations. Only perfect tilings into the supercell are kept.

  • local_clusters (list[Cluster]) – Local clusters, on which the occupation variables will be enumerated in order to generate local perturbation configurations. The initial cluster in each local-cluster orbit generated using make_occevent_cluster_specs() is an appropriate input for this parameter. Each local cluster is first used to generated local-cluster orbits without regard to the background congifuration or supercell. Then, the local-clusters that are distinct taking the background configuration and supercell into account are perturbed with each possible occupation.

Returns:

configurations – The symmetrically distinct perturbations around the event on the specified local-clusters, in all distinct combinations of the event and motif configuration in the chosen supercell.

Return type:

list[Configuration]