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,
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]]