DefectMigrationPaths¶
- class DefectMigrationPaths(initial_defect, final_defect=None, charge_state=None, minimum_migration_distance=None, maximum_migration_distance=None, maximum_total_migration_distance=None)¶
Perform a defect migration between defect sites. The migration is a single hop between two stable defect sites, calculated with the nudged elastic band methodology. The initial and final defect configurations are defined in either a single ChargedPointDefectConfiguration object or two ChargedPointDefectConfiguration objects. If a single ChargedPointDefectConfiguration is provided, it is used as both the initial and final configuration. In both of these cases, DefectMigrationPaths will search over all symmetrically-equivalent sites for the final configuration to find the ones which are closest to the site of the initial configuration.
- Parameters:
initial_defect (
ChargedPointDefectConfiguration
) – The named point defect providing the initial configuration for the migration. Must have a configuration stored on itself.final_defect (
ChargedPointDefectConfiguration
) – The optional named point defect providing the final configuration for the migration. Must have a configuration stored on itself. Note that initial and final defect studies must use compatible defects (ones in which the number of atoms added or removed for each species is the same). Default: initial_defect is used for the final configuration as wellcharge_state (int) – The integer charge state. Default: 0
minimum_migration_distance (PhysicalQuantity of type length) – The minimum distance for accepting a defect migration path, based on the atom which is displaced the most during the reaction. Default:
0.1 * Angstrom
maximum_migration_distance (PhysicalQuantity of type length) – The maximum distance for accepting a defect migration path, based on the atom which is displaced the most during the reaction. Default:
3.5 * Angstrom
maximum_total_migration_distance (PhysicalQuantity of type length) – The maximum distance for accepting a defect migration path, based on the total displacement of all atoms during the reaction. Default:
30.0 * Angstrom
- chargeState()¶
- Returns:
The charge state.
- Return type:
int
- finalDefect()¶
- Returns:
The final ChargedPointDefectConfiguration.
- Return type:
- generateEndpoints()¶
Method that finds the most likely transitions paths between two defects based on distance criteria.
- Returns:
Migration endpoint configurations.
- Return type:
list of lists (size 2) of
BulkConfiguration
- generateNEBs(neb_calculator=None, image_distance=None, interpolation_algorithm=None, number_of_intermediate_images=None, use_endpoint_data=None)¶
Method that sets up NEB calculations from a list of endpoint configurations using the image dependent pair potential interpolation algorithm.
- Parameters:
neb_calculator (Calculator) – The calculator to be used for the NEB calculation. Default: The reference calculator of the initial
ChargedPointDefectConfiguration
with the correct charge state, if applicable.image_distance (PhysicalQuantity of type length) – Distance between the coordinates of successive configurations in the series of configurations. Mutually exclusive with number_of_intermediate_images. Default: 0.5*Angstrom.
interpolation_algorithm (bool |
LinearInterpolation
|ImageDependentPairPotential
) – The interpolation algorithm to use when generating images. No distance between successive images is greater than theimage_distance
parameter. The constraints are always automatically applied to be consistent with the initial defect. Default:ImageDependentPairPotential
number_of_intermediate_images (int) – The number of images between the endpoints. Mutually exclusive with image_distance.
use_endpoint_data (bool | None) – Whether to use endpoint energies, forces, stress to speed up the
NudgedElasticBand
calculation. By default, the endpoint data will be used if the supplied calculator is identical to the reference calculator on theChargedPointDefectConfiguration
. If the calculators differ, the endpoint data is invalid and can not be used. Default: Automatic
- Returns:
Unoptimized NEBs.
- Return type:
list of
NudgedElasticBand
- initialDefect()¶
- Returns:
The initial ChargedPointDefectConfiguration.
- Return type:
- maximumMigrationDistance()¶
- Returns:
The maximum distance for accepting a transition path reaction, based on the atom which is displaced the most during the reaction.
- Return type:
PhysicalQuantity of type length
- maximumTotalMigrationDistance()¶
- Returns:
The maximum distance for accepting a transition path reaction, based on the total displacement of all atoms during the reaction.
- Return type:
PhysicalQuantity of type length
- minimumMigrationDistance()¶
- Returns:
The minimum distance for accepting a transition path reaction, based on the atom which is displaced the most during the reaction.
- Return type:
PhysicalQuantity of type length
- uniqueString()¶
Return a unique string representing the state of the object.
Notes¶
The DefectMigrationPaths object calculates symmetrically unique diffusion pathways between
two defects. In doing so, it takes into account the symmetry of each defect, and the equivalent
positions of the defect in the host material. The object is created by supply an initial defect as
a ChargedPointDefectConfiguration. If no final defect is supplied self-diffusion is
assumed, otherwise a second defect can be supplied with the argument final_defect
. If paths for
a non-neutral defect are required, the charge state can be given with the charge_state
argument. Criteria for the minimum and maximum movement of the most displaced atom can be given, as
well as the maximum total atomic movement. These criteria can be used to filter out unrealistic
transition paths.
Once the object is created the endpoints for each path can be generated using the method
generate_endpoints
. Alternatively, an unoptimized NudgedElasticBand can be
generated for each transition path using the method generateNEBs
. Here, additional information
can be given as to how the NEB is constructed, allowing for setting the calculator, the number of
intermediate images and whether or not the calculated endpoint data, such as energies and forces,
is used.