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¶
Classes¶
Dephasing state and calculations. |
Functions¶
|
Calculate squared interaction matrix elements. |
|
Calculate off-diagonal dephasing matrix for electrons (version 2). |
|
Calculate off-diagonal dephasing matrix for holes (version 2). |
|
Print dephasing rate to file with index number. |
|
Write dephasing rates to files. |
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
- 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)¶