diff --git a/input/methods b/input/methods index f706c1e..bdc5b27 100644 --- a/input/methods +++ b/input/methods @@ -11,9 +11,9 @@ # RPA* RPAx* crRPA ppRPA F F F F # G0F2* evGF2* qsGF2* G0F3 evGF3 - F F F F F + T F F F F # G0W0* evGW* qsGW* SRG-qsGW ufG0W0 ufGW T F F F F F # G0T0 evGT qsGT ehG0T0 - F F F F + T F F T # * unrestricted version available diff --git a/input/options b/input/options index 5973b7a..87cf5c7 100644 --- a/input/options +++ b/input/options @@ -9,7 +9,7 @@ # GF: maxSCF thresh DIIS n_diis lin eta renorm reg 256 0.00001 T 5 T 0.0 0 F # 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 10 0.00001 T 5 T 0.0 F F # ACFDT: AC Kx XBS diff --git a/src/GT/ehGT_self_energy_diag.f90 b/src/GT/ehGT_self_energy_diag.f90 index 6c9f88a..842fa4d 100644 --- a/src/GT/ehGT_self_energy_diag.f90 +++ b/src/GT/ehGT_self_energy_diag.f90 @@ -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 m=1,nS 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 diff --git a/src/GW/evGW.f90 b/src/GW/evGW.f90 index a0fc67c..b9f0176 100644 --- a/src/GW/evGW.f90 +++ b/src/GW/evGW.f90 @@ -1,5 +1,6 @@ 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 diff --git a/src/RPA/sort_ppRPA.f90 b/src/RPA/sort_ppRPA.f90 index 355f71f..993017f 100644 --- a/src/RPA/sort_ppRPA.f90 +++ b/src/RPA/sort_ppRPA.f90 @@ -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(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) - call dgemm ('T', 'N', nVV , nVV, nOO+nVV, 1d0, Z1, nOO+nVV, tmp1, nOO+nVV, 0d0, S1, nVV) + if(nVV > 0) 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 ('T', 'N', nVV , nVV, nOO+nVV, 1d0, Z1, nOO+nVV, tmp1, nOO+nVV, 0d0, S1, nVV) !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) - call dgemm ('T', 'N', nOO , nOO, nOO+nVV, 1d0, Z2, nOO+nVV, tmp2, nOO+nVV, 0d0, S2, nOO) + if(nOO > 0) 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 ('T', 'N', nOO , nOO, nOO+nVV, 1d0, Z2, nOO+nVV, tmp2, nOO+nVV, 0d0, S2, nOO) ! S2 = - matmul(transpose(Z2),matmul(M,Z2)) if(nVV > 0) call orthogonalization_matrix(1,nVV,S1,O1) if(nOO > 0) call orthogonalization_matrix(1,nOO,S2,O2) - - write (*,*) 'OK SO FAR' - !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 - 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 ! Define submatrices X1, Y1, X2, & Y2 diff --git a/src/utils/read_basis.f90 b/src/utils/read_basis.f90 index 12c5531..15e2a94 100644 --- a/src/utils/read_basis.f90 +++ b/src/utils/read_basis.f90 @@ -166,7 +166,7 @@ subroutine read_basis(nNuc,rNuc,nBas,nO,nV,nShell,TotAngMomShell,CenterShell,KSh close(unit=2) -Calculate number of basis functions +! Calculate number of basis functions nBas = 0 do iShell=1,nShell