diff --git a/src/GF/G0F2.f90 b/src/GF/G0F2.f90 index f25a5d8..5a2fd9a 100644 --- a/src/GF/G0F2.f90 +++ b/src/GF/G0F2.f90 @@ -61,7 +61,7 @@ subroutine G0F2(dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,triplet,linearize,eta,regu if(regularize) then - call regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eHF,ERI,SigC,Z) + call GF2_reg_self_energy_diag(eta,nBas,nC,nO,nV,nR,eHF,eHF,ERI,SigC,Z) else diff --git a/src/GF/regularized_self_energy_GF2.f90 b/src/GF/GF2_reg_self_energy.f90 similarity index 71% rename from src/GF/regularized_self_energy_GF2.f90 rename to src/GF/GF2_reg_self_energy.f90 index df7146d..c69b042 100644 --- a/src/GF/regularized_self_energy_GF2.f90 +++ b/src/GF/GF2_reg_self_energy.f90 @@ -1,4 +1,4 @@ -subroutine regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) +subroutine GF2_reg_self_energy(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) ! Compute GF2 self-energy and its renormalization factor @@ -24,8 +24,8 @@ subroutine regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) double precision :: eps double precision :: num + double precision :: s double precision :: kappa - double precision :: fk,dfk ! Output variables @@ -41,7 +41,7 @@ subroutine regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) ! Parameters for regularized calculations ! !-----------------------------------------! - kappa = 1d0 + s = 100d0 !----------------------------------------------------! ! Compute GF2 self-energy and renormalization factor ! @@ -54,13 +54,11 @@ subroutine regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) do a=nO+1,nBas-nR eps = eGF2(p) + eHF(a) - eHF(i) - eHF(j) - num = (2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(q,a,i,j) + kappa = exp(-2d0*eps**2*s) + num = kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(q,a,i,j) - fk = (1d0 - exp(-2d0*eps**2/kappa**2))/eps - dfk = - fk/eps + 4d0*kappa**2*exp(-2d0*eps**2/kappa**2) - - SigC(p,q) = SigC(p,q) + num*fk - if(p == q) Z(p) = Z(p) - num*dfk + SigC(p,q) = SigC(p,q) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p) = Z(p) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 end do end do @@ -75,13 +73,11 @@ subroutine regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) do b=nO+1,nBas-nR eps = eGF2(p) + eHF(i) - eHF(a) - eHF(b) - num = (2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(q,i,a,b) + kappa = exp(-2d0*eps**2*s) + num = kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(q,i,a,b) - fk = (1d0 - exp(-2d0*eps**2/kappa**2))/eps - dfk = - fk/eps + 4d0*kappa**2*exp(-2d0*eps**2/kappa**2) - - SigC(p,q) = SigC(p,q) + num*fk - if(p == q) Z(p) = Z(p) - num*dfk + SigC(p,q) = SigC(p,q) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p) = Z(p) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 end do end do diff --git a/src/GF/regularized_self_energy_GF2_diag.f90 b/src/GF/GF2_reg_self_energy_diag.f90 similarity index 71% rename from src/GF/regularized_self_energy_GF2_diag.f90 rename to src/GF/GF2_reg_self_energy_diag.f90 index 0e145cd..97e9595 100644 --- a/src/GF/regularized_self_energy_GF2_diag.f90 +++ b/src/GF/GF2_reg_self_energy_diag.f90 @@ -1,4 +1,4 @@ -subroutine regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) +subroutine GF2_reg_self_energy_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,SigC,Z) ! Compute diagonal part of the GF2 self-energy and its renormalization factor @@ -24,8 +24,8 @@ subroutine regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,Si double precision :: eps double precision :: num + double precision :: s double precision :: kappa - double precision :: fk,dfk ! Output variables @@ -41,7 +41,7 @@ subroutine regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,Si ! Parameters for regularized calculations ! !-----------------------------------------! - kappa = 1d0 + s = 100d0 !----------------------------------------------------! ! Compute GF2 self-energy and renormalization factor ! @@ -53,13 +53,11 @@ subroutine regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,Si do a=nO+1,nBas-nR eps = eGF2(p) + eHF(a) - eHF(i) - eHF(j) - num = (2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j) + kappa = exp(-2d0*eps**2*s) + num = kappa*(2d0*ERI(p,a,i,j) - ERI(p,a,j,i))*ERI(p,a,i,j) - fk = (1d0 - exp(-2d0*eps**2/kappa**2))/eps - dfk = - fk/eps + 4d0*kappa**2*exp(-2d0*eps**2/kappa**2) - - SigC(p) = SigC(p) + num*fk - Z(p) = Z(p) - num*dfk + SigC(p) = SigC(p) + num*eps/(eps**2 + eta**2) + Z(p) = Z(p) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 end do end do @@ -72,13 +70,11 @@ subroutine regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF2,ERI,Si do b=nO+1,nBas-nR eps = eGF2(p) + eHF(i) - eHF(a) - eHF(b) - num = (2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b) + kappa = exp(-2d0*eps**2*s) + num = kappa*(2d0*ERI(p,i,a,b) - ERI(p,i,b,a))*ERI(p,i,a,b) - fk = (1d0 - exp(-2d0*eps**2/kappa**2))/eps - dfk = - fk/eps + 4d0*kappa**2*exp(-2d0*eps**2/kappa**2) - - SigC(p) = SigC(p) + num*fk - Z(p) = Z(p) - num*dfk + SigC(p) = SigC(p) + num*eps/(eps**2 + eta**2) + Z(p) = Z(p) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 end do end do diff --git a/src/GF/UG0F2.f90 b/src/GF/UG0F2.f90 index 9da9960..8383c96 100644 --- a/src/GF/UG0F2.f90 +++ b/src/GF/UG0F2.f90 @@ -79,7 +79,7 @@ subroutine UG0F2(BSE,TDA,dBSE,dTDA,spin_conserved,spin_flip,linearize,eta,regula if(regularize) then - call unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eHF,SigC,Z) + call UGF2_reg_self_energy_diag(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eHF,SigC,Z) else diff --git a/src/GF/unrestricted_regularized_self_energy_GF2.f90 b/src/GF/UGF2_reg_self_energy.f90 similarity index 64% rename from src/GF/unrestricted_regularized_self_energy_GF2.f90 rename to src/GF/UGF2_reg_self_energy.f90 index dcae0e4..0d419d8 100644 --- a/src/GF/unrestricted_regularized_self_energy_GF2.f90 +++ b/src/GF/UGF2_reg_self_energy.f90 @@ -1,4 +1,4 @@ -subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa,ERI_ab,ERI_bb,eHF,eGF2,SigC,Z) +subroutine UGF2_reg_self_energy(nBas,nC,nO,nV,nR,eta,ERI_aa,ERI_ab,ERI_bb,eHF,eGF2,SigC,Z) ! Perform unrestricted GF2 self-energy and its renormalization factor @@ -26,8 +26,8 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, integer :: i,j,a,b double precision :: eps,num + double precision :: s double precision :: kappa - double precision :: fk,dfk ! Output variables @@ -45,7 +45,7 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, ! Parameters for regularized calculations ! !-----------------------------------------! - kappa = 1.1d0 + s = 100d0 !----------------! ! Spin-up sector @@ -63,13 +63,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,1) + eHF(i,1) - eHF(a,1) - eHF(b,1) num = ERI_aa(i,q,a,b)*ERI_aa(a,b,i,p) & - ERI_aa(i,q,a,b)*ERI_aa(a,b,p,i) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,q,1) = SigC(p,q,1) + num*fk - if(p == q) Z(p,1) = Z(p,1) - num*dfk + SigC(p,q,1) = SigC(p,q,1) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -83,13 +81,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,1) + eHF(i,2) - eHF(a,2) - eHF(b,1) num = ERI_ab(q,i,b,a)*ERI_ab(b,a,p,i) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,q,1) = SigC(p,q,1) + num*fk - if(p == q) Z(p,1) = Z(p,1) - num*dfk + SigC(p,q,1) = SigC(p,q,1) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -104,13 +100,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,1) + eHF(a,1) - eHF(i,1) - eHF(j,1) num = ERI_aa(a,q,i,j)*ERI_aa(i,j,a,p) & - ERI_aa(a,q,i,j)*ERI_aa(i,j,p,a) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,q,1) = SigC(p,q,1) + num*fk - if(p == q) Z(p,1) = Z(p,1) - num*dfk + SigC(p,q,1) = SigC(p,q,1) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -124,13 +118,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,1) + eHF(a,2) - eHF(i,2) - eHF(j,1) num = ERI_ab(q,a,j,i)*ERI_ab(j,i,p,a) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,q,1) = SigC(p,q,1) + num*fk - if(p == q) Z(p,1) = Z(p,1) - num*dfk + SigC(p,q,1) = SigC(p,q,1) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -155,10 +147,8 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,2) + eHF(i,2) - eHF(a,2) - eHF(b,2) num = ERI_bb(i,q,a,b)*ERI_bb(a,b,i,p) & - ERI_bb(i,q,a,b)*ERI_bb(a,b,p,i) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num SigC(p,q,2) = SigC(p,q,2) + num*eps/(eps**2 + eta**2) if(p == q) Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 @@ -175,13 +165,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,2) + eHF(i,1) - eHF(a,1) - eHF(b,2) num = ERI_ab(i,q,a,b)*ERI_ab(a,b,i,p) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,q,2) = SigC(p,q,2) + num*fk - if(p == q) Z(p,2) = Z(p,2) - num*dfk + SigC(p,q,2) = SigC(p,q,2) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -196,13 +184,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,2) + eHF(a,2) - eHF(i,2) - eHF(j,2) num = ERI_bb(a,q,i,j)*ERI_bb(i,j,a,p) & - ERI_bb(a,q,i,j)*ERI_bb(i,j,p,a) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,q,2) = SigC(p,q,2) + num*fk - if(p == q) Z(p,2) = Z(p,2) - num*dfk + SigC(p,q,2) = SigC(p,q,2) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -216,13 +202,11 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, eps = eGF2(p,2) + eHF(a,1) - eHF(i,1) - eHF(j,2) num = ERI_ab(a,q,i,j)*ERI_ab(i,j,a,p) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,q,2) = SigC(p,q,2) + num*fk - if(p == q) Z(p,2) = Z(p,2) - num*dfk + SigC(p,q,2) = SigC(p,q,2) + num*eps/(eps**2 + eta**2) + if(p == q) Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -233,4 +217,4 @@ subroutine unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aa, Z(:,:) = 1d0/(1d0 - Z(:,:)) -end subroutine unrestricted_regularized_self_energy_GF2 +end subroutine diff --git a/src/GF/unrestricted_regularized_self_energy_GF2_diag.f90 b/src/GF/UGF2_reg_self_energy_diag.f90 similarity index 62% rename from src/GF/unrestricted_regularized_self_energy_GF2_diag.f90 rename to src/GF/UGF2_reg_self_energy_diag.f90 index 6818d0e..d1adf74 100644 --- a/src/GF/unrestricted_regularized_self_energy_GF2_diag.f90 +++ b/src/GF/UGF2_reg_self_energy_diag.f90 @@ -1,4 +1,4 @@ -subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ERI_aa,ERI_ab,ERI_bb,eHF,eGF2,SigC,Z) +subroutine UGF2_reg_self_energy_diag(nBas,nC,nO,nV,nR,eta,ERI_aa,ERI_ab,ERI_bb,eHF,eGF2,SigC,Z) ! Perform unrestricted GF2 self-energy and its renormalization factor @@ -26,8 +26,8 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER integer :: i,j,a,b double precision :: eps,num + double precision :: s double precision :: kappa - double precision :: fk,dfk ! Output variables @@ -44,7 +44,7 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER ! Parameters for regularized calculations ! !-----------------------------------------! - kappa = 1.1d0 + s = 100d0 !----------------! ! Spin-up sector @@ -61,13 +61,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,1) + eHF(i,1) - eHF(a,1) - eHF(b,1) num = ERI_aa(i,p,a,b)*ERI_aa(a,b,i,p) & - ERI_aa(i,p,a,b)*ERI_aa(a,b,p,i) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,1) = SigC(p,1) + num*fk - Z(p,1) = Z(p,1) - num*dfk + SigC(p,1) = SigC(p,1) + num*eps/(eps**2 + eta**2) + Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -81,13 +79,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,1) + eHF(i,2) - eHF(a,2) - eHF(b,1) num = ERI_ab(p,i,b,a)*ERI_ab(b,a,p,i) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,1) = SigC(p,1) + num*fk - Z(p,1) = Z(p,1) - num*dfk + SigC(p,1) = SigC(p,1) + num*eps/(eps**2 + eta**2) + Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -102,13 +98,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,1) + eHF(a,1) - eHF(i,1) - eHF(j,1) num = ERI_aa(a,p,i,j)*ERI_aa(i,j,a,p) & - ERI_aa(a,p,i,j)*ERI_aa(i,j,p,a) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,1) = SigC(p,1) + num*fk - Z(p,1) = Z(p,1) - num*dfk + SigC(p,1) = SigC(p,1) + num*eps/(eps**2 + eta**2) + Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -122,13 +116,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,1) + eHF(a,2) - eHF(i,2) - eHF(j,1) num = ERI_ab(p,a,j,i)*ERI_ab(j,i,p,a) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,1) = SigC(p,1) + num*fk - Z(p,1) = Z(p,1) - num*dfk + SigC(p,1) = SigC(p,1) + num*eps/(eps**2 + eta**2) + Z(p,1) = Z(p,1) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -151,13 +143,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,2) + eHF(i,2) - eHF(a,2) - eHF(b,2) num = ERI_bb(i,p,a,b)*ERI_bb(a,b,i,p) & - ERI_bb(i,p,a,b)*ERI_bb(a,b,p,i) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,2) = SigC(p,2) + num*fk - Z(p,2) = Z(p,2) - num*dfk + SigC(p,2) = SigC(p,2) + num*eps/(eps**2 + eta**2) + Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -171,13 +161,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,2) + eHF(i,1) - eHF(a,1) - eHF(b,2) num = ERI_ab(i,p,a,b)*ERI_ab(a,b,i,p) - - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk + kappa = exp(-2d0*eps**2*s) + num = kappa*num - SigC(p,2) = SigC(p,2) + num*fk - Z(p,2) = Z(p,2) - num*dfk + SigC(p,2) = SigC(p,2) + num*eps/(eps**2 + eta**2) + Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -192,13 +180,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,2) + eHF(a,2) - eHF(i,2) - eHF(j,2) num = ERI_bb(a,p,i,j)*ERI_bb(i,j,a,p) & - ERI_bb(a,p,i,j)*ERI_bb(i,j,p,a) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,2) = SigC(p,2) + num*fk - Z(p,2) = Z(p,2) - num*dfk + SigC(p,2) = SigC(p,2) + num*eps/(eps**2 + eta**2) + Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -212,13 +198,11 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER eps = eGF2(p,2) + eHF(a,1) - eHF(i,1) - eHF(j,2) num = ERI_ab(a,p,i,j)*ERI_ab(i,j,a,p) + kappa = exp(-2d0*eps**2*s) + num = kappa*num - fk = (1d0 - exp(-kappa*abs(eps)))**2/eps - dfk = - 1d0/eps + 2d0*kappa*exp(-kappa*abs(eps))/(1d0 - exp(-kappa*abs(eps))) - dfk = dfk*fk - - SigC(p,2) = SigC(p,2) + num*fk - Z(p,2) = Z(p,2) - num*dfk + SigC(p,2) = SigC(p,2) + num*eps/(eps**2 + eta**2) + Z(p,2) = Z(p,2) - num*(eps**2 - eta**2)/(eps**2 + eta**2)**2 enddo enddo @@ -228,4 +212,4 @@ subroutine unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ER Z(:,:) = 1d0/(1d0 - Z(:,:)) -end subroutine unrestricted_regularized_self_energy_GF2_diag +end subroutine diff --git a/src/GF/evGF2.f90 b/src/GF/evGF2.f90 index 776d3b3..4263397 100644 --- a/src/GF/evGF2.f90 +++ b/src/GF/evGF2.f90 @@ -82,7 +82,7 @@ subroutine evGF2(dophBSE,doppBSE,TDA,dBSE,dTDA,maxSCF,thresh,max_diis,singlet,tr if(regularize) then - call regularized_self_energy_GF2_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF,ERI,SigC,Z) + call GF2_reg_self_energy_diag(eta,nBas,nC,nO,nV,nR,eHF,eGF,ERI,SigC,Z) else diff --git a/src/GF/evUGF2.f90 b/src/GF/evUGF2.f90 index d9046eb..e01066d 100644 --- a/src/GF/evUGF2.f90 +++ b/src/GF/evUGF2.f90 @@ -113,7 +113,7 @@ subroutine evUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,spin_conserved,spin_f if(regularize) then - call unrestricted_regularized_self_energy_GF2_diag(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eGF2,SigC,Z) + call UGF2_reg_self_energy_diag(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eGF2,SigC,Z) else diff --git a/src/GF/qsGF2.f90 b/src/GF/qsGF2.f90 index 64144c3..7701f3c 100644 --- a/src/GF/qsGF2.f90 +++ b/src/GF/qsGF2.f90 @@ -147,7 +147,7 @@ subroutine qsGF2(maxSCF,thresh,max_diis,dophBSE,doppBSE,TDA,dBSE,dTDA,singlet,tr if(regularize) then - call regularized_self_energy_GF2(eta,nBas,nC,nO,nV,nR,eHF,eGF,ERI_MO,SigC,Z) + call GF2_reg_self_energy(eta,nBas,nC,nO,nV,nR,eHF,eGF,ERI_MO,SigC,Z) else diff --git a/src/GF/qsUGF2.f90 b/src/GF/qsUGF2.f90 index 1e14966..6bbfe7c 100644 --- a/src/GF/qsUGF2.f90 +++ b/src/GF/qsUGF2.f90 @@ -180,7 +180,7 @@ subroutine qsUGF2(maxSCF,thresh,max_diis,BSE,TDA,dBSE,dTDA,spin_conserved,spin_f if(regularize) then - call unrestricted_regularized_self_energy_GF2(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eGF2,SigC,Z) + call UGF2_reg_self_energy(nBas,nC,nO,nV,nR,eta,ERI_aaaa,ERI_aabb,ERI_bbbb,eHF,eGF2,SigC,Z) else