generateRingConfigurations

generateRingConfigurations(initial_defect_pair, initial_defect_pair_generator, final_defect_pair=None, final_defect_pair_generator=None)

Form a ring of defects describing the migration mechanism of a substitutional-vacancy pair. The ring is created by moving the vacancy between positions connecting the initial and final defect pairs. Note that in the definition of the defect pairs and their generators, the substitutional must come first and the vacancy second.

Parameters:
  • initial_defect_pair (NamedPointDefect) – Starting point for the ring mechanism of a vacancy substitutional pair.

  • initial_defect_pair_generator (DefectPairGenerator) – The defect list that produced the starting point of the pair.

  • final_defect_pair (NamedPointDefect) – Final point for the ring mechanism of a vacancy substitutional pair.
    Default: Same as the initial pair.

  • final_defect_pair_generator (DefectPairGenerator) – The defect list that produced the final point of the pair.
    Default: Same as the initial generator.

Returns:

List of defects containing the initial, intermediate and final states of the ring migration and the BulkConfigurations created by them.

Return type:

list of NamedPointDefect, list of BulkConfiguration

Usage Examples

Use the generateRingConfigurations function to generate a ring migration path between a substitutional and vacancy pair. The vacancy is obtained from a VacancyGenerator and the substitutional from a SubstitutionalGenerator. Both form a pair through the DefectPairGenerator.

substitutionals = SubstitutionalGenerator(host_configuration, Germanium)
vacancies = VacancyGenerator(host_configuration)
pairs = DefectPairGenerator(substitutionals, vacancies, 2 * Ang, 3 * Ang)

defects, configurations = generateRingConfigurations(
   initial_defect_pair=pairs.uniqueDefects()[0],
   initial_defect_pair_generator=pairs,
   final_defect_pair=pairs.uniqueDefects()[1],
   final_defect_pair_generator=pairs
)

Notes

In some materials, the most favorable diffusion pathway of a closely associated vacancy impurity (substitutional) pair is through a ring mechanism. Instead of the substitutional atom directly swapping places with a lattice atom (high barrier), the vacancy moves along a ring of lattice sites (low barrier) until the substitutional itself can move into the vacancy, located at a previously inaccessible site (see Fig. 183 b).

../../../_images/ring_mech.png

Fig. 183 Substitutional movement without (a) and with (b) ring mechanism.

Without considering the correlated substitutional and vacancy movement, the substitutional would only be able to oscillate between two positions (see Fig. 183 a). As a result, the diffusivity would be severely underestimated.

The generateRingConfigurations function returns a list of consecutive defect pairs as NamedPointDefect representing the steps of the ring. These defects can be used to calculate formation energies through the ChargedPointDefectConfiguration framework and diffusivities via DefectDiffusivity. For simple visualization and NudgedElasticBand generation, the defect pairs are also returned as BulkConfiguration.

Note that the host configuration used in the initial defect generation should be a supercell with enough repetitions to create room for the ring.