1112 lines
38 KiB
Fortran
1112 lines
38 KiB
Fortran
!
|
|
!=======================================================================
|
|
!
|
|
MODULE LIFETIME
|
|
!
|
|
USE ACCURACY_REAL
|
|
!
|
|
!
|
|
CONTAINS
|
|
!
|
|
!=======================================================================
|
|
!
|
|
SUBROUTINE LIFETIME_COEF(X,LFT)
|
|
!
|
|
! This subroutine computes the lifetime of a quasiparticle
|
|
!
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * X : dimensionless factor --> X = q / (2 * k_F)
|
|
!
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * LFT : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 12 Nov 2020
|
|
!
|
|
!
|
|
USE MATERIAL_PROP, ONLY : DMN,RS
|
|
USE EXT_FIELDS, ONLY : T
|
|
!
|
|
USE REAL_NUMBERS, ONLY : TWO,HALF
|
|
USE CONSTANTS_P1, ONLY : H_BAR,M_E
|
|
USE FERMI_SI, ONLY : KF_SI
|
|
!
|
|
USE SCREENING_TYPE
|
|
USE DAMPING_VALUES, ONLY : LT_TYPE
|
|
USE CLASSICAL_FLUID_VALUES, ONLY : SL_TYPE
|
|
USE EL_ELE_INTER, ONLY : S,EPS
|
|
!
|
|
USE SCREENING_VEC
|
|
USE SCATTERING_LENGTH
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: X
|
|
REAL (WP), INTENT(OUT) :: LFT
|
|
!
|
|
REAL (WP) :: Q_SI
|
|
REAL (WP) :: EK
|
|
REAL (WP) :: A_SC,KS_SI
|
|
!
|
|
Q_SI = TWO * KF_SI * X ! q in SI
|
|
!
|
|
! Computing the quasiparticle energy
|
|
!
|
|
EK = HALF * H_BAR* H_BAR * Q_SI * Q_SI / M_E !
|
|
!
|
|
! Computing the screening vector
|
|
!
|
|
CALL SCREENING_VECTOR(SC_TYPE,'3D',X,RS,T,KS_SI) !
|
|
!
|
|
IF(DMN == '3D') THEN !
|
|
A_SC = SCAT_LENGTH_3D(EPS,S,Q_SI,KS_SI,SL_TYPE) !
|
|
CALL LIFETIME_3D(EK,RS,T,A_SC,LT_TYPE,LFT) !
|
|
ELSE IF(DMN == '2D') THEN !
|
|
CONTINUE ! not yet implemented
|
|
ELSE IF(DMN == '1D') THEN !
|
|
CONTINUE ! not yet implemented
|
|
END IF !
|
|
!
|
|
END SUBROUTINE LIFETIME_COEF
|
|
!
|
|
!------ 1) 3D case --------------------------------------------
|
|
!
|
|
!=======================================================================
|
|
!
|
|
SUBROUTINE LIFETIME_3D(EK,RS,T,A_SC,LT_TYPE,TAU)
|
|
!
|
|
! This subroutine computes the lifetime of a quasiparticle
|
|
! in a 3D systems.
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
! * T : system temperature in SI
|
|
! * A_SC : quasiparticle scattering length in SI
|
|
! * LT_TYPE : approximation used
|
|
! LT_TYPE = 'QUFE' Quinn-Ferrell formula
|
|
! LT_TYPE = 'GIVI' Giuliani-Vignale formula
|
|
! LT_TYPE = 'DAVI' Davies formula
|
|
! LT_TYPE = 'QIVI' Qian-Vignale formula
|
|
! LT_TYPE = 'INPE' Inogamov-Petrov formula
|
|
! LT_TYPE = 'LUBR' Lugovskoy-Bray formula
|
|
! LT_TYPE = 'GALI' Galitskii formula
|
|
! LT_TYPE = 'NAEC' Nagy-Echenique formula
|
|
! LT_TYPE = 'GIQU' Giuliani-Quinn formula
|
|
!
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * TAU : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
CHARACTER (LEN = 4) :: LT_TYPE
|
|
!
|
|
REAL (WP) :: EK,RS,T,A_SC
|
|
REAL (WP) :: TAU
|
|
!
|
|
IF(LT_TYPE == 'QUFE') THEN !
|
|
TAU = QUFE_LT_3D(EK,RS) !
|
|
ELSE IF(LT_TYPE == 'GIVI') THEN !
|
|
TAU = GIVI_LT_3D(EK,RS,T) !
|
|
ELSE IF(LT_TYPE == 'DAVI') THEN !
|
|
TAU = DAVI_LT_3D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'QIVI') THEN !
|
|
TAU = QIVI_LT_3D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'INPE') THEN !
|
|
TAU = INPE_LT_3D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'LUBR') THEN !
|
|
TAU = LUBR_LT_3D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'GALI') THEN !
|
|
TAU = GALI_LT_3D(EK,A_SC,RS) !
|
|
ELSE IF(LT_TYPE == 'NAEC') THEN !
|
|
TAU = NAEC_LT_3D(EK,RS) !
|
|
ELSE IF(LT_TYPE == 'GIQU') THEN !
|
|
TAU = GIQU_LT_3D(EK,T) !
|
|
END IF !
|
|
!
|
|
END SUBROUTINE LIFETIME_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION DAVI_LT_3D(EK,T)
|
|
!
|
|
! This function computes Davies approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) R. W. Davies, J. Phys. Chem. Solids 28,
|
|
! 1001-1008 (1967)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * DAVI_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,FOUR
|
|
USE CONSTANTS_P1, ONLY : H_BAR,E,K_B
|
|
USE FERMI_SI, ONLY : EF_SI,KF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: DAVI_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R4,K_TF_SI
|
|
REAL (WP) :: CP,DELTA,EMKT,GAMMA
|
|
!
|
|
REAL (WP) :: ATAN
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
R4 = KF_SI / K_TF_SI !
|
|
CP = MU('3D',T) ! chemical potential
|
|
DELTA = EK - CP !
|
|
EMKT = DELTA**2 + (PI * K_B * T)**2 !
|
|
!
|
|
GAMMA = E * E * R4 * ( ATAN(TWO * R4) + & !
|
|
TWO * R4 / (ONE + FOUR * R4 * R4) ) *& ! ref. (1) eq. (A.10)
|
|
R4 * EMKT / (32.0E0_WP * EF_SI * EF_SI) !
|
|
!
|
|
UAT = TWO * GAMMA / H_BAR ! ref. (1) eq. (28)
|
|
!
|
|
DAVI_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION DAVI_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GALI_LT_3D(EK,A_SC,RS)
|
|
!
|
|
! This function computes Galitskii approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) I. Nagy and P. M. Echenique, Phys. Rev. B 85,
|
|
! 115131 (2012)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * A_SC : quasiparticle scattering length in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GALI_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,THREE,FOUR,FIVE, &
|
|
SEVEN,EIGHT,HALF
|
|
USE CONSTANTS_P1, ONLY : H_BAR,M_E
|
|
USE FERMI_SI, ONLY : EF_SI,VF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE UTILITIES_1, ONLY : RS_TO_N0
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,A_SC,RS
|
|
REAL (WP) :: GALI_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R1,V
|
|
REAL (WP) :: N0
|
|
!
|
|
REAL (WP) :: SQRT
|
|
!
|
|
N0 = RS_TO_N0('3D',RS) !
|
|
!
|
|
R1 = EK / EF_SI !
|
|
V = FOUR * PI * A_SC * H_BAR * H_BAR / M_E ! interaction potential
|
|
! !
|
|
UAT = N0 * THREE * VF_SI * ( EIGHT * V * V / & !
|
|
(15.0E0_WP * SQRT(R1)) * ( & !
|
|
(TWO - R1)**2.5E0_WP + & ! ref. (1) eq. (1)
|
|
HALF * (FIVE * R1 - SEVEN) ) & !
|
|
) / (16.0E0_WP * PI) !
|
|
!
|
|
GALI_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION GALI_LT_3D
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GIQU_LT_3D(EK,T)
|
|
!
|
|
! This function computes Giuliani-Quinn approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) G. F. Giuliani and J. J. Quinn, Phys. Rev. B 26,
|
|
! 4421-4428 (1982)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GIQU_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,FOURTH
|
|
USE CONSTANTS_P1, ONLY : H_BAR,E
|
|
USE FERMI_SI, ONLY : EF_SI,KF_SI
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP) :: EK,T
|
|
REAL (WP) :: GIQU_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R4,K_TF_SI
|
|
REAL (WP) :: CP,DELTA
|
|
!
|
|
REAL (WP) :: ATAN
|
|
!
|
|
CP = MU('3D',T) ! chemical potential
|
|
!
|
|
DELTA = EK - CP !
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
R4 = KF_SI / K_TF_SI ! k_F / k_TF
|
|
!
|
|
UAT = E * E * KF_SI * ( ONE / (ONE + FOURTH / (R4 * R4)) + & !
|
|
TWO * R4 * ATAN(TWO * R4) & !
|
|
) * & ! ref. (1) eq. (C1)
|
|
(DELTA / EF_SI)**2 & !
|
|
/ (32.0E0_WP * H_BAR) !
|
|
!
|
|
GIQU_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION GIQU_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GIVI_LT_3D(EK,RS,T)
|
|
!
|
|
! This function computes Giuliani-Vignale approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) G. Giuliani and G. Vignale, "Quantum Theory of the
|
|
! Electron Liquid", Cambridge Uiversity Press (2005)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GIVI_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,EIGHT,HALF,FOURTH
|
|
USE CONSTANTS_P1, ONLY : H_BAR,K_B
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE UTILITIES_1, ONLY : ALFA
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS,T
|
|
REAL (WP) :: GIVI_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R3,ALPHA
|
|
REAL (WP) :: CP,DELTA,EMKT,ZETA,EXPO
|
|
!
|
|
REAL (WP) :: SQRT,TAN,EXP
|
|
!
|
|
ALPHA = ALFA('3D') !
|
|
!
|
|
R3 = PI / (ALPHA * RS) !
|
|
CP = MU('3D',T) ! chemical potential
|
|
DELTA = EK - CP !
|
|
EMKT = DELTA**2 + (PI * K_B * T)**2 !
|
|
!
|
|
ZETA = SQRT(FOURTH / R3) * TAN(SQRT(R3)) + HALF / (ONE + R3) ! ref. (1) eq. (8.92)
|
|
EXPO = EXP(- DELTA / (K_B * T)) !
|
|
!
|
|
UAT = PI * EMKT * ZETA / & ! ref. (1) eq. (8.93)
|
|
(EIGHT * H_BAR * EF_SI * (ONE + EXPO)) !
|
|
!
|
|
GIVI_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION GIVI_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION INPE_LT_3D(EK,T)
|
|
!
|
|
! This function computes Inogamov-Petrov approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) N. A. Inogamov and Yu. V. Petrov, JETP 110, 505-529 (2010)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * INPE_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,SEVEN,EIGHT
|
|
USE CONSTANTS_P1, ONLY : H_BAR,M_E,E,K_B
|
|
USE PI_ETC, ONLY : PI
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: INPE_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R4,COEF1,COEF2
|
|
REAL (WP) :: K_TF_SI,K1
|
|
REAL (WP) :: G,ETA
|
|
!
|
|
REAL (WP) :: SQRT,ATAN
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
K1 = SQRT(TWO * M_E * EK) / H_BAR ! k
|
|
R4 = K1 / K_TF_SI ! k / k_TF
|
|
!
|
|
COEF1 = M_E * M_E * M_E * E * E * E * E ! m^3 * e^4
|
|
COEF2 = H_BAR**SEVEN * K1 * K1 * K1 * K1 ! h_bar^7 * k^4
|
|
ETA = TWO * R4 !
|
|
G = ETA**4 / (ONE + ETA * ETA) + ETA**3 * ATAN(ETA) !
|
|
!
|
|
UAT = PI * COEF1 * G *K_B * T * K_B * T / (EIGHT * COEF2) ! ref. (1) eq. (24)
|
|
!
|
|
INPE_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION INPE_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION LUBR_LT_3D(EK,T)
|
|
!
|
|
! This function computes Lugovskoy-Bray approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * LUBR_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,SEVEN,FOUR
|
|
USE CONSTANTS_P1, ONLY : H_BAR,M_E,E,K_B
|
|
USE PI_ETC, ONLY : PI,PI2
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: LUBR_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R4,COEF1,COEF2
|
|
REAL (WP) :: K_TF_SI,K1
|
|
REAL (WP) :: CP,DELTA
|
|
REAL (WP) :: G,ETA
|
|
!
|
|
REAL (WP) :: SQRT,ATAN
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
CP = MU('3D',T) ! chemical potential
|
|
!
|
|
DELTA = EK - CP !
|
|
!
|
|
K1 = SQRT(TWO * M_E * EK) / H_BAR ! k
|
|
R4 = K1 / K_TF_SI ! k / k_TF
|
|
!
|
|
COEF1 = M_E * M_E * M_E * E * E * E * E ! m^3 * e^4
|
|
COEF2 = H_BAR**SEVEN * K1 * K1 * K1 * K1 ! h_bar^7 * k^4
|
|
ETA = TWO * R4 !
|
|
G = ETA**4 / (ONE + ETA * ETA) + ETA**3 * ATAN(ETA) - & !
|
|
ATAN(ETA * SQRT(ETA * ETA + TWO)) / & !
|
|
DSQRT(ETA * ETA + TWO) !
|
|
!
|
|
UAT = PI * COEF1 * G / (FOUR * COEF2) * ( & !
|
|
(K_B * T)**2 + DELTA * DELTA / PI2 & !
|
|
) !
|
|
!
|
|
LUBR_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION LUBR_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION NAEC_LT_3D(EK,RS)
|
|
!
|
|
! This function computes Nagy_Echenique approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) I. Nagy and P. M. Echenique, Phys. Rev. B 85,
|
|
! 115131 (2012)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * NAEC_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,THREE,FOUR,EIGHT,THIRD
|
|
USE FERMI_SI, ONLY : EF_SI,KF_SI,VF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE UTILITIES_1, ONLY : RS_TO_N0
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS
|
|
REAL (WP) :: NAEC_LT_3D
|
|
REAL (WP) :: UAT,KF2
|
|
REAL (WP) :: R1,G1,G2
|
|
REAL (WP) :: N0
|
|
!
|
|
REAL (WP) :: LOG,SQRT,ABS
|
|
!
|
|
N0 = RS_TO_N0('3D',RS) !
|
|
KF2 = KF_SI * KF_SI !
|
|
!
|
|
R1 = EK / EF_SI !
|
|
G1 = LOG(R1 - ONE) + EIGHT * THIRD - TWO * LOG(TWO) !
|
|
G2 = TWO * THIRD * (TWO - R1)**1.5E0_WP + & !
|
|
TWO * SQRT(TWO - R1) + & !
|
|
LOG(ABS((SQRT(TWO - R1) - ONE) / (SQRT(TWO - R1) + ONE)))!
|
|
!
|
|
UAT = N0 * THREE * VF_SI *( (THREE * PI / KF2)**2 * & ! ref. (1) eq. (7)
|
|
FOUR * (G1 - G2) * THIRD / & !
|
|
SQRT(R1) & !
|
|
) ! pb of units !
|
|
!
|
|
NAEC_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION NAEC_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION QIVI_LT_3D(EK,T)
|
|
!
|
|
! This function computes Qian-Vignale approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) Z. Qian and G. Vignale, Phys. Rev. B 71,
|
|
! 075112 (2005)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * QIVI_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,HALF
|
|
USE CONSTANTS_P1, ONLY : H_BAR,M_E,E,K_B
|
|
USE FERMI_SI, ONLY : KF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: QIVI_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: COEF1,COEF2
|
|
REAL (WP) :: K_TF_SI,KS_SI,K
|
|
REAL (WP) :: CP,DELTA,EMKT,LAMBDA,EXPO
|
|
REAL (WP) :: UAT_E,UAT_D
|
|
!
|
|
REAL (WP) :: SQRT,EXP,ATAN
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
CP = MU('3D',T) ! chemical potential
|
|
!
|
|
DELTA = EK - CP !
|
|
!
|
|
EMKT = DELTA**2 + (PI * K_B * T)**2 !
|
|
!
|
|
KS_SI = K_TF_SI !
|
|
K = SQRT(TWO * M_E * EK / (H_BAR * H_BAR)) ! quasiparticle k in SI
|
|
COEF1 = M_E * M_E * M_E * E * E * E * E ! m^3 * e^4
|
|
COEF2 = H_BAR *K * KS_SI * KS_SI * KS_SI ! p * k_s^3
|
|
LAMBDA = TWO * KF_SI / KS_SI !
|
|
EXPO = EXP(- DELTA / (K_B * T)) !
|
|
!
|
|
UAT_E = - COEF1 / (PI * COEF2) * & !
|
|
EMKT / (ONE + EXPO) * ONE / & !
|
|
SQRT(LAMBDA * LAMBDA + TWO) * & ! ref. (1) eq. (32)
|
|
( HALF * PI - & !
|
|
ATAN(ONE / (LAMBDA * SQRT(LAMBDA * LAMBDA + TWO)))&!
|
|
) !
|
|
!
|
|
UAT_D = PI * COEF1 / (TWO * COEF2) * (K_B * T)**2 * & ! ref. (1) eq. (33)
|
|
(LAMBDA / (LAMBDA * LAMBDA + ONE) + ATAN(LAMBDA)) !
|
|
!
|
|
UAT = UAT_D + UAT_E ! ref. (1) eq. (3)
|
|
!
|
|
QIVI_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION QIVI_LT_3D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION QUFE_LT_3D(EK,RS)
|
|
!
|
|
! This function computes Quinn-Ferrel approximation for
|
|
! the quasiparticle lifetime in the 3D case
|
|
!
|
|
! References: (1) W. S. Fann et al, Phys. Rev. B 46, 13592-13595 (1992)
|
|
! 4421-4428 (1982)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * QUFE_LT_3D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,THREE
|
|
USE CONSTANTS_P1, ONLY : H_BAR
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE PI_ETC, ONLY : PI2
|
|
USE PLASMON_ENE_SI
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS
|
|
REAL (WP) :: QUFE_LT_3D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R1
|
|
!
|
|
REAL (WP) :: SQRT
|
|
!
|
|
R1 = EK / EF_SI !
|
|
!
|
|
UAT = PI2 * SQRT(THREE) * ENE_P_SI * (R1 - ONE) * & !
|
|
(R1 - ONE) / (128.0E0_WP * H_BAR) ! ref. (1) eq. (1)-(2)
|
|
!
|
|
QUFE_LT_3D = ONE / UAT !
|
|
!
|
|
END FUNCTION QUFE_LT_3D
|
|
!
|
|
!------ 2) 2D case --------------------------------------------
|
|
!
|
|
!
|
|
!=======================================================================
|
|
!
|
|
SUBROUTINE LIFETIME_2D(EK,RS,T,A_SI,LT_TYPE,TAU)
|
|
!
|
|
! This subroutine computes the lifetime of a quasiparticle
|
|
! in a 2D systems.
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
! * T : system temperature in SI
|
|
! * A_SI : layer interspacing in SI
|
|
! * LT_TYPE : approximation used
|
|
! LT_TYPE = 'GIVI' Giuliani-Vignale formula
|
|
! LT_TYPE = 'GIQ1' Giuliani-Quinn formula for e-h loss
|
|
! LT_TYPE = 'GIQ2' Giuliani-Quinn formula for plasmon loss
|
|
! LT_TYPE = 'QIVI' Qian-Vignale formula
|
|
! LT_TYPE = 'MELA' Menashe-Laikhtman formula
|
|
! LT_TYPE = 'HAWR' Hawrylak formula
|
|
!
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * TAU : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 June 2020
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
CHARACTER (LEN = 4) :: LT_TYPE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS,T,A_SI
|
|
REAL (WP), INTENT(OUT) :: TAU
|
|
!
|
|
IF(LT_TYPE == 'GIVI') THEN !
|
|
TAU = GIVI_LT_2D(EK,RS,T) !
|
|
ELSE IF(LT_TYPE == 'GIQ1') THEN !
|
|
TAU = GIQ1_LT_2D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'GIQ2') THEN !
|
|
TAU = GIQ2_LT_2D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'QIVI') THEN !
|
|
TAU = QIVI_LT_2D(EK,RS,T) !
|
|
ELSE IF(LT_TYPE == 'MELA') THEN !
|
|
TAU = MELA_LT_2D(EK,T) !
|
|
ELSE IF(LT_TYPE == 'HAWR') THEN !
|
|
TAU = HAWR_LT_2D(EK,A_SI,RS) !
|
|
END IF !
|
|
!
|
|
END SUBROUTINE LIFETIME_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GIQ1_LT_2D(EK,T)
|
|
!
|
|
! This function computes Giuliani-Quinn approximation for
|
|
! the quasiparticle lifetime in the 2D case
|
|
!
|
|
! In this approximation, the lifetime is limited by the decay into
|
|
! an electron-hole pair
|
|
!
|
|
! References: (1) G. F. Giuliani and J. J. Quinn, Phys. Rev. B 26,
|
|
! 4421-4428 (1982)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GIQ1_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,HALF,FOUR
|
|
USE CONSTANTS_P1, ONLY : H_BAR,K_B
|
|
USE FERMI_SI, ONLY : EF_SI,KF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE SCREENING_VEC, ONLY : THOMAS_FERMI_VECTOR
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: GIQ1_LT_2D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R1,R2,K_TF_SI
|
|
REAL (WP) :: CP,DELTA
|
|
REAL (WP) :: SMALL
|
|
!
|
|
REAL (WP) :: LOG
|
|
!
|
|
SMALL = 1.E-1_WP !
|
|
!
|
|
! Computing the Thomas-Fermi momentum
|
|
!
|
|
CALL THOMAS_FERMI_VECTOR('3D',K_TF_SI) !
|
|
!
|
|
CP = MU('2D',T) ! chemical potential
|
|
DELTA = EK - CP !
|
|
R1 = DELTA / EF_SI !
|
|
R2 = K_B * T / EF_SI !
|
|
! ! decay into e-h pair
|
|
IF(T <= SMALL) THEN !
|
|
!
|
|
UAT = - EF_SI * R1 * R1 *( LOG(R1) - HALF - & !
|
|
LOG(TWO * K_TF_SI / KF_SI) & ! ref. (1) eq. (13)
|
|
) / (FOUR * PI * H_BAR) !
|
|
!
|
|
ELSE !
|
|
!
|
|
UAT = - EF_SI * R2 * R2*( LOG(R2) - LOG(K_TF_SI / KF_SI) -& !
|
|
LOG(TWO) - ONE ) / & ! ref. (1) eq. (14)
|
|
(TWO * PI * H_BAR) !
|
|
!
|
|
END IF !
|
|
!
|
|
GIQ1_LT_2D = ONE / UAT !
|
|
!
|
|
END FUNCTION GIQ1_LT_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GIQ2_LT_2D(EK,T)
|
|
!
|
|
! This function computes Giuliani-Quinn approximation for
|
|
! the quasiparticle lifetime in the 2D case.
|
|
!
|
|
! In this approximation, the lifetime is limited by the decay into
|
|
! a plasmon mode
|
|
!
|
|
! References: (1) G. F. Giuliani and J. J. Quinn, Phys. Rev. B 26,
|
|
! 4421-4428 (1982)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GIQ2_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO
|
|
USE CONSTANTS_P1, ONLY : H_BAR,E,M_E
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: GIQ2_LT_2D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: R1
|
|
REAL (WP) :: CP,DELTA
|
|
!
|
|
REAL (WP) :: SQRT
|
|
!
|
|
CP = MU('2D',T) ! chemical potential
|
|
DELTA = EK - CP !
|
|
R1 = DELTA / EF_SI !
|
|
! ! decay into plasmon mode
|
|
UAT = TWO * E * E * E * E * M_E * DSQRT(R1) / & !
|
|
(H_BAR * H_BAR * H_BAR) ! ref. (1) eq. (22)
|
|
!
|
|
GIQ2_LT_2D = ONE / UAT !
|
|
!
|
|
END FUNCTION GIQ2_LT_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION GIVI_LT_2D(EK,RS,T)
|
|
!
|
|
! This function computes Giuliani-Vignale approximation for
|
|
! the quasiparticle lifetime in the 2D case
|
|
!
|
|
! References: (1) G. Giuliani and G. Vignale, "Quantum Theory of the
|
|
! Electron Liquid", Cambridge Uiversity Press (2005)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * GIVI_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,FOUR,EIGHT,HALF
|
|
USE CONSTANTS_P1, ONLY : H_BAR,K_B
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS,T
|
|
REAL (WP) :: GIVI_LT_2D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: ZETA
|
|
REAL (WP) :: SMALL
|
|
!
|
|
REAL (WP) :: LOG,ABS
|
|
!
|
|
SMALL = 1.E-1_WP !
|
|
!
|
|
ZETA = ONE + HALF * (RS / (RS + SQRT(TWO)))**2 ! ref. (1) eq. (8.100)
|
|
!
|
|
IF(T <= SMALL) THEN !
|
|
UAT = ZETA * (EK - EF_SI)**2 * LOG( FOUR * EF_SI / & !
|
|
DABS(EK - EF_SI) & !
|
|
) / & ! ref. (1) eq. (8.102)
|
|
(FOUR * PI * H_BAR * EF_SI) !
|
|
ELSE !
|
|
UAT = ZETA * (PI * K_B * T)**2 * LOG( FOUR * EF_SI / & !
|
|
(K_B * T) & !
|
|
) / & ! ref. (1) eq. (8.103)
|
|
(EIGHT * PI * H_BAR * EF_SI)!
|
|
END IF !
|
|
!
|
|
GIVI_LT_2D = ONE / UAT !
|
|
!
|
|
END FUNCTION GIVI_LT_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION HAWR_LT_2D(EK,A_SI,RS)
|
|
!
|
|
! This function computes Hawrylak approximation for
|
|
! the quasiparticle lifetime in the 2D case
|
|
!
|
|
! This is for a layered system
|
|
!
|
|
! References: (1) P. Hawrylak, Phys. Rev. Lett. 59, 485-488 (1987)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * A_SI : layer interspacing in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * HAWR_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,EIGHT
|
|
USE CONSTANTS_P1, ONLY : BOHR,H_BAR,M_E
|
|
USE FERMI_SI, ONLY : KF_SI
|
|
USE ENE_CHANGE, ONLY : RYD
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,A_SI,RS
|
|
REAL (WP) :: HAWR_LT_2D
|
|
REAL (WP) :: A,CC
|
|
REAL (WP) :: K,KC
|
|
REAL (WP) :: UAT
|
|
!
|
|
REAL (WP) :: SQRT
|
|
!
|
|
A = A_SI / BOHR ! spacing in a.u.
|
|
CC = ONE + ONE / A !
|
|
!
|
|
K = SQRT(TWO * M_E * EK) / H_BAR ! k
|
|
KC = KF_SI * (CC /DSQRT(CC * CC - ONE)) ! k_c
|
|
!
|
|
UAT = EIGHT * RYD *A * ( CC / (CC * CC - ONE) )**1.5E0_WP * & !
|
|
(K / KC - ONE)**2 / & ! ref. (1) eq. (8)
|
|
(SQRT(TWO) * RS * RS) !
|
|
!
|
|
HAWR_LT_2D = ONE / UAT !
|
|
!
|
|
END FUNCTION HAWR_LT_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION MELA_LT_2D(EK,T)
|
|
!
|
|
! This function computes Menashe-Laikhtman approximation for
|
|
! the quasiparticle lifetime in the 2D case
|
|
!
|
|
! In this approximation, the lifetime is limited by
|
|
! electron-electron scattering
|
|
!
|
|
! References: (1) D. Menashe and B. Laikhtman, Phys. Rev. B 54,
|
|
! 11561-11574 (1996)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * MELA_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE
|
|
USE CONSTANTS_P1, ONLY : H_BAR,K_B
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,T
|
|
REAL (WP) :: MELA_LT_2D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: CP,DELTA
|
|
REAL (WP) :: R1,R2
|
|
!
|
|
REAL (WP) :: LOG,ABS
|
|
!
|
|
CP = MU('2D',T) ! chemical potential
|
|
!
|
|
DELTA = EK - CP !
|
|
R1 = DELTA / EF_SI !
|
|
R2 = K_B * T / EF_SI !
|
|
! ! e-e scattering
|
|
IF(R2 <= R1) THEN ! k_B T << EK-CP
|
|
!
|
|
UAT = EF_SI * ((EK - EF_SI)**2 / EF_SI**2) * & !
|
|
LOG(EF_SI / (ABS(EK - EF_SI))) / & ! ref. (1) eq. (27)
|
|
16.0E0_WP * PI * H_BAR !
|
|
!
|
|
ELSE !
|
|
!
|
|
UAT = PI * EF_SI * (K_B * T / EF_SI)**2 * & !
|
|
LOG(EF_SI / (K_B * T)) / & ! ref. (1) eq. (27)
|
|
16.0E0_WP * H_BAR !
|
|
!
|
|
END IF !
|
|
!
|
|
MELA_LT_2D=ONE/UAT !
|
|
!
|
|
END FUNCTION MELA_LT_2D
|
|
!
|
|
!=======================================================================
|
|
!
|
|
FUNCTION QIVI_LT_2D(EK,RS,T)
|
|
!
|
|
! This function computes Qian-Vignale approximation for
|
|
! the quasiparticle lifetime in the 2D case
|
|
!
|
|
! References: (1) Z. Qian and G. Vignale, Phys. Rev. B 71,
|
|
! 075112 (2005)
|
|
!
|
|
! Input parameters:
|
|
!
|
|
! * EK : quasiparticle energy in SI
|
|
! * RS : Wigner-Seitz radius (in units of a_0)
|
|
! * T : system temperature in SI
|
|
!
|
|
! Output parameters:
|
|
!
|
|
! * QIVI_LT_2D : lifetime in seconds
|
|
!
|
|
! Author : D. Sébilleau
|
|
!
|
|
! Last modified : 11 Jun 2020
|
|
!
|
|
!
|
|
USE REAL_NUMBERS, ONLY : ONE,TWO,FOUR,EIGHT,HALF
|
|
USE CONSTANTS_P1, ONLY : K_B
|
|
USE FERMI_SI, ONLY : EF_SI
|
|
USE PI_ETC, ONLY : PI
|
|
USE CHEMICAL_POTENTIAL, ONLY : MU
|
|
!
|
|
IMPLICIT NONE
|
|
!
|
|
REAL (WP), INTENT(IN) :: EK,RS,T
|
|
REAL (WP) :: QIVI_LT_2D
|
|
REAL (WP) :: UAT
|
|
REAL (WP) :: CP,DELTA
|
|
REAL (WP) :: BRAK,R1,R2
|
|
!
|
|
REAL (WP) :: SQRT,LOG
|
|
!
|
|
CP = MU('2D',T) ! chemical potential
|
|
!
|
|
DELTA = EK - CP !
|
|
BRAK = 0.75E0_WP - RS / (SQRT(TWO) * (RS + SQRT(TWO)))**2 ! ref. (1) eq. (61)
|
|
!
|
|
R1 = DELTA / EF_SI !
|
|
R2 = K_B * T / EF_SI !
|
|
!
|
|
IF(R2 <= R1) THEN ! k_B T << EK-CP
|
|
!
|
|
UAT = DELTA * DELTA * BRAK * LOG(TWO / R1) / & !
|
|
(FOUR * PI * EF_SI) ! ref. (1) eq. (60)
|
|
!
|
|
ELSE !
|
|
!
|
|
UAT = -PI * EF_SI * R2 * R2 * BRAK * LOG(HALF * R2) / EIGHT! ref. (1) eq. (72)
|
|
!
|
|
END IF !
|
|
!
|
|
QIVI_LT_2D = ONE / UAT !
|
|
!
|
|
END FUNCTION QIVI_LT_2D
|
|
!
|
|
END MODULE LIFETIME
|