2 SUBROUTINE POTENTIAL_WZ(EEL
,EHHUP
,EHHDW
,ELHUP
,ELHDW
,&
3 ESOUP
,ESODW
,ELAST
,EXX
,EYY
,&
9 Use Auxiliar_Procedures
, ONLY
: AISO
13 !!!!! 'dummy' and local variables !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15 REAL,DIMENSION(:,:,:),OPTIONAL
:: EXX
,EYY
,EZZ
,EXY
,EXZ
,EYZ
,POT
17 REAL,DIMENSION(:,:,:) :: EEL
,EHHUP
,EHHDW
,ELHUP
,ELHDW
,&
20 REAL ZM
,THETA
,CTHETA
,STHETA
, &
23 INTEGER I_X
,I_Y
,I_Z
,I_N1
,I_N2
,I_N3
,CHI
25 REAL, DIMENSION(3) :: R_SL
,X_VEC
,XI_VEC
27 REAL :: POTBE
,POTBHH
,POTBLH
,POTBSO
,POTBLS
,&
28 POTWE
,POTWHH
,POTWLH
,POTWSO
,POTWLS
,&
29 VBIEL
,VBIHH
,VBILH
,VBISO
,VBILS
31 REAL,DIMENSION(0:1) :: POTE
, POTHH
, POTLH
, POTSO
, POTLS
, &
32 PC1
, PC2
, PD1
, PD2
, PD3
, PD4
, PD5
, PD6
34 REAL, DIMENSION(1:8) :: ENERGY
36 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
38 CALL ENER_CONSTANTS_WZ( )
41 ! WRITE(16,'(A,I3,A,I3)')"I_Z ",I_Z," of ",ZDIM
42 Z
=Z_Min
+REAL(I_Z
-1)*Z_Inc
44 Y
=Y_Min
+REAL(I_Y
-1)*Y_Inc
46 X
=X_Min
+REAL(I_X
-1)*X_Inc
52 I_N1
=0; I_N2
=0; I_N3
=0
54 R_SL
=REAL(I_N1
)*A1_S
+REAL(I_N2
)*A2_S
+REAL(I_N3
)*A3_S
58 RHO
=SQRT(XI_VEC(1)**2+XI_VEC(2)**2)/RC
59 IF(XI_VEC(1).EQ
.0.E0
.AND
.XI_VEC(2).EQ
.0.E0
) THEN
60 CTHETA
=1.E0
/SQRT(2.E0
); STHETA
=1.E0
/SQRT(2.E0
) ! It is not the Mathematical limit
62 THETA
=ATAN(XI_VEC(2)/XI_VEC(1))
63 CTHETA
=Cos(THETA
); STHETA
=Sin(THETA
)
68 CALL SHAPERTOZ(MIN(RHO
*RC
,Rqd_Base
),ZMAUX
)
74 IF (abs(zeta
) .EQ
. 0.E0
.OR
. ZETA
.EQ
. ZM
) THEN
79 IF (ZETA
.GE
.-D
.AND
.ZETA
.LE
.ZM
) THEN
81 IF(I_N1
.NE
.0.OR
.I_N2
.NE
.0.OR
.I_N3
.NE
.0) THEN
82 WRITE(16,*)I_N1
,I_N2
,I_N3
83 WRITE(16,*)X_VEC(3),ZETA
*ZC
,ZM
*ZC
88 CALL POT_CALC_CAR_WZ(CHI
,ENERGY
)
90 CALL POT_CALC_CYL_WZ(CHI
,ENERGY
)
93 EEL(I_X
,I_Y
,I_Z
) = ENERGY(1)
94 EHHUP(I_X
,I_Y
,I_Z
) = ENERGY(2)
95 EHHDW(I_X
,I_Y
,I_Z
) = ENERGY(3)
96 ELHUP(I_X
,I_Y
,I_Z
) = ENERGY(4)
97 ELHDW(I_X
,I_Y
,I_Z
) = ENERGY(5)
98 ESOUP(I_X
,I_Y
,I_Z
) = ENERGY(6)
99 ESODW(I_X
,I_Y
,I_Z
) = ENERGY(7)
100 ELAST(I_X
,I_Y
,I_Z
) = ENERGY(8)
102 ! WRITE(26,'(10(E15.8,1X))')Z,ENERGY(1:8)
114 SUBROUTINE ENER_CONSTANTS_WZ( )
117 ! Definition of parameters for Barrier and Well
123 POTWHH
= (VWH
+DW1
+DW2
)
124 POTWLH
= (VWH
+(DW1
-DW2
+4.E0
*DW3
)/3.E0
)
125 POTWSO
= (VWH
+2.E0
*(DW1
-DW2
-2.E0
*DW3
)/3.E0
)
126 POTWLS
= (DW1
-DW2
+DW3
)
128 POTBHH
= (VBH
+DB1
+DB2
)
129 POTBLH
= (VBH
+(DB1
-DB2
+4.E0
*DB3
)/3.E0
)
130 POTBSO
= (VBH
+2.E0
*(DB1
-DB2
-2.E0
*DB3
)/3.E0
)
131 POTBLS
= (DB1
-DB2
+DB3
)
133 IF(STR_Action
.EQ
.0) THEN
134 VBIEL
= ( C2
*BISUM
+ C1
*BIZZ
)
135 VBIHH
= ( (D2
+D4
)*BISUM
+ (D1
+D3
)*BIZZ
)
136 VBILH
= ( (D2
+D4
/3.)*BISUM
+ (D1
+D3
/3.)*BIZZ
)
137 VBISO
=( (D2
+2.*D4
/3.)*BISUM
+ (D1
+2.*D3
/3.)*BIZZ
)
138 VBILS
= ( D4
*BISUM
+ D3
*BIZZ
)
140 ! Potential edges including strain effect
142 POTWHH
= (POTWHH
+VBIHH
)
143 POTWLH
= (POTWLH
+VBILH
)
144 POTWSO
= (POTWSO
+VBISO
)
145 POTWLS
= (POTWLS
+VBILS
)
148 POTE(0) = POTBE
; POTE(1) = POTWE
149 POTHH(0) = POTBHH
; POTHH(1) = POTWHH
150 POTLH(0) = POTBLH
; POTLH(1) = POTWLH
151 POTLS(0) = POTBLS
; POTLS(1) = POTWLS
152 POTSO(0) = POTBSO
; POTSO(1) = POTWSO
154 !!!! Deformation potentials for barrier and well are equal
156 PC1(0) = C1
; PC1(1) = C1
157 PC2(0) = C2
; PC2(1) = C2
158 PD1(0) = D1
; PD1(1) = D1
159 PD2(0) = D2
; PD2(1) = D2
160 PD3(0) = D3
; PD3(1) = D3
161 PD4(0) = D4
; PD4(1) = D4
162 PD5(0) = D5
; PD5(1) = D5
163 PD6(0) = D6
; PD6(1) = D6
167 END SUBROUTINE ENER_CONSTANTS_WZ
169 SUBROUTINE POT_CALC_CAR_WZ(CHI
,ENERGY
)
172 REAL, DIMENSION(:) :: ENERGY
173 INTEGER, PARAMETER :: DIMM
=6
174 COMPLEX, DIMENSION(1:DIMM
,1:DIMM
) :: HKANE
175 REAL :: SXX
,SYY
,SZZ
,SXY
,SXZ
,SYZ
,PZO
177 !! DIAGONALIZATION VARIABLES
179 COMPLEX, DIMENSION(1:(2*DIMM
-1)) :: WORK
180 REAL, DIMENSION(1:(3*DIMM
-2)) :: RWORK
181 REAL W(1:DIMM
), ROOT(DIMM
), CARAC(DIMM
)
186 IF(STR_Action
.EQ
.0) THEN
187 SXX
=0.E0
; SYY
=0.E0
; SZZ
=0.E0
188 SXY
=0.E0
; SXZ
=0.E0
; SYZ
=0.E0
197 IF(PZO_Action
.EQ
.0.E0
) THEN
203 HKANE(1,1)=POTHH(CHI
)-PZO
+ &
204 (PD1(CHI
)+PD3(CHI
))*SZZ
+(PD2(CHI
)+PD4(CHI
))*(SXX
+SYY
)
206 HKANE(2,2)=POTLH(CHI
)-PZO
+(PD1(CHI
)+PD3(CHI
)/3.E0
)*SZZ
+ &
207 (PD2(CHI
)+PD4(CHI
)/3.E0
)*(SXX
+SYY
)
208 HKANE(3,3)=HKANE(2,2)
209 HKANE(4,4)=HKANE(1,1)
210 HKANE(5,5)=POTSO(CHI
)-PZO
+(PD1(CHI
)+2.E0
*PD3(CHI
)/3.E0
)*SZZ
+ &
211 (PD2(CHI
)+2.E0
*PD4(CHI
)/3.E0
)*(SXX
+SYY
)
212 HKANE(6,6)=HKANE(5,5)
214 IF(DIAG_Action
.NE
.0.AND
.STR_Action
.NE
.0) THEN
216 HKANE(1,2)=-SQRT(2.E0
/3.E0
)*PD6(CHI
)*CMPLX(SXZ
,-SYZ
)
217 HKANE(1,3)=-1.E0
/SQRT(3.E0
)*PD5(CHI
)*CMPLX(SXX
-SYY
,-2.E0
*SXY
)
219 HKANE(1,5)=1.E0
/SQRT(3.E0
)*PD6(CHI
)*CMPLX(SXZ
,-SYZ
)
220 HKANE(1,6)=SQRT(2./3.)*PD5(CHI
)*CMPLX(SXX
-SYY
,-2.E0
*SXY
)
223 HKANE(2,4)=HKANE(1,3)
224 HKANE(2,5)=SQRT(2.E0
)/3.E0
*( POTLS(CHI
)+&
225 (PD3(CHI
)*SZZ
+PD4(CHI
)*(SXX
+SYY
)) )
226 HKANE(2,6)=-PD6(CHI
)*CMPLX(SXZ
,-SYZ
)
228 HKANE(3,4)=-HKANE(1,2)
229 HKANE(3,5)=-PD6(CHI
)*CMPLX(SXZ
,SYZ
)
230 HKANE(3,6)=-HKANE(2,5)
232 HKANE(4,5)=-SQRT(2./3.)*PD5(CHI
)*CMPLX(SXX
-SYY
,+2.E0
*SXY
)
233 HKANE(4,6)=PD6(CHI
)*CMPLX(SXZ
,SYZ
)/SQRT(3.E0
)
241 HKANE(J
,I
)=CONJG(HKANE(I
,J
))
245 CALL CHEEV('V','U',DIMM
,HKANE
,DIMM
,W
,WORK
,LWORK
,RWORK
,INFO
)
248 write(6,*)"Not Succesful Exit. Stopping. INFO=",INFO
249 write(6,'(2(A,F6.3,1X))')"RHO=",RC
*RHO
,"ZETA=",ZETA
*ZC
253 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
254 !! Ordering Eigenvalues according to the Bloch func. caracter
255 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
260 ! Calculo de la componentes dependientes del spin
262 CARAC(J
)=HKANE(J
,I
)*HKANE(J
,I
)
264 ! Suma de componentes independientemente del spin (hh_up + hh_dw, lh_up + lh_dw)
265 CARAC(1)=CARAC(1)+CARAC(4)
267 CARAC(2)=CARAC(2)+CARAC(3)
269 CARAC(5)=CARAC(5)+CARAC(6)
272 ! Peso de las componentes de las que se extraeran los autovalores.
274 IF (CARAC(1).GE
.CARAC_MAX
) THEN ! HH
277 IF (CARAC(2).GE
.CARAC_MAX
) THEN ! LH
280 IF (CARAC(5).GE
.CARAC_MAX
) THEN ! SO
286 ELSE ! Only the diagonal elements were calculated
291 ROOT(2)=HKANE(6,6) !Redundant
296 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
298 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
300 ENERGY(1) = POTE(CHI
)-PZO
+(PC1(CHI
)*SZZ
+PC2(CHI
)*(SXX
+SYY
))
309 ! ENERGY(7) = CHI ! To save the Structure-profile
311 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
312 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
313 !!!!! Calculation of the Elastic Energy. Since EEL contains no information
314 !!!!! we will use this array to pack the Elastic Energy.
316 !!!!! U=1/2*XLAMB*Tr(e)**2+XMU*(err**2+e00**2+ezz**2+erz**2)
318 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
319 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
321 ENERGY(8) = C11
*(SXX
**2 + SYY
**2)+C33
*SZZ
**2+ &
322 2.E0
*(XLAMB
*(SXX
*SYY
)+C13
*(SXX
+SYY
)*SZZ
+ &
323 (C11
-XLAMB
)*SXY
**2+2.E0
*XMU
*(SXZ
**2+SYZ
**2))
325 ENERGY(8) = ENERGY(8)/2.E0
329 END SUBROUTINE POT_CALC_CAR_WZ
331 SUBROUTINE POT_CALC_CYL_WZ(CHI
,ENERGY
)
334 REAL, DIMENSION(:) :: ENERGY
335 INTEGER, PARAMETER :: DIMM
=6
336 REAL, DIMENSION(1:DIMM
,1:DIMM
) :: HKANE
338 REAL :: SSUM
,SDIF
,SZZ
,SRZ
,SRR
,S00
340 !! DIAGONALIZATION VARIABLES
342 REAL :: W(1:DIMM
), WORK(1:10*DIMM
), AW(1:DIMM
,1:DIMM
), &
343 ROOT(DIMM
), CARAC(DIMM
), SLAMCH
344 INTEGER :: IWORK(DIMM
*5), IFAIL(DIMM
), INFO
, NUM
346 IF(STR_Action
.EQ
.0) THEN
347 SSUM
=0.E0
; SDIF
=0.E0
; SZZ
=0.E0
;
348 SRZ
=0.E0
; SRR
=0.E0
; S00
=0.E0
351 !!! FOR CYLINDRICAL COORDINATES WE CALCULATE ONLY THE X-Z PLANE,
352 !!! THAT MEANS: THETA=0
356 SSUM
=EXX(I_X
,I_Y
,I_Z
)+EYY(I_X
,I_Y
,I_Z
)
357 SDIF
=EXX(I_X
,I_Y
,I_Z
)-EYY(I_X
,I_Y
,I_Z
)
361 IF(PZO_Action
.EQ
.0.E0
) THEN
367 HKANE(1,1)=POTHH(CHI
)-PZO
+ &
368 (PD1(CHI
)+PD3(CHI
))*SZZ
+(PD2(CHI
)+PD4(CHI
))*SSUM
370 HKANE(2,2)=POTLH(CHI
)-PZO
+(PD1(CHI
)+PD3(CHI
)/3.E0
)*SZZ
+ &
371 (PD2(CHI
)+PD4(CHI
)/3.E0
)*SSUM
372 HKANE(3,3)=HKANE(2,2)
373 HKANE(4,4)=HKANE(1,1)
374 HKANE(5,5)=POTSO(CHI
)-PZO
+(PD1(CHI
)+2.E0
*PD3(CHI
)/3.E0
)*SZZ
+ &
375 (PD2(CHI
)+2.E0
*PD4(CHI
)/3.E0
)*SSUM
376 HKANE(6,6)=HKANE(5,5)
378 IF(DIAG_Action
.NE
.0.AND
.STR_Action
.NE
.0) THEN
380 HKANE(1,2)=-SQRT(2.E0
/3.E0
)*PD6(CHI
)*SRZ
381 HKANE(1,3)=-1.E0
/SQRT(3.E0
)*PD5(CHI
)*SDIF
383 HKANE(1,5)=1.E0
/SQRT(3.E0
)*PD6(CHI
)*SRZ
384 HKANE(1,6)=SQRT(2./3.)*PD5(CHI
)*SDIF
387 HKANE(2,4)=HKANE(1,3)
388 HKANE(2,5)=SQRT(2.E0
)/3.E0
*(POTLS(CHI
)+(PD3(CHI
)*SZZ
+PD4(CHI
)*SSUM
))
389 HKANE(2,6)=-PD6(CHI
)*SRZ
391 HKANE(3,4)=-HKANE(1,2)
392 HKANE(3,5)=HKANE(2,6)
393 HKANE(3,6)=-HKANE(2,5)
395 HKANE(4,5)=-HKANE(1,6)
396 HKANE(4,6)=HKANE(1,5)
404 HKANE(J
,I
)=HKANE(I
,J
)
408 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
409 !! Analytic solutions for Rho = 0.
410 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
412 ! ZETA = ZMIN+ZINC*IZ ! XZ normalized to ZC
414 ! W(1)=(HKANE(2,2)+HKANE(5,5))+
415 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
416 ! W(2)=(HKANE(2,2)+HKANE(5,5))-
417 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
418 ! write(24,'(4(f18.8,1x))')ZETA,HKANE(1,1),W(1)/2.,W(2)/2.
420 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
423 CALL DSYEVX('V','A','U',DIMM
,HKANE
,DIMM
,0.,0.,2,2, &
424 2*SLAMCH('S'),NUM
,W
,AW
,DIMM
,WORK
,10*DIMM
,IWORK
,IFAIL
,INFO
)
427 write(6,*)"Not Succesful Exit. Stopping. INFO=",INFO
428 write(6,'(A,10(I2,1X))')"IFAIL=",IFAIL(1:DIMM
)
429 write(6,'(2(A,F6.3,1X))')"RHO=",RC
*RHO
,"ZETA=",ZETA
*ZC
433 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
434 !! Ordering Eigenvalues according to the Bloch func. caracter
435 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
440 ! Calculo de la componentes dependientes del spin
442 CARAC(J
)=AW(J
,I
)*AW(J
,I
)
444 ! Suma de componentes independientemente del spin (hh_up + hh_dw, lh_up + lh_dw)
445 CARAC(1)=CARAC(1)+CARAC(4)
447 CARAC(2)=CARAC(2)+CARAC(3)
449 CARAC(5)=CARAC(5)+CARAC(6)
452 ! Peso de las componentes de las que se extraeran los autovalores.
454 IF (CARAC(1).GE
.CARAC_MAX
) THEN ! HH
457 IF (CARAC(2).GE
.CARAC_MAX
) THEN ! LH
460 IF (CARAC(5).GE
.CARAC_MAX
) THEN ! SO
466 ELSE ! Only the diagonal elements were calculated
471 ROOT(2)=HKANE(6,6) !Redundant
476 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
478 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
480 ENERGY(1) = POTE(CHI
)-PZO
+(PC1(CHI
)*SZZ
+PC2(CHI
)*SSUM
)
489 ! ESODW(IR,IZ,IGEO) = CHI ! To save the Structure-profile
491 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
492 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
493 !!!!! Calculation of the Elastic Energy. Since EEL contains no information
494 !!!!! we will use this array to pack the Elastic Energy.
496 !!!!! U=1/2*XLAMB*Tr(e)**2+XMU*(err**2+e00**2+ezz**2+erz**2)
498 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
499 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
502 ENERGY(8) = C11
*(SRR
**2 + S00
**2)+C33
*SZZ
**2+ &
503 2.E0
*(XLAMB
*(SRR
*S00
)+C13
*(SRR
+S00
)*SZZ
+ &
506 ENERGY(8) = ENERGY(8)/2.E0
510 END SUBROUTINE POT_CALC_CYL_WZ
512 END SUBROUTINE POTENTIAL_WZ
514 SUBROUTINE POTENTIAL_ZB(EEL
,EHHUP
,EHHDW
,ELHUP
,ELHDW
,&
515 ESOUP
,ESODW
,ELAST
,EXX
,EYY
,&
521 Use Auxiliar_Procedures
, ONLY
: AISO
525 !!!!! 'dummy' and local variables !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
527 REAL,DIMENSION(:,:,:),OPTIONAL
:: EXX
,EYY
,EZZ
,EXY
,EXZ
,EYZ
529 REAL,DIMENSION(:,:,:) :: EEL
,EHHUP
,EHHDW
,ELHUP
,ELHDW
,&
532 REAL ZM
,THETA
,CTHETA
,STHETA
, &
535 INTEGER I_X
,I_Y
,I_Z
,I_N1
,I_N2
,I_N3
,CHI
537 REAL, DIMENSION(3) :: R_SL
,X_VEC
,XI_VEC
539 REAL :: POTWE
,POTWHH
,POTWLH
,POTWSO
,&
540 VBIEL
,VBIHH
,VBILH
,VBISO
542 REAL,DIMENSION(0:1) :: POTE
, POTHH
, POTLH
, POTSO
, &
543 DVD
,DSD
,DVU
,DVSU
,D2VU
,D2VSU
,DSO
,ZBC1
545 REAL, DIMENSION(1:8) :: ENERGY
547 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
549 CALL ENER_CONSTANTS_ZB( )
552 ! WRITE(16,'(A,I3,A,I3)')"I_Z ",I_Z," of ",ZDIM
553 Z
=Z_Min
+REAL(I_Z
-1)*Z_Inc
555 Y
=Y_Min
+REAL(I_Y
-1)*Y_Inc
557 X
=X_Min
+REAL(I_X
-1)*X_Inc
561 I_N1
=0; I_N2
=0; I_N3
=0
563 R_SL
=REAL(I_N1
)*A1_S
+REAL(I_N2
)*A2_S
+REAL(I_N3
)*A3_S
567 RHO
=SQRT(XI_VEC(1)**2+XI_VEC(2)**2)/RC
568 IF(XI_VEC(1).EQ
.0.E0
.AND
.XI_VEC(2).EQ
.0.E0
) THEN
569 CTHETA
=1.E0
/SQRT(2.E0
); STHETA
=1.E0
/SQRT(2.E0
) ! It is not the Mathematical limit
571 THETA
=ATAN(XI_VEC(2)/XI_VEC(1))
572 CTHETA
=Cos(THETA
); STHETA
=Sin(THETA
)
577 CALL SHAPERTOZ(MIN(RHO
*RC
,Rqd_Base
),ZMAUX
)
583 IF (abs(zeta
) .EQ
. 0.E0
.OR
. ZETA
.EQ
. ZM
) THEN
588 IF (RHO
.LE
.RD
.AND
.ZETA
.GE
.-D
.AND
.ZETA
.LE
.ZM
) THEN
590 IF(I_N1
.NE
.0.OR
.I_N2
.NE
.0.OR
.I_N3
.NE
.0) THEN
591 WRITE(16,*)I_N1
,I_N2
,I_N3
592 WRITE(16,*)X_VEC(3),ZETA
*ZC
,ZM
*ZC
597 CALL POT_CALC_CAR_ZB(CHI
,ENERGY
)
599 CALL POT_CALC_CYL_ZB(CHI
,ENERGY
)
602 EEL(I_X
,I_Y
,I_Z
) = ENERGY(1)
603 EHHUP(I_X
,I_Y
,I_Z
) = ENERGY(2)
604 ELHUP(I_X
,I_Y
,I_Z
) = ENERGY(3)
605 ELHDW(I_X
,I_Y
,I_Z
) = ENERGY(4)
606 EHHDW(I_X
,I_Y
,I_Z
) = ENERGY(5)
607 ESOUP(I_X
,I_Y
,I_Z
) = ENERGY(6)
608 ESODW(I_X
,I_Y
,I_Z
) = ENERGY(7)
609 ELAST(I_X
,I_Y
,I_Z
) = ENERGY(8)
611 ! WRITE(26,'(10(E15.8,1X))')Z,ENERGY(1:8)
623 SUBROUTINE ENER_CONSTANTS_ZB( )
626 ! Definition of parameters for Barrier and Well
628 ! If we set both terms equal to zero the spin-interaction in the
629 ! deformation potentials is removed. The values of AVB,BB,DB are
630 ! taken from C. Pryor, PRB, 57, 7190 (1998)
632 ! DSO(0) = VBH - VBSO ; DSO(1) = VWH - VWSO
633 DSO(0) = 0.0; DSO(1) = 0.0
635 ZBC1(0) = -9.3 ; ZBC1(1) = ACW
637 DVD(0) = 0.7E0
- 2./9. * DSO(0)
638 DVD(1) = AVW
- 2./9. * DSO(1)
639 DSD(0) = 0.7E0
+ 4./9. * DSO(0)
640 DSD(1) = AVW
+ 4./9. * DSO(1)
641 DVU(0) = -3./2. * (-2.0) + 1./3. * DSO(0)
642 DVU(1) = -3./2. * BW
+ 1./3. * DSO(1)
643 DVSU(0) = -3./2. * (-2.0) - 1./6. * DSO(0)
644 DVSU(1) = -3./2. * BW
- 1./6. * DSO(1)
645 D2VU(0) = -SQRT(3.)/2. * (-5.4) + 1./3. * DSO(0)
646 D2VU(1) = -SQRT(3.)/2. * DW
+ 1./3. * DSO(1)
647 D2VSU(0) = -SQRT(3.)/2. * (-5.4) - 1./6. * DSO(0)
648 D2VSU(1) = -SQRT(3.)/2. * DW
- 1./6. * DSO(1)
650 !!! In the calculation the deformation potentials are equal across the structure
651 DVD(0)=DVD(1); DSD(0)=DSD(1); DVU(0)=DVU(1)
652 DVSU(0)=DVSU(1); D2VU(0)=D2VU(1); D2VSU(0)=D2VSU(1)
654 DSO(0) = VBH
- VBSO
; DSO(1) = VWH
- VWSO
660 IF(STR_Action
.EQ
.0) THEN
661 VBIEL
= ACW
*(BISUM
+BIZZ
)
662 VBIHH
= AVW
*(BISUM
+BIZZ
)-(-3.E0
*BW
/2.E0
)/3.E0
*(BISUM
-2.E0
*BIZZ
)
663 VBILH
= AVW
*(BISUM
+BIZZ
)+(-3.E0
*BW
/2.E0
)/3.E0
*(BISUM
-2.E0
*BIZZ
)
664 VBISO
= AVW
*(BISUM
+BIZZ
)
666 ! Potential edges including strain effect
673 POTE(0) = VBE
; POTE(1) = POTWE
674 POTHH(0) = VBH
; POTHH(1) = POTWHH
675 POTLH(0) = VBH
; POTLH(1) = POTWLH
676 POTSO(0) = VBSO
; POTSO(1) = POTWSO
680 END SUBROUTINE ENER_CONSTANTS_ZB
682 SUBROUTINE POT_CALC_CAR_ZB(CHI
,ENERGY
)
685 REAL, DIMENSION(:) :: ENERGY
686 INTEGER, PARAMETER :: DIMM
=6
687 COMPLEX, DIMENSION(1:DIMM
,1:DIMM
) :: HKANE
688 REAL :: SXX
,SYY
,SZZ
,SXY
,SXZ
,SYZ
,SHID
,SDIF
,STIL
690 !! DIAGONALIZATION VARIABLES
692 COMPLEX, DIMENSION(1:(2*DIMM
-1)) :: WORK
693 REAL, DIMENSION(1:(3*DIMM
-2)) :: RWORK
694 REAL W(1:DIMM
), ROOT(DIMM
), CARAC(DIMM
)
698 IF(STR_Action
.EQ
.0) THEN
699 SXX
=0.E0
; SYY
=0.E0
; SZZ
=0.E0
700 SXY
=0.E0
; SXZ
=0.E0
; SYZ
=0.E0
710 STIL
=SXX
+SYY
-2.E0
*SZZ
713 HKANE(1,1)=POTHH(CHI
)+DVD(CHI
)*SHID
&
715 HKANE(2,2)=POTLH(CHI
)+DVD(CHI
)*SHID
&
717 HKANE(3,3)=HKANE(2,2)
718 HKANE(4,4)=HKANE(1,1)
719 HKANE(5,5)=POTSO(CHI
)+DSD(CHI
)*SHID
721 HKANE(6,6)=HKANE(5,5)
723 IF(DIAG_Action
.NE
.0.AND
.STR_Action
.NE
.0) THEN
725 HKANE(1,2)=2./SQRT(3.)*D2VU(CHI
)*CMPLX(SXZ
,-SYZ
)
726 HKANE(1,3)=1./SQRT(3.)*CMPLX(DVU(CHI
)*SDIF
,-2.E0
*D2VU(CHI
)*SXY
)
728 HKANE(1,5)=-SQRT(2./3.)*D2VSU(CHI
)*CMPLX(SXZ
,-SYZ
)
729 HKANE(1,6)=-SQRT(2./3.)*CMPLX(DVU(CHI
)*SDIF
,-2.E0
*D2VSU(CHI
)*SXY
)
732 HKANE(2,4)=HKANE(1,3)
733 HKANE(2,5)=-SQRT(2.)/3.*DVSU(CHI
)*STIL
734 HKANE(2,6)=SQRT(2.)*D2VSU(CHI
)*CMPLX(SXZ
,-SYZ
)
736 HKANE(3,4)=-HKANE(1,2)
737 HKANE(3,5)=SQRT(2.)*D2VSU(CHI
)*CMPLX(SXZ
,SYZ
)
738 HKANE(3,6)=-HKANE(2,5)
740 HKANE(4,5)=SQRT(2./3.)*CMPLX(DVU(CHI
)*SDIF
,2.E0
*D2VSU(CHI
)*SXY
)
741 HKANE(4,6)=-HKANE(3,5)/SQRT(3.E0
)
747 HKANE(J
,I
)=CONJG(HKANE(I
,J
))
751 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
752 !! Analytic solutions for Rho = 0.
753 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
755 ! ZETA = ZMIN+ZINC*IZ ! XZ normalized to ZC
757 ! W(1)=(HKANE(2,2)+HKANE(5,5))+
758 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
759 ! W(2)=(HKANE(2,2)+HKANE(5,5))-
760 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
761 ! write(24,'(4(f18.8,1x))')ZETA,HKANE(1,1),W(1)/2.,W(2)/2.
763 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
765 CALL CHEEV('V','U',DIMM
,HKANE
,DIMM
,W
,WORK
,LWORK
,RWORK
,INFO
)
768 write(6,*)"Not Succesful Exit. Stopping. INFO=",INFO
769 write(6,'(2(A,F6.3,1X))')"RHO=",RC
*RHO
,"ZETA=",ZETA
*ZC
773 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
774 !! Ordering Eigenvalues according to the Bloch func. caracter
775 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
780 ! Calculo de la componentes dependientes del spin
782 CARAC(J
)=HKANE(J
,I
)*HKANE(J
,I
)
784 ! Suma de componentes independientemente del spin (hh_up + hh_dw, lh_up + lh_dw)
785 CARAC(1)=CARAC(1)+CARAC(4)
787 CARAC(2)=CARAC(2)+CARAC(3)
789 CARAC(5)=CARAC(5)+CARAC(6)
792 ! Peso de las componentes de las que se extraeran los autovalores.
794 IF (CARAC(1).GE
.CARAC_MAX
) THEN ! HH
797 IF (CARAC(2).GE
.CARAC_MAX
) THEN ! LH
800 IF (CARAC(5).GE
.CARAC_MAX
) THEN ! SO
806 ELSE ! Only the diagonal elements were calculated
811 ROOT(2)=HKANE(6,6) !Redundant
816 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
818 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
820 ENERGY(1) = POTE(CHI
)+ZBC1(CHI
)*SHID
829 ! ENERGY(7) = CHI ! To save the Structure-profile
831 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
832 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
833 !!!!! Calculation of the Elastic Energy. Since EEL contains no information
834 !!!!! we will use this array to pack the Elastic Energy.
836 !!!!! U=1/2*(XLAMB*Tr(e)**2+XMU/2*(err**2+e00**2+ezz**2+erz**2)
838 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
839 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
841 ENERGY(8) = XMU
*(SXX
**2 + SYY
**2 + SZZ
**2 + &
842 2.E0
*(SXY
**2+SXZ
**2+SYZ
**2) ) + &
843 XLAMB
/2.E0
*(SXX
+ SYY
+ SZZ
)**2
846 END SUBROUTINE POT_CALC_CAR_ZB
848 SUBROUTINE POT_CALC_CYL_ZB(CHI
,ENERGY
)
851 REAL, DIMENSION(:) :: ENERGY
852 INTEGER, PARAMETER :: DIMM
=6
853 REAL, DIMENSION(1:DIMM
,1:DIMM
) :: HKANE
854 REAL :: SSUM
,SDIF
,SZZ
,SRZ
,SRR
,S00
,SHID
,STIL
856 !! DIAGONALIZATION VARIABLES
858 REAL :: W(1:DIMM
), WORK(1:10*DIMM
), AW(1:DIMM
,1:DIMM
), &
859 ROOT(DIMM
), CARAC(DIMM
), SLAMCH
860 INTEGER :: IWORK(DIMM
*5), IFAIL(DIMM
), INFO
, NUM
863 IF(STR_Action
.EQ
.0) THEN
864 SSUM
=0.E0
; SDIF
=0.E0
; SZZ
=0.E0
;
865 SRZ
=0.E0
; SRR
=0.E0
; S00
=0.E0
869 SSUM
=EXX(I_X
,I_Y
,I_Z
)+EYY(I_X
,I_Y
,I_Z
)
870 SDIF
=EXX(I_X
,I_Y
,I_Z
)-EYY(I_X
,I_Y
,I_Z
)
877 HKANE(1,1)=POTHH(CHI
)+DVD(CHI
)*SHID
&
879 HKANE(2,2)=POTLH(CHI
)+DVD(CHI
)*SHID
&
882 HKANE(3,3)=HKANE(2,2)
883 HKANE(4,4)=HKANE(1,1)
884 HKANE(5,5)=POTSO(CHI
)+DSD(CHI
)*SHID
885 HKANE(6,6)=HKANE(5,5)
887 IF(DIAG_Action
.NE
.0.AND
.STR_Action
.NE
.0) THEN
888 HKANE(1,2)=2./SQRT(3.)*D2VU(CHI
)*SRZ
889 HKANE(1,3)=1./SQRT(3.)*(DVU(CHI
)+D2VU(CHI
))/2.*SDIF
891 HKANE(1,5)=-SQRT(2./3.)*D2VSU(CHI
)*SRZ
892 HKANE(1,6)=-SQRT(2./3.)*(DVU(CHI
)+D2VSU(CHI
))/2.*SDIF
895 HKANE(2,4)=HKANE(1,3)
896 HKANE(2,5)=-SQRT(2.)/3.*DVSU(CHI
)*STIL
897 HKANE(2,6)=SQRT(2.)*D2VSU(CHI
)*SRZ
899 HKANE(3,4)=-HKANE(1,2)
900 HKANE(3,5)=HKANE(2,6)
901 HKANE(3,6)=-HKANE(2,5)
903 HKANE(4,5)=-HKANE(1,6)
904 HKANE(4,6)=HKANE(1,5)
910 HKANE(J
,I
)=HKANE(I
,J
)
914 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
915 !! Analytic solutions for Rho = 0.
916 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
918 ! ZETA = ZMIN+ZINC*IZ ! XZ normalized to ZC
920 ! W(1)=(HKANE(2,2)+HKANE(5,5))+
921 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
922 ! W(2)=(HKANE(2,2)+HKANE(5,5))-
923 ! & SQRT( (HKANE(2,2)-HKANE(5,5))**2+4.*HKANE(3,6)**2 )
924 ! write(24,'(4(f18.8,1x))')ZETA,HKANE(1,1),W(1)/2.,W(2)/2.
926 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
929 CALL DSYEVX('V','A','U',DIMM
,HKANE
,DIMM
,0.,0.,2,2, &
930 2*SLAMCH('S'),NUM
,W
,AW
,DIMM
,WORK
,10*DIMM
,IWORK
,IFAIL
,INFO
)
933 write(6,*)"Not Succesful Exit. Stopping. INFO=",INFO
934 write(6,'(A,10(I2,1X))')"IFAIL=",IFAIL(1:DIMM
)
935 write(6,'(2(A,F6.3,1X))')"RHO=",RC
*RHO
,"ZETA=",ZETA
*ZC
939 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
940 !! Ordering Eigenvalues according to the Bloch func. caracter
941 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
946 ! Calculo de la componentes dependientes del spin
948 CARAC(J
)=AW(J
,I
)*AW(J
,I
)
950 ! Suma de componentes independientemente del spin (hh_up + hh_dw, lh_up + lh_dw)
951 CARAC(1)=CARAC(1)+CARAC(4)
953 CARAC(2)=CARAC(2)+CARAC(3)
955 CARAC(5)=CARAC(5)+CARAC(6)
958 ! Peso de las componentes de las que se extraeran los autovalores.
960 IF (CARAC(1).GE
.CARAC_MAX
) THEN ! HH
963 IF (CARAC(2).GE
.CARAC_MAX
) THEN ! LH
966 IF (CARAC(5).GE
.CARAC_MAX
) THEN ! SO
972 ELSE ! Only the diagonal elements were calculated
977 ROOT(2)=HKANE(6,6) !Redundant
982 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
984 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
986 ENERGY(1) = POTE(CHI
)+ZBC1(CHI
)*SHID
995 ! ESODW(IR,IZ,IGEO) = CHI ! To save the Structure-profile
997 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
998 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
999 !!!!! Calculation of the Elastic Energy. Since EEL contains no information
1000 !!!!! we will use this array to pack the Elastic Energy.
1002 !!!!! U=1/2*XLAMB*Tr(e)**2+XMU*(err**2+e00**2+ezz**2+erz**2)
1004 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1005 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1007 ENERGY(8) = XMU
*(SRR
**2 + S00
**2 + SZZ
**2 + SRZ
**2) + &
1008 XLAMB
/2.E0
*(SSUM
+ SZZ
)**2
1012 END SUBROUTINE POT_CALC_CYL_ZB
1014 END SUBROUTINE POTENTIAL_ZB