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

415 lines
13 KiB
Fortran
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!
!=======================================================================
!
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