mirror of
https://github.com/pfloos/quack
synced 2024-12-22 04:14:26 +01:00
fix problem with threshold
This commit is contained in:
parent
f95e0d4dfc
commit
52c224416f
16
input/dft
16
input/dft
@ -19,21 +19,21 @@
|
||||
# Number of states in ensemble (nEns)
|
||||
4
|
||||
# occupation numbers
|
||||
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
|
||||
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
|
||||
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
|
||||
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
# Ensemble weights: wEns(1),...,wEns(nEns-1)
|
||||
0.25 0.25 0.25
|
||||
1.00 0.00 0.00
|
||||
# N-centered?
|
||||
T
|
||||
F
|
||||
# Parameters for CC weight-dependent exchange functional
|
||||
0.0 0.0 0.0
|
||||
0.0 0.0 0.0
|
||||
|
@ -72,7 +72,7 @@ subroutine UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
r = ra
|
||||
rI = raI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
x = sqrt(rs)
|
||||
@ -95,17 +95,22 @@ subroutine UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
decdr_f = drsdr*dxdrs*decdx_f
|
||||
|
||||
Ecrr(1) = Ecrr(1) - weight(iG)*decdr_f*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(1) = EcrI(1) + weight(iG)*ec_f*rI
|
||||
EcrrI(1) = EcrrI(1) + weight(iG)*decdr_f*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
! up-down contribution
|
||||
|
||||
r = ra + rb
|
||||
rI = raI + rbI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
z = (ra - rb)/r
|
||||
@ -167,17 +172,22 @@ subroutine UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
+ (decdr_f - decdr_p)*fz*z**4 + (ec_f - ec_p)*dfzdr*z**4 + 4d0*(ec_f - ec_p)*fz*dzdr*z**3
|
||||
|
||||
Ecrr(2) = Ecrr(2) - weight(iG)*decdr*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(2) = EcrI(2) + weight(iG)*ec_z*rI
|
||||
EcrrI(2) = EcrrI(2) + weight(iG)*decdr*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
! spin-down contribution
|
||||
|
||||
r = rb
|
||||
rI = rbI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
x = sqrt(rs)
|
||||
@ -200,11 +210,16 @@ subroutine UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
decdr_f = drsdr*dxdrs*decdx_f
|
||||
|
||||
Ecrr(3) = Ecrr(3) - weight(iG)*decdr_f*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(3) = EcrI(3) + weight(iG)*ec_f*rI
|
||||
EcrrI(3) = EcrrI(3) + weight(iG)*decdr_f*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
end do
|
||||
|
||||
Ecrr(2) = Ecrr(2) - Ecrr(1) - Ecrr(3)
|
||||
|
@ -72,7 +72,7 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
r = ra
|
||||
rI = raI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
x = sqrt(rs)
|
||||
@ -95,17 +95,22 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
decdr_f = drsdr*dxdrs*decdx_f
|
||||
|
||||
Ecrr(1) = Ecrr(1) - weight(iG)*decdr_f*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(1) = EcrI(1) + weight(iG)*ec_f*rI
|
||||
EcrrI(1) = EcrrI(1) + weight(iG)*decdr_f*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
! up-down contribution
|
||||
|
||||
r = ra + rb
|
||||
rI = raI + rbI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
z = (ra - rb)/r
|
||||
@ -167,17 +172,22 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
+ (decdr_f - decdr_p)*fz*z**4 + (ec_f - ec_p)*dfzdr*z**4 + 4d0*(ec_f - ec_p)*fz*dzdr*z**3
|
||||
|
||||
Ecrr(2) = Ecrr(2) - weight(iG)*decdr*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(2) = EcrI(2) + weight(iG)*ec_z*rI
|
||||
EcrrI(2) = EcrrI(2) + weight(iG)*decdr*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
! spin-down contribution
|
||||
|
||||
r = rb
|
||||
rI = rbI
|
||||
|
||||
if(r > threshold .or. rI > threshold) then
|
||||
if(r > threshold) then
|
||||
|
||||
rs = (4d0*pi*r/3d0)**(-1d0/3d0)
|
||||
x = sqrt(rs)
|
||||
@ -200,11 +210,16 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent
|
||||
decdr_f = drsdr*dxdrs*decdx_f
|
||||
|
||||
Ecrr(3) = Ecrr(3) - weight(iG)*decdr_f*r*r
|
||||
|
||||
if(rI > threshold) then
|
||||
|
||||
EcrI(3) = EcrI(3) + weight(iG)*ec_f*rI
|
||||
EcrrI(3) = EcrrI(3) + weight(iG)*decdr_f*r*rI
|
||||
|
||||
end if
|
||||
|
||||
end if
|
||||
|
||||
end do
|
||||
|
||||
Ecrr(2) = Ecrr(2) - Ecrr(1) - Ecrr(3)
|
||||
|
Loading…
Reference in New Issue
Block a user