make_distinct_local_perturbations#

libcasm.enumerate.make_distinct_local_perturbations(
configuration: Configuration,
event: OccEvent,
event_group: list[SupercellSymOp],
distinct_local_cluster_sites: list[set[int]],
allow_subcluster_perturbations: bool,
) list[tuple[list[int], Configuration, Configuration]]#

Given orbits of local-clusters in the infinite crystal, make the distinct occupation perturbation configurations around an event in a particular background configuration.

Parameters:
  • background (Configuration) – The background configuration in which distinct clusters will be found.

  • occ_event (OccEvent) – The event.

  • event_group (list[SupercellSymOp]) – The subset of the supercell symmetry group that leaves the event invariant.

  • distinct_local_cluster_sites (list[set[int]]) –

    Local-clusters in the background configuration where perturbations should be tried, where distinct_local_cluster_sites[i] is the i-th distinct cluster, represented as a set of linear site indices in the supercell.

    If len(distinct_local_cluster_sites[i]) == 0, the unperturbed configuration is included as the only result. Otherwise, only perturbations which change the occupation on every site are included in the results.

  • allow_subcluster_perturbations (bool = False) – If True, output perturbations that only change the occupation on a subset of sites. If False (default), only output perturbations that change the occupation on all sites.

Returns:

results – A list of resulting distinct perturbation configurations, as a list tuples (background_index, cluster_sites, config, canonical_config), where:

  • cluster_sites: list[int], The linear site indices for the cluster of sites on which the perturbation was applied.

  • config: Configuration, The configuration with perturbation as applied.

  • canonical_config: Configuration, The canonical form of the perturbed configuration, as determined by application of event_group, which is used to find distinct configurations.

Return type:

list[tuple[list[int], Configuration, Configuration]]