Commit 3009ecb0 by Gregor Michalicek

Bugfix for hybrid functionals + LOs in hybrid/subvxc.F90

`The factors in the l=0 component of the vr array were wrong for LOs.`
parent ceda7bd7
 ... @@ -90,6 +90,11 @@ CONTAINS ... @@ -90,6 +90,11 @@ CONTAINS #endif #endif CALL timestart("subvxc") CALL timestart("subvxc") integ = 0.0 bas1 = 0.0 bas2 = 0.0 vxc = 0 vxc = 0 ! Calculate radial functions ! Calculate radial functions ... @@ -306,7 +311,7 @@ CONTAINS ... @@ -306,7 +311,7 @@ CONTAINS DO i = 1, atoms%jri(itype) DO i = 1, atoms%jri(itype) IF (l == 0) THEN IF (l == 0) THEN ! vr(i,0)= vrtot(i,0,itype)*sfp/rmsh(i,itype) - vrcou(i,0,itype,jsp) ! vr(i,0)= vrtot(i,0,itype)*sfp/rmsh(i,itype) - vrcou(i,0,itype,jsp) vr(i, 0) = vx%mt(i, 0, itype, jsp)*sfp_const/atoms%rmsh(i, itype) vr(i, 0) = vx%mt(i, 0, itype, jsp) !*sfp_const/atoms%rmsh(i, itype) ELSE ! vxc = vtot - vcoul ELSE ! vxc = vtot - vcoul vr(i, l) = vx%mt(i, l, itype, jsp) ! vr(i, l) = vx%mt(i, l, itype, jsp) ! ! vr(i,l)= vrtot(i,l,itype)-vrcou(i,l,itype,jsp) ! vr(i,l)= vrtot(i,l,itype)-vrcou(i,l,itype,jsp) ... @@ -498,9 +503,6 @@ CONTAINS ... @@ -498,9 +503,6 @@ CONTAINS i = i + 1 i = i + 1 IF (hmat%l_real) THEN IF (hmat%l_real) THEN hmat%data_r(nn, n) = hmat%data_r(nn, n) - a_ex*REAL(vxc(i)) hmat%data_r(nn, n) = hmat%data_r(nn, n) - a_ex*REAL(vxc(i)) IF ((n <= 5) .AND. (nn <= 5)) THEN WRITE (1235, '(2i7,3f15.8)') n, nn, hmat%data_r(n, nn), hmat%data_r(nn, n), REAL(vxc(i)) END IF ELSE ELSE hmat%data_c(nn, n) = hmat%data_c(nn, n) - a_ex*vxc(i) hmat%data_c(nn, n) = hmat%data_c(nn, n) - a_ex*vxc(i) ENDIF ENDIF ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!