PointDefectLuminescence

class PointDefectLuminescence(charged_point_defect, initial_charge_state, final_charge_state, supercell_repetitions, fractional_displacements=None, filename=None, object_id=None, number_of_processes_per_task=None, log_filename_prefix=None, save_displaced_configurations=None)

Perform a study of luminescence spectrum line shapes due to recombination of free carriers with a defect state.

Parameters:
  • charged_point_defect (ChargedPointDefect) – The charged point defect study for which to extract the initial and final charge state from.

  • initial_charge_state (int) – The initial charge state of the defect, as a discrete multiple of elementary charge. A charge of -1 corresponds to one extra electron.

  • final_charge_state (int) – The final charge state of the defect, as a discrete multiple of elementary charge. A charge of -1 corresponds to one extra electron.

  • supercell_repetitions (sequence (size 3) of int) – The supercell of the (charge point defect study) bulk unit cell given as the number of repetitions of the bulk unit cell along the (a, b, c) directions.

  • fractional_displacements (sequence of float) – The fractional displacements from the center displacement configuration in terms of the generalized configuration coordinate delta. Both the initial and final charge state configuration will be the center displacement configuration.
    Default: [-0.02, -0.01, 0.0, 0.01, 0.02]

  • filename (str) – The full or relative filename path the Study object should be saved to. See nlsave().
    Default: The file name of the input charge point defect study.

  • object_id (str) – The name of the study that the study object should be saved to within the file. This needs to be a unique name in this file.
    Default: 'point_defect_luminescence_' + initial_charge_state + '_' + final_charge_state

  • number_of_processes_per_task (int | None | ProcessesPerNode) – The number of processes that will be used to execute each task. If the total number of processes does not divide evenly into the tasks, some tasks may have less than this number of processes. If None, all available processes execute each task collaboratively.
    Default: None

  • log_filename_prefix (str | LogToStdOut) – Filename prefix for the logging output of SRH recombination study. If LogToStdOut, all logging will instead be sent to standard output.
    Default: 'point_defect_luminescence_'

  • save_displaced_configurations (bool) – Whether the displaced updated configuration used to determine the total energies should be saved to disk. If True, they can be inspected or reused, possibly saving computational time if running again the study, or if shared with other studies. However the file where the study is saved will be significantly larger.
    Default: False

calculateEffectiveVibrationFrequency(charge_state_id)

Calculate the effective vibration frequency of the charge state.

Parameters:

charge_state_id (InitialChargeState | FinalChargeState) – The charge state for which the effective vibration frequency is calculated.

Returns:

The frequency of the effective phonon mode associated with the given charge state, evaluate by quadratic fit of the total energy as a function of the displacement in generalized configuration coordinates.

Type:

PhysicalQuantity of type frequency.

calculateLuminescenceLineshape(energies=None, temperature=None, gaussian_broadening=None)

Calculate the normalized luminescence lineshape.

Parameters:
  • energies (PhysicalQuantity of type energy) – The energies at which the luminescence lineshape is evaluated.
    Default: An energy range 2eV below the zero phonon line energy, up to the zero phonon line energy

  • temperature (PhysicalQuantity of type temperature) – The temperature at which the luminescence lineshape is evaluated.
    Default: 300 * Kelvin

  • gaussian_broadening (PhysicalQuantity of type energy) – The standard deviation of the gaussian broadening used instead of a delta function in the phonon selection rules.
    Default: 0.8 times the final state oscillator energy.

static calculateLuminescenceLineshapeFromParameters(zero_phonon_line_energy, generalized_configuration_coordinate_delta, initial_state_effective_vibration_frequency, final_state_effective_vibration_frequency, energies=None, temperature=None, gaussian_broadening=None)

Calculate the normalized luminescence lineshape.

Parameters:
  • zero_phonon_line_energy (PhysicalQuantity of type energy.) – The zero phonon line energy, i.e. the energy of the transition with zero initial and final vibrational quantum number.

  • generalized_configuration_coordinate_delta (PhysicalQuantity of type sqrt(mass) * length) – The displacement between the initial and final state in generalized configuration coordinates.

  • initial_state_effective_vibration_frequency (PhysicalQuantity of type frequency) – The effective frequency of the harmonic oscillator associated with the initial state.

  • final_state_effective_vibration_frequency (PhysicalQuantity of type frequency) – The effective frequency of the harmonic oscillator associated with the final state.

  • energies (PhysicalQuantity of type energy) – The energies at which the luminescence lineshape is evaluated.
    Default: An energy range 2 eV below the zero phonon line energy and 1 eV above.

  • temperature (PhysicalQuantity of type temperature) – The temperature at which the luminescence lineshape is evaluated.
    Default: 300 * Kelvin

  • gaussian_broadening (PhysicalQuantity of type energy) – The standard deviation of the gaussian broadening used instead of a delta function in the phonon selection rules.
    Default: 0.8 times the final state oscillator energy.

