InterstitialList

class InterstitialList(material_specifications, interstitial_element, charge_states=None, processes_per_defect=None, interstitial_types=None)

A class which describes the list of possible interstitial defects for a given host material.

Parameters:
  • material_specifications (MaterialSpecifications) – A descriptor of a bulk material, plus the information needed to perform the calculations.
  • interstitial_element (PeriodicTableElement) – The element to add as interstitial defect.
  • charge_states (int | sequence of int) – The charge states to calculate for each defect.
    Default: 0
  • processes_per_defect (int) – The number of processes assigned to calculating a single defect.
    Default: All available processes.
  • interstitial_types (VoronoiVertices | VoronoiVerticesAndFaces) – How the interstitials in the material should be automatically created.
    Default: VoronoiVertices
chargeStates()
Returns:The charge states to calculate for each defect.
Return type:list of int
filterByDistance(distance, cartesian_coordinates=None, fractional_coordinates=None)

Method for filtering defects by distance. Given a origin in the supercell and a distance, all defects within a bigger distance will be filtered. After filtering, the wyckoff indices with no defects will be erased.

Parameters:
  • distance (PhysicalQuantity of type length) – Maximum distance
  • cartesian_coordinates (sequence (size 3) of PhysicalQuantity of type length) – The position of the reference to measure distances, given in absolute coordinates. This option is mutually exclusive to fractional_coordinates.
    Default: None
  • fractional_coordinates (sequence (size 3) of float) – The position of the reference to measure distances, given in fractional coordinates of the bulk unit cell. This option is mutually exclusive to cartesian_coordinates.
    Default: None
Returns:

A filtered defect list.

Return type:

VacancyList | SubstitutionalList | SplitInterstitialList

filterByWyckoffIndex(wyckoff_indices)

Method for filtering the list of inequivalent point defects by selecting specific Wyckoff indices.

Parameters:wyckoff_indices (int | list of int) – The list of Wyckoff indices to keep after filtering.
Returns:A filtered defect list.
Return type:The same type as the unfiltered list.
interstitialElement()
Returns:The element to add as interstitial defect.
Return type:PeriodicTableElement
interstitialTypes()
Returns:How the interstitials in the material should be automatically created.
Return type:VoronoiVertices | VoronoiVerticesAndFaces
materialSpecifications()
Returns:The descriptor of a bulk material, plus the information needed to perform the calculations.
Return type:MaterialSpecifications
nlprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>)

Prints a summary of the wyckoff indices created and equivalent defects

pointDefects()
Returns:The list of inequivalent point defects.
Return type:Vacancy | Substitutional | Interstitial | DefectCluster
processesPerDefect()
Returns:The number of processes to be assigned to calculating each defect. If None, all available processes should perform the calculation for each defect collaboratively.
Return type:int | None
results(discard_faulty=True)

Method for retrieving calculated defect studies.

Parameters:discard_faulty (bool) – Flag to determine whether faulty defect studies should be discarded.
Default: True
Returns:The list of defect studies stored on the object.
Return type:list of HarmonicChargedPointDefect
update()

Update all the harmonic charged point defect studies contained in the defect list.

wyckoffIndices()
Returns:The Wyckoff indices for the current defect list.
Return type:list of int

Directory name

InterstitialList creates directory names with a structure

interstitial/element_wyckoff/site/hash

For instance,

interstitial/C_0/004/8510ca94d3b960045791f06a3741606f

for a carbon interstitial with Wyckoff index 0, at the interstitial site 4.

  • All interstitial are stored in a directory call interstitial
  • element represents the interstitial element.
  • wyckoff is the Wyckoff number for the defect, different for all inequivalent positions.
  • site contains the particular defect index correlated with its location. Different equivalent interstitials have different sites.
  • hash is hash string representing the material specifications.

Usage example

The following shows an example of use. It uses the specification Si_64_tersoff defined in MaterialSpecifications.

from SMW import *

reference = MaterialSpecificationsDatabase.Si_64_tersoff
interstitial = InterstitialList(reference, Silicon)
nlprint(interstitial)
interstitial.update()

nlsave('defects.hdf5', interstitial)

interstitiallist_example.py