mirror of
https://github.com/pfloos/quack
synced 2024-11-03 20:53:53 +01:00
fixing antoine
This commit is contained in:
parent
4334ce3ee6
commit
af5d4f4226
@ -11,9 +11,9 @@
|
|||||||
# RPA* RPAx* crRPA ppRPA
|
# RPA* RPAx* crRPA ppRPA
|
||||||
F F F F
|
F F F F
|
||||||
# G0F2* evGF2* qsGF2* G0F3 evGF3
|
# G0F2* evGF2* qsGF2* G0F3 evGF3
|
||||||
F F F F F
|
T F F F F
|
||||||
# G0W0* evGW* qsGW* SRG-qsGW ufG0W0 ufGW
|
# G0W0* evGW* qsGW* SRG-qsGW ufG0W0 ufGW
|
||||||
T F F F F F
|
T F F F F F
|
||||||
# G0T0 evGT qsGT ehG0T0
|
# G0T0 evGT qsGT ehG0T0
|
||||||
F F F F
|
T F F T
|
||||||
# * unrestricted version available
|
# * unrestricted version available
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# GF: maxSCF thresh DIIS n_diis lin eta renorm reg
|
# GF: maxSCF thresh DIIS n_diis lin eta renorm reg
|
||||||
256 0.00001 T 5 T 0.0 0 F
|
256 0.00001 T 5 T 0.0 0 F
|
||||||
# GW: maxSCF thresh DIIS n_diis lin eta COHSEX SOSEX TDA_W reg
|
# GW: maxSCF thresh DIIS n_diis lin eta COHSEX SOSEX TDA_W reg
|
||||||
256 0.00001 T 5 F 1000 F F F T
|
256 0.00001 T 5 T 0.0 F F F F
|
||||||
# GT: maxSCF thresh DIIS n_diis lin eta TDA_T reg
|
# GT: maxSCF thresh DIIS n_diis lin eta TDA_T reg
|
||||||
10 0.00001 T 5 T 0.0 F F
|
10 0.00001 T 5 T 0.0 F F
|
||||||
# ACFDT: AC Kx XBS
|
# ACFDT: AC Kx XBS
|
||||||
|
@ -66,7 +66,7 @@ subroutine ehGT_self_energy_diag(eta,nBas,nC,nO,nV,nR,nS,e,Om,rhoL,rhoR,EcGM,Sig
|
|||||||
do a=nO+1,nBas-nR
|
do a=nO+1,nBas-nR
|
||||||
do m=1,nS
|
do m=1,nS
|
||||||
eps = e(a) - e(i) + Om(m)
|
eps = e(a) - e(i) + Om(m)
|
||||||
EcGM = EcGM - 2d0*rhoL(a,i,m)*rhoR(a,i,m)*eps/(eps**2 + eta**2)
|
EcGM = EcGM - rhoL(i,a,m)*rhoR(i,a,m)*eps/(eps**2 + eta**2)
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA,dBSE,dTDA,evDyn,ppBSE, &
|
subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,BSE,BSE2,TDA_W,TDA,dBSE,dTDA,evDyn,ppBSE, &
|
||||||
singlet,triplet,linearize,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int,PHF,cHF,eHF,Vxc,eG0W0)
|
singlet,triplet,linearize,eta,regularize,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_AO,ERI_MO,dipole_int,PHF, &
|
||||||
|
cHF,eHF,Vxc,eG0W0)
|
||||||
|
|
||||||
! Perform self-consistent eigenvalue-only GW calculation
|
! Perform self-consistent eigenvalue-only GW calculation
|
||||||
|
|
||||||
|
@ -203,24 +203,21 @@ subroutine sort_ppRPA(nOO,nVV,Omega,Z,Omega1,X1,Y1,Omega2,X2,Y2)
|
|||||||
allocate(S1(nVV,nVV),S2(nOO,nOO),O1(nVV,nVV),O2(nOO,nOO))
|
allocate(S1(nVV,nVV),S2(nOO,nOO),O1(nVV,nVV),O2(nOO,nOO))
|
||||||
allocate(tmp1(nOO+nVV,nVV),tmp2(nOO+nVV,nOO))
|
allocate(tmp1(nOO+nVV,nVV),tmp2(nOO+nVV,nOO))
|
||||||
|
|
||||||
call dgemm ('N', 'N', nOO+nVV, nVV, nOO+nVV, 1d0, M, nOO+nVV, Z1, nOO+nVV, 0d0, tmp1, nOO+nVV)
|
if(nVV > 0) call dgemm ('N', 'N', nOO+nVV, nVV, nOO+nVV, 1d0, M, nOO+nVV, Z1, nOO+nVV, 0d0, tmp1, nOO+nVV)
|
||||||
call dgemm ('T', 'N', nVV , nVV, nOO+nVV, 1d0, Z1, nOO+nVV, tmp1, nOO+nVV, 0d0, S1, nVV)
|
if(nVV > 0) call dgemm ('T', 'N', nVV , nVV, nOO+nVV, 1d0, Z1, nOO+nVV, tmp1, nOO+nVV, 0d0, S1, nVV)
|
||||||
!S1 = + matmul(transpose(Z1),matmul(M,Z1))
|
!S1 = + matmul(transpose(Z1),matmul(M,Z1))
|
||||||
|
|
||||||
call dgemm ('N', 'N', nOO+nVV, nOO, nOO+nVV, 1d0, M, nOO+nVV, -1d0*Z2, nOO+nVV, 0d0, tmp2, nOO+nVV)
|
if(nOO > 0) call dgemm ('N', 'N', nOO+nVV, nOO, nOO+nVV, 1d0, M, nOO+nVV, -1d0*Z2, nOO+nVV, 0d0, tmp2, nOO+nVV)
|
||||||
call dgemm ('T', 'N', nOO , nOO, nOO+nVV, 1d0, Z2, nOO+nVV, tmp2, nOO+nVV, 0d0, S2, nOO)
|
if(nOO > 0) call dgemm ('T', 'N', nOO , nOO, nOO+nVV, 1d0, Z2, nOO+nVV, tmp2, nOO+nVV, 0d0, S2, nOO)
|
||||||
! S2 = - matmul(transpose(Z2),matmul(M,Z2))
|
! S2 = - matmul(transpose(Z2),matmul(M,Z2))
|
||||||
|
|
||||||
if(nVV > 0) call orthogonalization_matrix(1,nVV,S1,O1)
|
if(nVV > 0) call orthogonalization_matrix(1,nVV,S1,O1)
|
||||||
if(nOO > 0) call orthogonalization_matrix(1,nOO,S2,O2)
|
if(nOO > 0) call orthogonalization_matrix(1,nOO,S2,O2)
|
||||||
|
|
||||||
|
|
||||||
write (*,*) 'OK SO FAR'
|
|
||||||
|
|
||||||
!Z1 = matmul(Z1,O1)
|
!Z1 = matmul(Z1,O1)
|
||||||
call dgemm ('N', 'N', nOO+nVV,nVV,nVV, 1d0, Z1, nOO+nVV, O1, nVV,0d0, tmp1, nOO+nVV)
|
if(nVV > 0) call dgemm ('N', 'N', nOO+nVV,nVV,nVV, 1d0, Z1, nOO+nVV, O1, nVV,0d0, tmp1, nOO+nVV)
|
||||||
Z1 = tmp1
|
Z1 = tmp1
|
||||||
call dgemm ('N', 'N', nOO+nVV,nOO,nOO, 1d0, Z2, nOO+nVV, O2, nOO,0d0, tmp2, nOO+nVV)
|
if(nOO > 0) call dgemm ('N', 'N', nOO+nVV,nOO,nOO, 1d0, Z2, nOO+nVV, O2, nOO,0d0, tmp2, nOO+nVV)
|
||||||
Z2 = tmp2
|
Z2 = tmp2
|
||||||
|
|
||||||
! Define submatrices X1, Y1, X2, & Y2
|
! Define submatrices X1, Y1, X2, & Y2
|
||||||
|
@ -166,7 +166,7 @@ subroutine read_basis(nNuc,rNuc,nBas,nO,nV,nShell,TotAngMomShell,CenterShell,KSh
|
|||||||
|
|
||||||
close(unit=2)
|
close(unit=2)
|
||||||
|
|
||||||
Calculate number of basis functions
|
! Calculate number of basis functions
|
||||||
|
|
||||||
nBas = 0
|
nBas = 0
|
||||||
do iShell=1,nShell
|
do iShell=1,nShell
|
||||||
|
Loading…
Reference in New Issue
Block a user