pulsesuite.PSTD3D.emission

Emission calculations for quantum wire simulations.

This module calculates spontaneous emission and photoluminescence spectrum for quantum wire systems in support of propagation simulations. Author: Rahul R. Sah

Attributes

pi

hbar

kB

eps0

c0

Functions

InitializeEmission(ky, Ee, Eh, dcv, epsr, geh, ehint)

Initialize the emission module.

SpontEmission(ne, nh, Ee, Eh, gap, geh, VC, Rsp)

Calculate spontaneous emission rates.

Ec(ne, nh, VC)

Calculate Coulomb energy correction.

SpontIntegral(Ek)

Calculate spontaneous emission integral numerically.

rho0(hw)

Photon density of states as a function of photon energy.

CalcHOmega(kBT, hg)

Calculate HOmega array for integration.

Calchw(hw, PLS, Estart, Emax)

Calculate photon energy array for PL spectrum.

PLSpectrum(ne, nh, Ee, Eh, gap, geh, VC, hw, t, PLS)

Calculate photoluminescence spectrum.

Module Contents

pulsesuite.PSTD3D.emission.pi
pulsesuite.PSTD3D.emission.hbar
pulsesuite.PSTD3D.emission.kB
pulsesuite.PSTD3D.emission.eps0
pulsesuite.PSTD3D.emission.c0
pulsesuite.PSTD3D.emission.InitializeEmission(ky, Ee, Eh, dcv, epsr, geh, ehint)

Initialize the emission module.

Sets up all module-level arrays required for emission calculations. Allocates and initializes the idel matrix, calculates RScale, and pre-calculates HOmega and square arrays.

Parameters:
  • ky (ndarray) – Momentum coordinates of quantum wire (1/m), 1D array

  • Ee (ndarray) – Electron energies (J), 1D array (not used, kept for signature consistency)

  • Eh (ndarray) – Hole energies (J), 1D array (not used, kept for signature consistency)

  • dcv (float) – Dipole matrix element (C·m)

  • epsr (float) – Relative dielectric constant

  • geh (float) – Electron-hole dephasing rate (Hz)

  • ehint (float) – Electron-hole interaction strength

Returns:

All arrays are stored as module-level variables.

Return type:

None

pulsesuite.PSTD3D.emission.SpontEmission(ne, nh, Ee, Eh, gap, geh, VC, Rsp)

Calculate spontaneous emission rates.

Computes the spontaneous emission rate Rsp for each momentum state based on electron and hole occupation numbers and energies.

Parameters:
  • ne (ndarray) – Electron occupation numbers (complex), 1D array

  • nh (ndarray) – Hole occupation numbers (complex), 1D array

  • Ee (ndarray) – Electron energies (J), 1D array

  • Eh (ndarray) – Hole energies (J), 1D array

  • gap (float) – Band gap energy (J)

  • geh (float) – Electron-hole dephasing rate (Hz) (not used, kept for signature consistency)

  • VC (ndarray) – Coulomb interaction array, shape (Nk, Nk, 3)

  • Rsp (ndarray) – Spontaneous emission rates (modified in-place), 1D array

Returns:

Rsp is modified in-place.

Return type:

None

pulsesuite.PSTD3D.emission.Ec(ne, nh, VC)

Calculate Coulomb energy correction.

Computes the many-body Coulomb energy correction for each momentum state due to electron-electron, hole-hole, and electron-hole interactions.

Parameters:
  • ne (ndarray) – Electron carrier populations, 1D array

  • nh (ndarray) – Hole carrier populations, 1D array

  • VC (ndarray) – Coulomb interaction array, shape (Nk, Nk, 3) VC[:, :, 0] = Veh (electron-hole) VC[:, :, 1] = Vee (electron-electron) VC[:, :, 2] = Vhh (hole-hole)

Returns:

Coulomb energy correction for each momentum state, 1D array

Return type:

ndarray

pulsesuite.PSTD3D.emission.SpontIntegral(Ek)

Calculate spontaneous emission integral numerically.

Computes the integral over photon energy for spontaneous emission using pre-calculated HOmega and square arrays.

Parameters:

Ek (float) – Transition energy (J)

Returns:

Spontaneous emission integral value

Return type:

float

pulsesuite.PSTD3D.emission.rho0(hw)

Photon density of states as a function of photon energy.

Calculates the photon density of states rho0(hw) = hw^2 / (c0^3 * pi^2 * hbar^3).

Parameters:

hw (float or ndarray) – Photon energy hbar*omega (J)

Returns:

Photon density of states (1/(J·m^3))

Return type:

float or ndarray

pulsesuite.PSTD3D.emission.CalcHOmega(kBT, hg)

Calculate HOmega array for integration.

Sets up the energy array HOmega used for numerical integration in spontaneous emission calculations.

Parameters:
  • kBT (float) – Thermal energy k_B * T (J)

  • hg (float) – Electron-hole dephasing energy hbar * geh (J)

Returns:

HOmega is stored as module-level variable.

Return type:

None

Raises:

ValueError – If calculated Nw < 10 (temperature too low).

pulsesuite.PSTD3D.emission.Calchw(hw, PLS, Estart, Emax)

Calculate photon energy array for PL spectrum.

Sets up the photon energy array hw for photoluminescence spectrum calculations.

Parameters:
  • hw (ndarray) – Photon energy array (modified in-place), 1D array

  • PLS (ndarray) – PL spectrum array (initialized to zero), 1D array

  • Estart (float) – Starting energy (J)

  • Emax (float) – Maximum energy (J)

Returns:

hw and PLS are modified in-place.

Return type:

None

pulsesuite.PSTD3D.emission.PLSpectrum(ne, nh, Ee, Eh, gap, geh, VC, hw, t, PLS)

Calculate photoluminescence spectrum.

Computes the photoluminescence spectrum PLS as a function of photon energy hw based on electron and hole occupation numbers and energies.

Parameters:
  • ne (ndarray) – Electron occupation numbers (complex), 1D array

  • nh (ndarray) – Hole occupation numbers (complex), 1D array

  • Ee (ndarray) – Electron energies (J), 1D array

  • Eh (ndarray) – Hole energies (J), 1D array

  • gap (float) – Band gap energy (J)

  • geh (float) – Electron-hole dephasing rate (Hz)

  • VC (ndarray) – Coulomb interaction array, shape (Nk, Nk, 3)

  • hw (ndarray) – Photon energy array (J), 1D array

  • t (float) – Time (s)

  • PLS (ndarray) – PL spectrum (modified in-place), 1D array

Returns:

PLS is modified in-place.

Return type:

None