make_all_distinct_local_perturbations#
- libcasm.enumerate.make_all_distinct_local_perturbations(
- supercell: Supercell,
- occ_event: OccEvent,
- motif: Configuration,
- local_clusters: list[Cluster],
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 thePrim
andOccEvent
, without regard to the backgroundConfiguration
orSupercell
. Duplicate local-cluster orbits are discarded.The motif
Configuration
is tiled into theSupercell
to generate all possible backgroundConfiguration
, usingmake_all_super_configurations
.The subgroup of the supercell factor group that leaves the
OccEvent
invariant is used to find symmetrically distinct backgroundConfiguration
.For each distinct background
Configuration
, the local-cluster orbits are used to find the distinct local-clusters, now taking into account the backgroundConfiguration
andSupercell
.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 perturbationConfiguration
.
- 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]