PristineConfiguration

class PristineConfiguration(configuration, reference_calculator, band_gap_calculator=None, phonon_calculator=None, symmetry_tolerance=None, supercell_repetitions=None, finite_size_correction_parameters=None, include_vibrations=None)

Create a pristine reference for a defect.

Parameters:
  • configuration (BulkConfiguration) – The unit cell of the pristine material.

  • reference_calculator (All calculators) – The calculator used for the formation energy. This calculator must be suitable for calculating both pristine configuration and defect energies.

  • band_gap_calculator (All calculators | None) – The calculator used for the band gap. If not given the reference calculator is used for the band gap.

  • phonon_calculator (All calculators | None) – The calculator used for the vibrational energy. If not given, the reference calculator is used to calculate the phonon density of states. As with the reference calculator, this calculator is used on both pristine and defect configurations.

  • symmetry_tolerance (PhysicalQuantity of type length) – The tolerance used for calculating the symmetry.
    Default: 0.1 Angstrom

  • supercell_repetitions (Tuple of integers of length 3) – The supercell repetitions used to create the defect.
    Default: (1, 1, 1)

  • finite_size_correction_parameters (IsotropicFiniteSizeCorrectionParameters | InterfaceFiniteSizeCorrectionParameters | Disabled | None) – Parameters for the finite size correction applied to the defect. If Disabled, finite size corrections are ignored.
    Default: IsotropicFiniteSizeCorrectionParameters

  • include_vibrations (bool) – Whether vibrational terms are included in calculating the formation energy. The configuration will be optimized with the phonon calculator before calculating vibrations.
    Default: False

addChargeCorrection()
Returns:

Whether calculations are done for correcting charged states.

Return type:

bool

bandGapCalculator()
Returns:

The calculator used for the band gap. None if no specific calculator provided.

Return type:

All calculators | None

chargeCorrectionString()
Returns:

A string describing the charge correction.

Return type:

str

conductionBandMinimum(band_gap)

Get the conduction band minimum using either the formation energy or band gap calculator.

Parameters:

band_gap (bool) – Whether the value from the band gap calculator is returned. If no band gap calculator was given then None is returned.

Returns:

The calculated conduction band minimum.

Return type:

PhysicalQuantity of type energy

configuration()
Returns:

The unit cell that defines the pristine material.

Return type:

BulkConfiguration

electrostaticPotential()
Returns:

The pristine electrostatic difference potential.

Return type:

ElectrostaticDifferencePotential

fermiLevel(band_gap)

Get the conduction band minimum using either the formation energy or band gap calculator.

Parameters:

band_gap (bool) – Whether the value from the band gap calculator is returned. If no band gap calculator was given then None is returned.

Returns:

The calculated Fermi level.

Return type:

PhysicalQuantity of type energy

finiteSizeCorrectionParameters()
Returns:

The parameters for the finite size correction.

Return type:

float

includeVibrations()
Returns:

Whether vibrational corrections are calculated.

Return type:

bool

phononCalculator()
Returns:

The calculator used for the vibrational energy. None if no specific calculator provided.

Return type:

All calculators | None

phononDensityOfStates()
Returns:

The calculated phonon density of states if vibrational corrections are enabled. None if not.

Return type:

PhononDensityOfStates | None

pristineSymmetry()
Returns:

The symmetry information of the pristine unit cell.

Return type:

dict

referenceCalculator()
Returns:

The original given reference calculator.

Return type:

All calculators

stress()
Returns:

The calculated stress in the reference material.

Return type:

Stress

superCell()
Returns:

The super cell of the pristine material using the given repetitions.

Return type:

BulkConfiguration

supercellRepetitions()
Returns:

The supercell repetitions used to create the defect.

Return type:

tuple

supercellSymmetry()
Returns:

The symmetry information of the supercell.

Return type:

dict

symmetryTolerance()
Returns:

The tolerance used for detecting the symmetry.

Return type:

PhysicalQuantity of type length

totalEnergy()
Returns:

The reference energy calculated with the formation energy calculator.

Return type:

TotalEnergy

uniqueString()

Return a unique string representing the state of the object.

unitCell()
Returns:

The unit cell that defines the pristine material.

Return type:

BulkConfiguration

update()

Perform the necessary calculations

valenceBandMaximum(band_gap)

Get the valence band maximum using either the formation energy or band gap calculator.

Parameters:

band_gap (bool) – Whether the value from the band gap calculator is returned. If no band gap calculator was given then None is returned.

Returns:

The calculated valence band maximum.

Return type:

PhysicalQuantity of type energy

vibrations()
Returns:

The vibrations if vibrational corrections are enabled. None if not.

Return type:

PhysicalQuantity of type inverse time | None

Notes

The PristineConfiguration object contains the information about the original host material used in ChargedPointDefectConfiguration calculations. Where applicable, the information in the PristineConfiguration object is used in also calculating the defect, ensuring consistent settings between a range of defect calculations.

The PristineConfiguration is created by supplying a host configuration and a reference energy calculator. This calculator is also used as the reference calculator in the ChargedPointDefectConfiguration calculation. The defect supercell size is given with the supercell_repetitions argument. The correction for the defect charge can be specified using the finite_size_correction_parameters argument. If no correction is desired, the keyword Disabled should be given.

Some calculators can also be specified for specific parts of the calculation. This is useful in cases where the appropriate reference energy calculator is unsuitable. A band gap calculator can be given using the band_gap_calculator argument. This calculation is performed with the pristine unit cell, and thus this calculator can be reasonably more computationally expensive than the reference calculator. Additionally, a calculator for the vibrational correction can be given by using the phonon_calculator argument and setting the include_vibrations argument to True. If vibrations are included here they should also be included in the calculation of atomic chemical potentials.