pulsesuite.PSTD3D.phonons¶
Phonon interaction calculations for quantum wire simulations.
This module calculates the many-body electron-hole phonon contribution to the Semiconductor Bloch equations in support of propagation simulations for a quantum wire.
Author: Rahul R. Sah
Attributes¶
Functions¶
|
Initialize phonon interaction matrices (Unecessary the jit version?). |
|
Many-body phonon-electron interaction. |
|
Many-body phonon-hole interaction. |
|
Calculate Cq for use in the DC Field module. |
|
Calculate Fermi-Dirac distribution. |
|
Calculate Bose-Einstein distribution. |
|
Get the Bose distribution value for phonons. |
Module Contents¶
- pulsesuite.PSTD3D.phonons.hbar¶
- pulsesuite.PSTD3D.phonons.kB¶
- pulsesuite.PSTD3D.phonons.ii = 1j¶
- pulsesuite.PSTD3D.phonons.InitializePhonons(ky, Ee, Eh, L, epsr, Gph, Oph)¶
Initialize phonon interaction matrices (Unecessary the jit version?).
Sets up the electron and hole phonon interaction matrices EP, HP and their transposes EPT, HPT. Also calculates the scaling factor Vscale.
- Parameters:
ky (ndarray) – Momentum coordinates (1/m), 1D array
Ee (ndarray) – Electron energies (J), 1D array
Eh (ndarray) – Hole energies (J), 1D array
L (float) – Length parameter (unused, kept for interface compatibility)
epsr (float) – Dielectric constant
Gph (float) – Phonon damping rate (Hz)
Oph (float) – Phonon frequency (Hz)
- Return type:
None
Notes
Sets module-level variables: - _NO: Bose distribution for phonons - _idel: Identity exclusion matrix (1 where k != k1, 0 where k == k1) - _EP, _EPT: Electron phonon interaction matrix and its transpose - _HP, _HPT: Hole phonon interaction matrix and its transpose - _Vscale: Scaling constant for Coulomb interactions
- pulsesuite.PSTD3D.phonons.MBPE(ne, VC, E1D, Win, Wout)¶
Many-body phonon-electron interaction.
Calculates the in-scattering and out-scattering rates for electrons due to phonon interactions.
- Parameters:
ne (ndarray) – Electron carrier populations, 1D array
VC (ndarray) – Coulomb interaction array, shape (Nk, Nk, 3) Uses VC[:, :, 1] for electron-electron interaction (Fortran uses VC(:,:,2) which is 1-based)
E1D (ndarray) – 1D energy array, shape (Nk, Nk)
Win (ndarray) – In-scattering rates (modified in-place), 1D array
Wout (ndarray) – Out-scattering rates (modified in-place), 1D array
- Return type:
None
Notes
Modifies Win and Wout in-place. Uses module-level variables _EPT, _EP, _Vscale.
- pulsesuite.PSTD3D.phonons.MBPH(nh, VC, E1D, Win, Wout)¶
Many-body phonon-hole interaction.
Calculates the in-scattering and out-scattering rates for holes due to phonon interactions.
- Parameters:
nh (ndarray) – Hole carrier populations, 1D array
VC (ndarray) – Coulomb interaction array, shape (Nk, Nk, 3) Uses VC[:, :, 2] for hole-hole interaction (Fortran uses VC(:,:,3) which is 1-based)
E1D (ndarray) – 1D energy array, shape (Nk, Nk)
Win (ndarray) – In-scattering rates (modified in-place), 1D array
Wout (ndarray) – Out-scattering rates (modified in-place), 1D array
- Return type:
None
Notes
Modifies Win and Wout in-place. Uses module-level variables _HPT, _HP, _Vscale.
- pulsesuite.PSTD3D.phonons.Cq2(q, V, E1D)¶
Calculate Cq for use in the DC Field module.
Computes the phonon coupling constant Cq for a given momentum array.
- Parameters:
q (ndarray) – Momentum coordinates (1/m), 1D array
V (ndarray) – Interaction potential array, shape (Nk, Nk)
E1D (ndarray) – 1D energy array, shape (Nk, Nk)
- Returns:
Cq values, 1D array of same length as q
- Return type:
ndarray
Notes
Uses module-level variable _Vscale for scaling. The function maps q values to indices in V and E1D arrays.
- pulsesuite.PSTD3D.phonons.FermiDistr(En)¶
Calculate Fermi-Dirac distribution.
Computes the Fermi-Dirac distribution assuming host temperature and Fermi Energy = 0.
- Parameters:
En (float or ndarray) – Energy (J)
- Returns:
Fermi-Dirac distribution value: 1 / (exp(En / (kB * T)) + 1)
- Return type:
float or ndarray
Notes
Uses module-level variable _Temp for temperature. Note: Fortran returns complex type, but the value is always real, so Python returns float.
- pulsesuite.PSTD3D.phonons.BoseDistr(En)¶
Calculate Bose-Einstein distribution.
Computes the Bose-Einstein distribution for phonons.
- Parameters:
En (float or ndarray) – Energy (J)
- Returns:
Bose-Einstein distribution value: 1 / (exp(En / (kB * T)) - 1)
- Return type:
float or ndarray
Notes
Uses module-level variable _Temp for temperature.