10
1
mirror of https://github.com/pfloos/quack synced 2024-11-04 21:23:55 +01:00

GIC functional working

This commit is contained in:
Pierre-Francois Loos 2020-04-06 23:34:49 +02:00
parent 614bf19a9c
commit e11d1a94dd
6 changed files with 96 additions and 62 deletions

View File

@ -1,30 +1,43 @@
1 6 1 9
S 8 S 3
1 17880.0000000 0.0007380 1 33.8700000 0.0060680
2 2683.0000000 0.0056770 2 5.0950000 0.0453080
3 611.5000000 0.0288830 3 1.1590000 0.2028220
4 173.5000000 0.1085400
5 56.6400000 0.2909070
6 20.4200000 0.4483240
7 7.8100000 0.2580260
8 1.6530000 0.0150630
S 8
1 17880.0000000 -0.0001720
2 2683.0000000 -0.0013570
3 611.5000000 -0.0067370
4 173.5000000 -0.0276630
5 56.6400000 -0.0762080
6 20.4200000 -0.1752270
7 7.8100000 -0.1070380
8 1.6530000 0.5670500
S 1 S 1
1 0.4869000 1.0000000 1 0.3258000 1.0000000
P 3 S 1
1 28.3900000 0.0460870 1 0.1027000 1.0000000
2 6.2700000 0.2401810 S 1
3 1.6950000 0.5087440 1 0.0252600 1.0000000
P 1 P 1
1 0.4317000 1.0000000 1 1.4070000 1.0000000
P 1
1 0.3880000 1.0000000
P 1
1 0.1020000 1.0000000
D 1 D 1
1 2.2020000 1.0000000 1 1.0570000 1.0000000
D 1
1 0.2470000 1.0000000
2 9
S 3
1 33.8700000 0.0060680
2 5.0950000 0.0453080
3 1.1590000 0.2028220
S 1
1 0.3258000 1.0000000
S 1
1 0.1027000 1.0000000
S 1
1 0.0252600 1.0000000
P 1
1 1.4070000 1.0000000
P 1
1 0.3880000 1.0000000
P 1
1 0.1020000 1.0000000
D 1
1 1.0570000 1.0000000
D 1
1 0.2470000 1.0000000

View File

@ -2,23 +2,23 @@
GOK-RKS GOK-RKS
# exchange rung: # exchange rung:
# Hartree = 0 # Hartree = 0
# LDA = 1: RS51,RMFL20,RGIC # LDA = 1: RS51,RMFL20
# GGA = 2: RB88 # GGA = 2: RB88
# Hybrid = 4 # Hybrid = 4
# Hartree-Fock = 666 # Hartree-Fock = 666
2 RB88 1 RGIC
# correlation rung: # correlation rung:
# Hartree = 0 # Hartree = 0
# LDA = 1: RVWN5,RMFL20 # LDA = 1: RVWN5,RMFL20
# GGA = 2: # GGA = 2:
# Hybrid = 4: # Hybrid = 4:
# Hartree-Fock = 666 # Hartree-Fock = 666
1 RVWN5 0 H
# quadrature grid SG-n # quadrature grid SG-n
1 1
# Number of states in ensemble (nEns) # Number of states in ensemble (nEns)
2 2
# Ensemble weights: wEns(1),...,wEns(nEns-1) # Ensemble weights: wEns(1),...,wEns(nEns-1)
0.0 0.625
# GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type # GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type
32 0.00001 T 5 1 1 32 0.00001 T 5 1 1

View File

@ -1,4 +1,5 @@
# nAt nEla nElb nCore nRyd # nAt nEla nElb nCore nRyd
1 5 5 0 0 2 1 1 0 0
# Znuc x y z # Znuc x y z
Ne 0.0 0.0 0.0 H 0.0 0.0 0.0
H 0.0 0.0 1.4

View File

