MsSpec-DFM/New_libraries/DFM_library/CONFINEMENT_LIBRARY/confinement_wf.f90

415 lines
13 KiB
Fortran
Raw Normal View History

2022-02-02 16:19:10 +01:00
!
!=======================================================================
!
MODULE CONFINEMENT_WF
!
USE ACCURACY_REAL
!
CONTAINS
!
!
!=======================================================================
!
FUNCTION CONFIN_WF(R,TH,SB_I,OM0,N_DEP,N_INV,EPSS)
!
! This function computes the confinement wave function
!
!
!
! Input parameters:
!
! * R : radial parameter
! * TH : polar angle
! * SB_I : sub-band index (0, 1, 2, ...) --> limited to 10
! * N_DEP : electron concentration in depletion layer (SI)
! * N_INV : electron concentration in inversion layer (SI)
! * EPSS : dielectric constant of the semiconductor
! * OM0 : frequency of the confinement potential (SI)
!
! Intermediate parameters:
!
! * CONFIN : type of confinement
! CONFIN = 'INF_QWW'
! CONFIN = 'INVLAYE'
! CONFIN = 'IQWE_LB'
! CONFIN = 'PC1_QWI'
! CONFIN = 'PC2_QWI'
! CONFIN = 'SWC_QWI'
! * L : length of the quantum well (SI)
!
!
! Output parameters:
!
! * CONFIN_WF : wave function
!
!
!
! Author : D. Sébilleau
!
! Last modified : 10 Jun 2020
!
!
USE REAL_NUMBERS, ONLY : ZERO
USE CONFIN_VAL, ONLY : CONFIN,R0,L
!
IMPLICIT NONE
!
INTEGER, INTENT(IN) :: SB_I
!
REAL (WP), INTENT(IN) :: R,TH,OM0
REAL (WP), INTENT(IN) :: N_DEP,N_INV,EPSS
REAL (WP) :: CONFIN_WF
!
IF(CONFIN == 'NO-CONF') THEN !
CONFIN_WF = ZERO !
ELSE IF(CONFIN == 'INF_QWW') THEN !
CONFIN_WF = INF_QWW_WF(R,TH,R0,SB_I) !
ELSE IF(CONFIN == 'INVLAYE') THEN !
CONFIN_WF = INVLAYE_WF(R,N_DEP,N_INV,EPSS) !
ELSE IF(CONFIN == 'IQWE_LB') THEN !
CONFIN_WF = IQWE_LB_WF(R,L) !
ELSE IF(CONFIN == 'PC1_QWI') THEN !
CONFIN_WF = PC1_QWI_WF(R,OM0,SB_I) !
ELSE IF(CONFIN == 'PC2_QWI') THEN !
CONFIN_WF = PC2_QWI_WF(R,OM0) !
ELSE IF(CONFIN == 'SWC_QWI') THEN !
CONFIN_WF = SWC_QWI_WF(R,L) !
END IF !
!
END FUNCTION CONFIN_WF
!
!=======================================================================
!
FUNCTION INF_QWW_WF(R,TH,R0,SB_I)
!
! This function computes the wave function in the two lower subbands
! of a quantum-well wire.
!
! Reference: (1) A. Gold and A. Ghazali, Phys. Rev. B 41, 7626 (1990)
!
!
! Input parameters:
!
! * R : radial parameter
! * TH : polar angle
! * R0 : radius of the quantum wire (same unit as R)
! * SB_I : sub-band index
!
! Output parameters:
!
! * INF_QWW_FF : form factor
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : ONE,THREE
USE COMPLEX_NUMBERS
USE PI_ETC, ONLY : PI_INV
!
IMPLICIT NONE
!
INTEGER :: SB_I
!
REAL (WP), INTENT(IN) :: R,TH,R0
REAL (WP) :: R02,R03,R2,R3
REAL (WP) :: COEF
!
REAL (WP) :: SQRT
!
COMPLEX (WP) :: INF_QWW_WF
!
COMPLEX (WP) :: CMPLX,EXP
!
R02 = R0 * R0 !
R03 = R02 * R0 !
R2 = R * R !
R3 = R2 * R !
!
!
IF(SB_I == 1) THEN !
IF(R < R0) THEN !
COEF = SQRT(THREE * PI_INV / R02) !
INF_QWW_WF = CMPLX(COEF * (ONE - R2 / R02),KIND=WP) !
ELSE !
INF_QWW_WF = ZEROC !
END IF !
ELSE IF(SB_I == 2) THEN !
IF(R < R0) THEN !
COEF = SQRT(12.0E0_WP * PI_INV / R02) !
INF_QWW_WF = COEF * (R / R0 - R3 / R03) * EXP(IC * TH) !
ELSE !
INF_QWW_WF = ZEROC !
END IF !
END IF !
!
END FUNCTION INF_QWW_WF
!
!=======================================================================
!
FUNCTION INVLAYE_WF(Z,N_DEP,N_INV,EPSS)
!
! This function computes the wave function of the surface inversion layer
! of a semiconductor in the z direction
!
! Reference: (1) M. Jonson, J. Phys. C: Solid State Phys. 9, 3055-3071 (1976)
!
!
! Input parameters:
!
! * Z : z coordinate
! * N_DEP : electron concentration in depletion layer (SI)
! * N_INV : electron concentration in inversion layer (SI)
! * EPSS : dielectric constant of the semiconductor
!
! Output parameters:
!
! * INVLAYE_WF : relaxation time in seconds
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : HALF,THIRD
USE PI_ETC, ONLY : PI
USE CONSTANTS_P1, ONLY : H_BAR,E,M_E
!
IMPLICIT NONE
!
REAL (WP), INTENT(IN) :: Z,N_DEP,N_INV,EPSS
REAL (WP) :: INVLAYE_WF
REAL (WP) :: B,B3
REAL (WP) :: NUM,DEN
!
REAL (WP) :: SQRT,EXP
!
! Computation of parameter B
!
NUM = 48.0E0_WP * PI * E * E * M_E !
DEN = EPSS * H_BAR * H_BAR !
!
B = (NUM * ( N_DEP + 11.0E0_WP * & !
N_INV / 32.0E0_WP ) / DEN)**THIRD ! ref. 1 eq. (21)
!
B3 = B * B * B !
!
INVLAYE_WF = SQRT(HALF * B3) * Z * EXP(- HALF * B * Z) ! ref. 1 eq. (19)
!
END FUNCTION INVLAYE_WF
!
!=======================================================================
!
FUNCTION IQWE_LB_WF(Z,L)
!
! This function computes the z-axis wave function of the a quantum well
! with an infinite barrier when only the lower subband is filled
!
! Reference: (1) T. Vazifehshenas and T. Salavati-fard,
! Physica E 41, 12971300 (2009)
!
!
! Input parameters:
!
! * Z : z value
! * L : length of the quantum well (SI)
!
! Output parameters:
!
! * IQWE_LB_WF : form factor
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : TWO
USE PI_ETC, ONLY : PI
!
IMPLICIT NONE
!
REAL (WP), INTENT(IN) :: Z,L
REAL (WP) :: IQWE_LB_WF
!
REAL (WP) :: SQRT,SIN
!
IQWE_LB_WF = SQRT(TWO / L) * SIN(PI * Z / L) !
!
END FUNCTION IQWE_LB_WF
!
!=======================================================================
!
FUNCTION PC1_QWI_WF(Y,OM0,N)
!
! This function computes the wave function of a quantum wire under
! an harmonic confinement potential of the form 1/2 m omega_0^2 y^2
! in the y direction
!
! Reference: (1) M. Tas, PhD thesis, Middle East Technical University (2004)
!
!
! Input parameters:
!
! * Y : parameter in the confinement direction
! * OM0 : frequency of the confinement potential (SI)
! * N : sub-band index (0, 1, 2, ...) --> limited to 10
!
! Output parameters:
!
! * PC1_QWI_WF : form factor
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : ONE,TWO,HALF
USE PI_ETC, ONLY : PI
USE CONSTANTS_P1, ONLY : H_BAR,M_E
USE EXT_FUNCTIONS, ONLY : H_POLYNOMIAL_VALUE
!
IMPLICIT NONE
!
INTEGER, INTENT(IN) :: N
!
REAL (WP), INTENT(IN) :: Y,OM0
REAL (WP) :: PC1_QWI_WF
REAL (WP) :: B,YB,ZZ,COEF
REAL (WP) :: FC(0:10),X(1),P(1,0:10)
!
REAL (WP) :: SQRT,EXP
!
DATA FC / 1.0E0_WP, 1.0E0_WP, 2.0E0_WP, & !
6.0E0_WP, 24.0E0_WP, 120.0E0_WP, & ! factorials
720.0E0_WP, 5040.0E0_WP, 40320.0E0_WP, & !
362880.0E0_WP, 3628800.0E0_WP / !
!
IF(N > 10) THEN !
WRITE(6,10) !
STOP !
END IF !
!
! Characteristic length of the harmonic potential
! (serves as effective diameter of quantum wire)
!
B = SQRT(H_BAR / (M_E * OM0)) !
!
YB = Y / B !
!
ZZ = HALF * YB * YB !
!
COEF = SQRT(ONE / (TWO**N * FC(N) * SQRT(PI * B))) !
!
! Computing the Hermite polynomial
!
X(1) = YB !
CALL H_POLYNOMIAL_VALUE(1,N,X,P) !
!
PC1_QWI_WF = COEF * EXP(- ZZ) * P(1,N) ! ref. 1 eq. (3.67)
!
! Format
!
10 FORMAT(//,5X,'<<<<< SUB-BAND INDEX TOO LARGE >>>>>',//)
!
END FUNCTION PC1_QWI_WF
!
!=======================================================================
!
FUNCTION PC2_QWI_WF(R,OM0)
!
! This function computes the wave function of a quantum wire under
! an harmonic confinement potential of the form 1/8 m omega_0^2 (x^2+y^2)
! in the (x,y) direction (lowest sub-band only)
!
! Reference: (1) M. Tas, PhD thesis, Middle East Technical University (2004)
!
!
! Input parameters:
! ->
! * R : parameter in the confinement directions (projection of r
! onto the(xy) plane)
! * OM0 : frequency of the confinement potential (SI)
!
! Output parameters:
!
! * PC2_QWI_WF : form factor
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : ONE,TWO,FOURTH
USE PI_ETC, ONLY : PI
USE CONSTANTS_P1, ONLY : H_BAR,M_E
!
IMPLICIT NONE
!
REAL (WP), INTENT(IN) :: R,OM0
REAL (WP) :: PC2_QWI_WF
REAL (WP) :: B,ZZ,COEF
!
REAL (WP) :: SQRT,EXP
!
! Characteristic length of the harmonic potential
! (serves as effective diameter of quantum wire)
!
B = SQRT(H_BAR / (M_E * OM0)) !
!
ZZ = FOURTH * R * R / (B * B) !
!
COEF =ONE / SQRT(TWO * PI * B * B) !
!
PC2_QWI_WF = COEF * EXP(- ZZ) ! ref. 1 eq. (3.74)
!
END FUNCTION PC2_QWI_WF
!
!=======================================================================
!
FUNCTION SWC_QWI_WF(Y,A)
!
! This function computes the wave function of the a quantum-well wire
! with an infinite barrier when only the lowest subband is filled
!
! The barrier is from -a/2 to a/2
!
!
! Reference: (1) M. Tas, PhD thesis, Middle East Technical University (2004)
!
!
! Input parameters:
!
! * Y : parameter along the y axis
! * A : length of the quantum well (SI)
!
! Output parameters:
!
! * SWC_QWI_WF : form factor
!
! Author : D. Sébilleau
!
! Last modified : 21 Sep 2020
!
!
USE REAL_NUMBERS, ONLY : ZERO,TWO,HALF
USE PI_ETC, ONLY : PI
!
IMPLICIT NONE
!
REAL (WP), INTENT(IN) :: Y,A
REAL (WP) :: SWC_QWI_WF
!
REAL (WP) :: COS
!
IF( (- HALF * A <= Y) .AND. (Y <= HALF * A) ) THEN !
SWC_QWI_WF = TWO * COS(PI * Y / A) / A ! ref. 1 eq. (3.86)
ELSE !
SWC_QWI_WF = ZERO !
END IF !
!
END FUNCTION SWC_QWI_WF
!
END MODULE CONFINEMENT_WF