calculateZeroPhononLineEnergy()

Calculate the zero phonon line energy.

Returns:

The zero phonon line energy.

Type:

PhysicalQuantity of type energy.

chargedPointDefect()
Returns:

The charged point defect study from which the initial and final charge state is extracted from.

Return type:

ChargedPointDefect

configurationCoordinateDelta()
Returns:

The calculated change in the configuration coordinate. If not available, returns None.

Return type:

PhysicalQuantity of type length | None

dependentStudies()
Returns:

The list of dependent studies.

Return type:

list of Study

displacedConfigurationGeneralizedConfigurationCoordinate(charge_state_id, fractional_displacement)

Retrieve the generalized configuration coordinate for the displaced configuration.

Parameters:
  • charge_state_id (InitialChargeState | FinalChargeState) – The charge state of the center displacement configuration from which the displaced configuration is displaced from. Either the charge state of the initial configuration or the final configuration.

  • fractional_displacement (float) – The fragment displacement from the center displacement configuration. Must be among the fractional displacements.

Returns:

The generalized configuration coordinate for the displaced configuration. If not available, returns None.

Return type:

PhysicalQuantity of type length square root mass | None

displacedConfigurationTotalEnergy(charge_state_id, fractional_displacement)

Retrieve the total energy for the displaced configuration.

Parameters:
  • charge_state_id (InitialChargeState | FinalChargeState) – The charge state of the center displacement configuration from which the displaced configuration is displaced from. Either the charge state of the initial configuration or the final configuration.

  • fractional_displacement (float) – The fragment displacement from the center displacement configuration. Must be among the fractional displacements.

Returns:

The calculated total energy analysis object for the displaced configuration. If not available, returns None.

Return type:

TotalEnergy | None

filename()
Returns:

The filename where the study object is stored.

Return type:

str

finalChargeState()
Returns:

The final charge state of the defect, as a discrete multiple of elementary charge. A charge of -1 corresponds to one extra electron.

Return type:

int

fractionalDisplacements()
Returns:

The fractional displacements from the center displacement configuration in terms of the generalized configuration coordinate delta.

Return type:

sequence of float

generalizedConfigurationCoordinateDelta()
Returns:

The calculated change in the generalized configuration coordinate. If not available, returns None.

Return type:

PhysicalQuantity of type length square root mass | None

huangRhysFactor(charge_state_id)

Evaluate the dimensionless Huang-Rhys factor for the effective vibrational mode associated with a given charge state:

\[S_{i, f} = \frac{1}{2\hbar}(\Delta Q)^2 \Omega_{i, f}\]
Parameters:

charge_state_id (InitialChargeState | FinalChargeState) – The charge state for which the Huang-Rhys factor is calculated.

Returns:

The calculated Huang-Rhys factor. If not available yet, returns None.

Return type:

float | None

initialChargeState()
Returns:

The initial charge state of the defect, as a discrete multiple of elementary charge. A charge of -1 corresponds to one extra electron.

Return type:

int

logFilenamePrefix()
Returns:

The filename prefix for the logging output of the study.

Return type:

str | LogToStdOut

nlinfo()
Returns:

Structured information about the Study.

Return type:

dict

nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the Study object.

Parameters:

stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

numberOfProcessesPerTask()
Returns:

The number of processes to be used to execute each task. If None, all available processes execute each task collaboratively.

Return type:

int | None | ProcessesPerNode

numberOfProcessesPerTaskResolved()
Returns:

The number of processes to be used to execute each task. Default values are resolved based on the current execution settings.

Return type:

int

objectId()
Returns:

The name of the study object in the file.

Return type:

str

saveDisplacedConfigurations()
Returns:

Whether the displaced configurations should be saved.

Return type:

bool

saveToFileAfterUpdate()
Returns:

Whether the study is automatically saved after it is updated.

Return type:

bool

supercellRepetitions()
Returns:

The supercell of the (charge point defect study) bulk unit cell given as the number of repetitions of the bulk unit cell along the (a, b, c) directions.

Return type:

sequence (size 3) of int

uniqueString()

Return a unique string representing the state of the object.

update()

Run the calculations for the study object.

updatedDisplacedConfiguration(charge_state_id, fractional_displacement)

Retrieve the updated displaced configuration, if available.

Parameters:
  • charge_state_id (InitialChargeState | FinalChargeState) – The charge state of the center displacement configuration from which the displaced configuration is displaced from. Either the charge state of the initial configuration or the final configuration.

  • fractional_displacement (float) – The fragment displacement from the center displacement configuration. Must be among the fractional displacements.

Returns:

The updated displaced configuration. If not available, returns None.

Return type:

BulkConfiguration | None