pulsesuite.PSTD3D.dephasing

Dephasing calculations for quantum wire simulations.

This module calculates dephasing rates for electrons and holes due to carrier-carrier interactions in the Semiconductor Bloch equations.

Author: Rahul R. Sah

Bugs: Why Lrtz jit here? -> tackle nopython=True in the future

Attributes

pi

hbar

ii

Classes

DephasingModule

Dephasing state and calculations.

Functions

Vxx2(q, V)

Calculate squared interaction matrix elements.

CalcOffDiagDeph_E2(ne, nh, ky, Ee, Eh, gee, geh, VC, Nk)

Calculate off-diagonal dephasing matrix for electrons (version 2).

CalcOffDiagDeph_H2(ne, nh, ky, Ee, Eh, ghh, geh, VC, Nk)

Calculate off-diagonal dephasing matrix for holes (version 2).

printGam(Dx, z, n, file)

Print dephasing rate to file with index number.

WriteDephasing(ky, gamE, gamH, w, xxx)

Write dephasing rates to files.

InitializeDephasing(ky, me, mh)

CalcGammaE(ky, ne0, nh0, VC, GammaE)

CalcGammaH(ky, ne0, nh0, VC, GammaH)

CalcOffDiagDeph_E(ne0, nh0, ky, Ee0, Eh0, gee, geh, VC)

CalcOffDiagDeph_H(ne0, nh0, ky, Ee0, Eh0, ghh, geh, VC)

OffDiagDephasing(ne, nh, p, ky, Ee, Eh, g, VC, x)

OffDiagDephasing2(ne, nh, p, ky, Ee, Eh, g, VC, t, x)

Module Contents

pulsesuite.PSTD3D.dephasing.pi
pulsesuite.PSTD3D.dephasing.hbar
pulsesuite.PSTD3D.dephasing.ii = 1j
pulsesuite.PSTD3D.dephasing.Vxx2(q, V)

Calculate squared interaction matrix elements.

Computes V(1+iq, 1)^2 for each momentum q, where iq is the rounded index corresponding to abs(q/dq).

pulsesuite.PSTD3D.dephasing.CalcOffDiagDeph_E2(ne, nh, ky, Ee, Eh, gee, geh, VC, Nk)

Calculate off-diagonal dephasing matrix for electrons (version 2).

Stateless — takes all inputs as arguments.

pulsesuite.PSTD3D.dephasing.CalcOffDiagDeph_H2(ne, nh, ky, Ee, Eh, ghh, geh, VC, Nk)

Calculate off-diagonal dephasing matrix for holes (version 2).

Stateless — takes all inputs as arguments.

pulsesuite.PSTD3D.dephasing.printGam(Dx, z, n, file)

Print dephasing rate to file with index number.

Writes to ‘dataQW/{file}{n:05d}.dat’.

pulsesuite.PSTD3D.dephasing.WriteDephasing(ky, gamE, gamH, w, xxx)

Write dephasing rates to files.

Writes electron and hole dephasing rates with wire index.

class pulsesuite.PSTD3D.dephasing.DephasingModule

Dephasing state and calculations.

Encapsulates all mutable state that was previously at module level: momentum index arrays, energy weighting arrays, and file handles.

Usage (mirrors Fortran workflow):

deph = DephasingModule()
deph.InitializeDephasing(ky, me, mh)
deph.CalcGammaE(ky, ne0, nh0, VC, GammaE)
deph.CalcGammaH(ky, ne0, nh0, VC, GammaH)
InitializeDephasing(ky, me, mh)

Initialize the dephasing module.

Sets up all arrays required for dephasing calculations. Allocates momentum index arrays and opens output files.

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

  • me (float) – Effective electron mass (kg)

  • mh (float) – Effective hole mass (kg)

CalcGammaE(ky, ne0, nh0, VC, GammaE)

Calculate electron dephasing rate.

Computes dephasing for electrons due to e-e and e-h interactions. Modifies GammaE in-place.

CalcGammaH(ky, ne0, nh0, VC, GammaH)

Calculate hole dephasing rate.

Computes dephasing for holes due to h-h and e-h interactions. Modifies GammaH in-place.

CalcOffDiagDeph_E(ne0, nh0, ky, Ee0, Eh0, gee, geh, VC)

Calculate off-diagonal dephasing matrix for electrons.

Returns 2D array of shape (Nk, Nk).

CalcOffDiagDeph_H(ne0, nh0, ky, Ee0, Eh0, ghh, geh, VC)

Calculate off-diagonal dephasing matrix for holes.

Returns 2D array of shape (Nk, Nk).

OffDiagDephasing(ne, nh, p, ky, Ee, Eh, g, VC, x)

Calculate off-diagonal dephasing contribution.

Modifies x in-place.

OffDiagDephasing2(ne, nh, p, ky, Ee, Eh, g, VC, t, x)

Calculate off-diagonal dephasing contribution (version 2).

Modifies x in-place. Writes max/min values to output files.

pulsesuite.PSTD3D.dephasing.InitializeDephasing(ky, me, mh)
pulsesuite.PSTD3D.dephasing.CalcGammaE(ky, ne0, nh0, VC, GammaE)
pulsesuite.PSTD3D.dephasing.CalcGammaH(ky, ne0, nh0, VC, GammaH)
pulsesuite.PSTD3D.dephasing.CalcOffDiagDeph_E(ne0, nh0, ky, Ee0, Eh0, gee, geh, VC)
pulsesuite.PSTD3D.dephasing.CalcOffDiagDeph_H(ne0, nh0, ky, Ee0, Eh0, ghh, geh, VC)
pulsesuite.PSTD3D.dephasing.OffDiagDephasing(ne, nh, p, ky, Ee, Eh, g, VC, x)
pulsesuite.PSTD3D.dephasing.OffDiagDephasing2(ne, nh, p, ky, Ee, Eh, g, VC, t, x)