# VacancyList¶

class VacancyList(material_specifications, charge_states=None, processes_per_defect=None)

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

Parameters: material_specifications (MaterialSpecifications) – A descriptor of a bulk material, plus the information needed to perform the calculations. 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.
chargeStates()
Returns: The charge states to calculate for each defect. 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 A filtered defect list. VacancyList | SubstitutionalList | SplitInterstitialList
filterByLatticeSpecies(element_list)

Method for selecting inequivalent defects by element name. Valid only for defect types that are associated with a lattice site, e. g. Vacancies, but not Interstitials.

Parameters: element_list (PeriodicTableElement | list of PeriodicTableElement) – List of elements to keep after filtering. A filtered defect list. 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. A filtered defect list. The same type as the unfiltered list.
materialSpecifications()
Returns: The descriptor of a bulk material, plus the information needed to perform the calculations. 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. 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. 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 The list of defect studies stored on the object. 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. list of int

## Directory name¶

VacancyList creates directory names with a structure

vacancy/element_wyckoff/site/hash


For instance

vacancy/Si_0/004/8510ca94d3b960045791f06a3741606f

• All vacancies are stored in a directory call vacancy
• element represents the element placed at the lattice site where the vacancy sits.
• wyckoff is the Wyckoff number for the vacancy, different for all non equivalent positions.
• site contains the particular lattice site occupied by the vacancy. Different for all equivalent and inequivalent positions.
• A hash string representing the material specifications.

## Usage example¶

The following shows an example of use. It assumes there is an already defined Si_64_tersoff specification in MaterialSpecifications.

from SMW import *

reference = MaterialSpecificationsDatabase.SiGe_64_tersoff
vacancies = VacancyList(reference)

nlprint(vacancies)
vacancies.update()

nlsave('defects.hdf5', vacancies)


vacancylist_example.py