mirror of
https://github.com/pfloos/quack
synced 2024-11-05 13:43:51 +01:00
modifications for the parameters of the weight-dependent functionnals
This commit is contained in:
parent
c081a2664a
commit
09d3b39e63
@ -1,4 +1,4 @@
|
|||||||
subroutine UCC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rhow,ExDD)
|
subroutine UCC_lda_exchange_derivative_discontinuity(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,ExDD)
|
||||||
|
|
||||||
! Compute the unrestricted version of the curvature-corrected exchange ensemble derivative
|
! Compute the unrestricted version of the curvature-corrected exchange ensemble derivative
|
||||||
|
|
||||||
@ -9,6 +9,8 @@ subroutine UCC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rhow
|
|||||||
|
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
double precision,intent(in) :: rhow(nGrid)
|
double precision,intent(in) :: rhow(nGrid)
|
||||||
@ -59,15 +61,17 @@ subroutine UCC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight,rhow
|
|||||||
|
|
||||||
! Parameters for He N -> N-1
|
! Parameters for He N -> N-1
|
||||||
|
|
||||||
a1 = 0.420243d0
|
a1 = aCC_w1(1)
|
||||||
b1 = 0.0700561d0
|
b1 = aCC_w1(2)
|
||||||
c1 = -0.288301d0
|
c1 = aCC_w1(3)
|
||||||
|
|
||||||
|
|
||||||
! Parameters for He N -> N+1
|
! Parameters for He N -> N+1
|
||||||
|
|
||||||
a2 = 0.135068d0
|
a2 = aCC_w2(1)
|
||||||
b2 = -0.00774769d0
|
b2 = aCC_w2(2)
|
||||||
c2 = -0.0278205d0
|
c2 = aCC_w2(3)
|
||||||
|
|
||||||
|
|
||||||
! Cx coefficient for unrestricted Slater LDA exchange
|
! Cx coefficient for unrestricted Slater LDA exchange
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine UCC_lda_exchange_individual_energy(nEns,wEns,nGrid,weight,rhow,rho,Ex)
|
subroutine UCC_lda_exchange_individual_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,rho,Ex)
|
||||||
|
|
||||||
! Compute the unrestricted version of the curvature-corrected exchange functional
|
! Compute the unrestricted version of the curvature-corrected exchange functional
|
||||||
|
|
||||||
@ -9,6 +9,7 @@ subroutine UCC_lda_exchange_individual_energy(nEns,wEns,nGrid,weight,rhow,rho,Ex
|
|||||||
|
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
double precision,intent(in) :: rhow(nGrid)
|
double precision,intent(in) :: rhow(nGrid)
|
||||||
@ -54,15 +55,15 @@ subroutine UCC_lda_exchange_individual_energy(nEns,wEns,nGrid,weight,rhow,rho,Ex
|
|||||||
|
|
||||||
! Parameters for He N -> N-1
|
! Parameters for He N -> N-1
|
||||||
|
|
||||||
a1 = 0.420243d0
|
a1 = aCC_w1(1)
|
||||||
b1 = 0.0700561d0
|
b1 = aCC_w1(2)
|
||||||
c1 = -0.288301d0
|
c1 = aCC_w1(3)
|
||||||
|
|
||||||
! Parameters for He N -> N+1
|
! Parameters for He N -> N+1
|
||||||
|
|
||||||
a2 = 0.135068d0
|
a2 = aCC_w2(1)
|
||||||
b2 = -0.00774769d0
|
b2 = aCC_w2(2)
|
||||||
c2 = -0.0278205d0
|
c2 = aCC_w2(3)
|
||||||
|
|
||||||
! Cx coefficient for unrestricted Slater LDA exchange
|
! Cx coefficient for unrestricted Slater LDA exchange
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine UCC_lda_exchange_potential(nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
subroutine UCC_lda_exchange_potential(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx)
|
||||||
|
|
||||||
! Compute the unrestricted version of the curvature-corrected exchange potential
|
! Compute the unrestricted version of the curvature-corrected exchange potential
|
||||||
|
|
||||||
@ -9,6 +9,8 @@ subroutine UCC_lda_exchange_potential(nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
|||||||
|
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
@ -54,15 +56,15 @@ subroutine UCC_lda_exchange_potential(nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
|||||||
|
|
||||||
! Parameters for He N -> N-1
|
! Parameters for He N -> N-1
|
||||||
|
|
||||||
a1 = 0.420243d0
|
a1 = aCC_w1(1)
|
||||||
b1 = 0.0700561d0
|
b1 = aCC_w1(2)
|
||||||
c1 = -0.288301d0
|
c1 = aCC_w1(3)
|
||||||
|
|
||||||
! Parameters for He N -> N+1
|
! Parameters for He N -> N+1
|
||||||
|
|
||||||
a2 = 0.135068d0
|
a2 = aCC_w2(1)
|
||||||
b2 = -0.00774769d0
|
b2 = aCC_w2(2)
|
||||||
c2 = -0.0278205d0
|
c2 = aCC_w2(3)
|
||||||
|
|
||||||
! Cx coefficient for unrestricted Slater LDA exchange
|
! Cx coefficient for unrestricted Slater LDA exchange
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ subroutine eDFT_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weig
|
|||||||
! Compute exchange potential
|
! Compute exchange potential
|
||||||
|
|
||||||
do ispin=1,nspin
|
do ispin=1,nspin
|
||||||
call exchange_potential(x_rung,x_DFA,LDA_centered,nEns,wEns(:),nGrid,weight(:),nBas,Pw(:,:,ispin),ERI(:,:,:,:), &
|
call exchange_potential(x_rung,x_DFA,LDA_centered,nEns,wEns(:),aCC_w1,aCC_w2,nGrid,weight(:),nBas,Pw(:,:,ispin),ERI(:,:,:,:), &
|
||||||
AO(:,:),dAO(:,:,:),rhow(:,ispin),drhow(:,:,ispin),Fx(:,:,ispin),FxHF(:,:,ispin))
|
AO(:,:),dAO(:,:,:),rhow(:,ispin),drhow(:,:,ispin),Fx(:,:,ispin),FxHF(:,:,ispin))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ subroutine eDFT_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weig
|
|||||||
! Compute individual energies from ensemble energy
|
! Compute individual energies from ensemble energy
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
call unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas, &
|
call unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas, &
|
||||||
AO,dAO,nO,nV,T,V,ERI,ENuc,eps,Pw,rhow,drhow,J,Fx,FxHF,Fc,P,rho,drho,Ew,E,Om)
|
AO,dAO,nO,nV,T,V,ERI,ENuc,eps,Pw,rhow,drhow,J,Fx,FxHF,Fc,P,rho,drho,Ew,E,Om)
|
||||||
|
|
||||||
end subroutine eDFT_UKS
|
end subroutine eDFT_UKS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine exchange_derivative_discontinuity(rung,DFA,nEns,wEns,nGrid,weight,rhow,drhow,ExDD)
|
subroutine exchange_derivative_discontinuity(rung,DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,drhow,ExDD)
|
||||||
|
|
||||||
! Compute the exchange part of the derivative discontinuity
|
! Compute the exchange part of the derivative discontinuity
|
||||||
|
|
||||||
@ -11,6 +11,8 @@ subroutine exchange_derivative_discontinuity(rung,DFA,nEns,wEns,nGrid,weight,rho
|
|||||||
character(len=12),intent(in) :: DFA
|
character(len=12),intent(in) :: DFA
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
double precision,intent(in) :: rhow(nGrid)
|
double precision,intent(in) :: rhow(nGrid)
|
||||||
@ -35,7 +37,7 @@ subroutine exchange_derivative_discontinuity(rung,DFA,nEns,wEns,nGrid,weight,rho
|
|||||||
|
|
||||||
case(1)
|
case(1)
|
||||||
|
|
||||||
call lda_exchange_derivative_discontinuity(DFA,nEns,wEns(:),nGrid,weight(:),rhow(:),ExDD(:))
|
call lda_exchange_derivative_discontinuity(DFA,nEns,wEns(:),aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),ExDD(:))
|
||||||
|
|
||||||
! GGA functionals
|
! GGA functionals
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine exchange_individual_energy(rung,DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas, &
|
subroutine exchange_individual_energy(rung,DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas, &
|
||||||
ERI,Pw,P,rhow,drhow,rho,drho,Ex)
|
ERI,Pw,P,rhow,drhow,rho,drho,Ex)
|
||||||
|
|
||||||
! Compute the exchange individual energy
|
! Compute the exchange individual energy
|
||||||
@ -13,6 +13,8 @@ subroutine exchange_individual_energy(rung,DFA,LDA_centered,nEns,wEns,nGrid,weig
|
|||||||
logical,intent(in) :: LDA_centered
|
logical,intent(in) :: LDA_centered
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
@ -46,7 +48,7 @@ subroutine exchange_individual_energy(rung,DFA,LDA_centered,nEns,wEns,nGrid,weig
|
|||||||
|
|
||||||
case(1)
|
case(1)
|
||||||
|
|
||||||
call lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,nGrid,weight,rhow,rho,ExLDA)
|
call lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,rho,ExLDA)
|
||||||
|
|
||||||
Ex = ExLDA
|
Ex = ExLDA
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine exchange_potential(rung,DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,P,ERI,AO,dAO,rho,drho,Fx,FxHF)
|
subroutine exchange_potential(rung,DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,P,ERI,AO,dAO,rho,drho,Fx,FxHF)
|
||||||
|
|
||||||
! Compute the exchange potential
|
! Compute the exchange potential
|
||||||
|
|
||||||
@ -12,6 +12,8 @@ subroutine exchange_potential(rung,DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,
|
|||||||
logical,intent(in) :: LDA_centered
|
logical,intent(in) :: LDA_centered
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
@ -45,7 +47,7 @@ subroutine exchange_potential(rung,DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,
|
|||||||
|
|
||||||
case(1)
|
case(1)
|
||||||
|
|
||||||
call lda_exchange_potential(DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
call lda_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx)
|
||||||
|
|
||||||
! GGA functionals
|
! GGA functionals
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine lda_exchange_derivative_discontinuity(DFA,nEns,wEns,nGrid,weight,rhow,ExDD)
|
subroutine lda_exchange_derivative_discontinuity(DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,ExDD)
|
||||||
|
|
||||||
! Compute the exchange LDA part of the derivative discontinuity
|
! Compute the exchange LDA part of the derivative discontinuity
|
||||||
|
|
||||||
@ -10,6 +10,9 @@ subroutine lda_exchange_derivative_discontinuity(DFA,nEns,wEns,nGrid,weight,rhow
|
|||||||
character(len=12),intent(in) :: DFA
|
character(len=12),intent(in) :: DFA
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
|
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
double precision,intent(in) :: rhow(nGrid)
|
double precision,intent(in) :: rhow(nGrid)
|
||||||
@ -39,11 +42,11 @@ subroutine lda_exchange_derivative_discontinuity(DFA,nEns,wEns,nGrid,weight,rhow
|
|||||||
|
|
||||||
case ('RCC')
|
case ('RCC')
|
||||||
|
|
||||||
call RCC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight(:),rhow(:),ExDD(:))
|
call RCC_lda_exchange_derivative_discontinuity(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),ExDD(:))
|
||||||
|
|
||||||
case ('UCC')
|
case ('UCC')
|
||||||
|
|
||||||
call UCC_lda_exchange_derivative_discontinuity(nEns,wEns,nGrid,weight(:),rhow(:),ExDD(:))
|
call UCC_lda_exchange_derivative_discontinuity(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),ExDD(:))
|
||||||
|
|
||||||
case default
|
case default
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,nGrid,weight,rhow,rho,Ex)
|
subroutine lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,rho,Ex)
|
||||||
|
|
||||||
! Compute LDA exchange energy for individual states
|
! Compute LDA exchange energy for individual states
|
||||||
|
|
||||||
@ -11,6 +11,8 @@ subroutine lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,nGrid,weigh
|
|||||||
character(len=12),intent(in) :: DFA
|
character(len=12),intent(in) :: DFA
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
double precision,intent(in) :: rhow(nGrid)
|
double precision,intent(in) :: rhow(nGrid)
|
||||||
@ -42,7 +44,7 @@ subroutine lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEns,nGrid,weigh
|
|||||||
|
|
||||||
case ('UCC')
|
case ('UCC')
|
||||||
|
|
||||||
call UCC_lda_exchange_individual_energy(nEns,wEns,nGrid,weight(:),rhow(:),rho(:),Ex)
|
call UCC_lda_exchange_individual_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),rho(:),Ex)
|
||||||
|
|
||||||
case default
|
case default
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine lda_exchange_potential(DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
subroutine lda_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx)
|
||||||
|
|
||||||
! Select LDA correlation potential
|
! Select LDA correlation potential
|
||||||
|
|
||||||
@ -12,6 +12,8 @@ subroutine lda_exchange_potential(DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,A
|
|||||||
character(len=12),intent(in) :: DFA
|
character(len=12),intent(in) :: DFA
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
@ -40,11 +42,11 @@ subroutine lda_exchange_potential(DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,A
|
|||||||
|
|
||||||
case ('RCC')
|
case ('RCC')
|
||||||
|
|
||||||
call RCC_lda_exchange_potential(nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
call RCC_lda_exchange_potential(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx)
|
||||||
|
|
||||||
case ('UCC')
|
case ('UCC')
|
||||||
|
|
||||||
call UCC_lda_exchange_potential(nEns,wEns,nGrid,weight,nBas,AO,rho,Fx)
|
call UCC_lda_exchange_potential(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx)
|
||||||
|
|
||||||
case default
|
case default
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,AO,dAO, &
|
subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,dAO, &
|
||||||
nO,nV,T,V,ERI,ENuc,eps,Pw,rhow,drhow,J,Fx,FxHF,Fc,P,rho,drho,Ew,E,Om)
|
nO,nV,T,V,ERI,ENuc,eps,Pw,rhow,drhow,J,Fx,FxHF,Fc,P,rho,drho,Ew,E,Om)
|
||||||
|
|
||||||
! Compute unrestricted individual energies as well as excitation energies
|
! Compute unrestricted individual energies as well as excitation energies
|
||||||
@ -13,6 +13,8 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered
|
|||||||
logical,intent(in) :: LDA_centered
|
logical,intent(in) :: LDA_centered
|
||||||
integer,intent(in) :: nEns
|
integer,intent(in) :: nEns
|
||||||
double precision,intent(in) :: wEns(nEns)
|
double precision,intent(in) :: wEns(nEns)
|
||||||
|
double precision,intent(in) :: aCC_w1(3)
|
||||||
|
double precision,intent(in) :: aCC_w2(3)
|
||||||
integer,intent(in) :: nGrid
|
integer,intent(in) :: nGrid
|
||||||
double precision,intent(in) :: weight(nGrid)
|
double precision,intent(in) :: weight(nGrid)
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
@ -116,7 +118,7 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered
|
|||||||
|
|
||||||
do iEns=1,nEns
|
do iEns=1,nEns
|
||||||
do ispin=1,nspin
|
do ispin=1,nspin
|
||||||
call exchange_individual_energy(x_rung,x_DFA,LDA_centered,nEns,wEns,nGrid,weight,nBas,ERI, &
|
call exchange_individual_energy(x_rung,x_DFA,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,ERI, &
|
||||||
Pw(:,:,ispin),P(:,:,ispin,iEns),rhow(:,ispin),drhow(:,:,ispin), &
|
Pw(:,:,ispin),P(:,:,ispin,iEns),rhow(:,ispin),drhow(:,:,ispin), &
|
||||||
rho(:,ispin,iEns),drho(:,:,ispin,iEns),Ex(ispin,iEns))
|
rho(:,ispin,iEns),drho(:,:,ispin,iEns),Ex(ispin,iEns))
|
||||||
end do
|
end do
|
||||||
@ -143,7 +145,7 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered
|
|||||||
|
|
||||||
do ispin=1,nspin
|
do ispin=1,nspin
|
||||||
|
|
||||||
call exchange_derivative_discontinuity(x_rung,x_DFA,nEns,wEns,nGrid,weight, &
|
call exchange_derivative_discontinuity(x_rung,x_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight, &
|
||||||
rhow(:,ispin),drhow(:,:,ispin),ExDD(ispin,:))
|
rhow(:,ispin),drhow(:,:,ispin),ExDD(ispin,:))
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user