@ -1,3 +1,4 @@
1 2
Ne 0.0000000000 0.0000000000 0.0000000000 H 0.0000000000 0.0000000000 0.0000000000
H 0.0000000000 0.0000000000 0.7408481486

View File

@ -1,30 +1,43 @@
1 6 1 9
S 8 S 3
1 17880.0000000 0.0007380 1 33.8700000 0.0060680
2 2683.0000000 0.0056770 2 5.0950000 0.0453080
3 611.5000000 0.0288830 3 1.1590000 0.2028220
4 173.5000000 0.1085400
5 56.6400000 0.2909070
6 20.4200000 0.4483240
7 7.8100000 0.2580260
8 1.6530000 0.0150630
S 8
1 17880.0000000 -0.0001720
2 2683.0000000 -0.0013570
3 611.5000000 -0.0067370
4 173.5000000 -0.0276630
5 56.6400000 -0.0762080
6 20.4200000 -0.1752270
7 7.8100000 -0.1070380
8 1.6530000 0.5670500
S 1 S 1
1 0.4869000 1.0000000 1 0.3258000 1.0000000
P 3 S 1
1 28.3900000 0.0460870 1 0.1027000 1.0000000
2 6.2700000 0.2401810 S 1
3 1.6950000 0.5087440 1 0.0252600 1.0000000
P 1 P 1
1 0.4317000 1.0000000 1 1.4070000 1.0000000
P 1
1 0.3880000 1.0000000
P 1
1 0.1020000 1.0000000
D 1 D 1
1 2.2020000 1.0000000 1 1.0570000 1.0000000
D 1
1 0.2470000 1.0000000
2 9
S 3
1 33.8700000 0.0060680
2 5.0950000 0.0453080
3 1.1590000 0.2028220
S 1
1 0.3258000 1.0000000
S 1
1 0.1027000 1.0000000
S 1
1 0.0252600 1.0000000
P 1
1 1.4070000 1.0000000
P 1
1 0.3880000 1.0000000
P 1
1 0.1020000 1.0000000
D 1
1 1.0570000 1.0000000
D 1
1 0.2470000 1.0000000

View File

@ -18,7 +18,7 @@ subroutine RGIC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rho
integer :: iEns,jEns integer :: iEns,jEns
integer :: iG integer :: iG
double precision :: r double precision :: r
double precision :: dExdw(nEns) double precision,allocatable :: dExdw(:)
double precision,external :: Kronecker_delta double precision,external :: Kronecker_delta
double precision :: a,b,c,w double precision :: a,b,c,w
@ -28,6 +28,10 @@ subroutine RGIC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rho
double precision,intent(out) :: ExDD(nEns) double precision,intent(out) :: ExDD(nEns)
! Memory allocation
allocate(dExdw(nEns))
! Compute correlation energy for ground- and doubly-excited states ! Compute correlation energy for ground- and doubly-excited states
a = + 0.5751782560799208d0 a = + 0.5751782560799208d0
@ -35,7 +39,7 @@ subroutine RGIC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rho
c = - 0.36718902716347124d0 c = - 0.36718902716347124d0
w = wEns(2) w = wEns(2)
dCxGICdw = (0.5d0*b + (2d0*a + 0.5d0*c)*(w - 0.5d0) - (1d0 - w)*w*(3d0*b + 4d0*c*(w - 0.5d0))) dCxGICdw = - (0.5d0*b + (2d0*a + 0.5d0*c)*(w - 0.5d0) - (1d0 - w)*w*(3d0*b + 4d0*c*(w - 0.5d0)))
dCxGICdw = CxLDA*dCxGICdw dCxGICdw = CxLDA*dCxGICdw
dExdw(:) = 0d0 dExdw(:) = 0d0
@ -53,6 +57,8 @@ subroutine RGIC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rho
end do end do
ExDD(:) = 0d0
do iEns=1,nEns do iEns=1,nEns
do jEns=2,nEns do jEns=2,nEns