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. IfLogToStdOut
, 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:
- 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