From 86c42b7001a5ef4f159e3a156218921e3af333b0 Mon Sep 17 00:00:00 2001 From: Antoine MARIE Date: Mon, 24 Mar 2025 23:24:59 +0100 Subject: [PATCH] ok with spin adaptation --- src/Parquet/GParquet.f90 | 6 ++--- src/Parquet/G_eh_Gam.f90 | 36 ++++++++++------------------ src/Parquet/G_screened_integrals.f90 | 5 ++-- src/Parquet/R_pp_singlet_Gam.f90 | 2 +- src/Parquet/R_screened_integrals.f90 | 6 +++-- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/Parquet/GParquet.f90 b/src/Parquet/GParquet.f90 index 4694444..2e411ff 100644 --- a/src/Parquet/GParquet.f90 +++ b/src/Parquet/GParquet.f90 @@ -153,9 +153,9 @@ subroutine GParquet(max_it_1b,conv_1b,max_it_2b,conv_2b,nOrb,nC,nO,nV,nR,nS,eHF, write(*,*) 'Computing eh effective interaction...' call wall_time(start_t) - !call R_eh_Gamma(nOrb,nC,nO,nV,nR,nS,nOO,nVV, & - ! old_eh_Om,eh_rho,old_ee_Om,ee_rho,old_hh_Om,hh_rho, & - ! eh_Gam) + call G_eh_Gamma(nOrb,nC,nO,nV,nR,nS,nOO,nVV, & + old_eh_Om,eh_rho,old_ee_Om,ee_rho,old_hh_Om,hh_rho, & + eh_Gam) call wall_time(end_t) t = end_t - start_t diff --git a/src/Parquet/G_eh_Gam.f90 b/src/Parquet/G_eh_Gam.f90 index b1f1df0..508ae92 100644 --- a/src/Parquet/G_eh_Gam.f90 +++ b/src/Parquet/G_eh_Gam.f90 @@ -30,31 +30,21 @@ subroutine G_eh_Gamma(nOrb,nC,nO,nV,nR,nS,nOO,nVV, & do q = nC+1, nOrb-nR do p = nC+1, nOrb-nR - ! do n=1,nS - ! eh_sing_Gam(p,q,r,s) = eh_sing_Gam(p,q,r,s) & - ! + eh_sing_rho(s,p,n)*eh_sing_rho(q,r,n)/eh_sing_Om(n) & - ! + 3d0 * eh_trip_rho(s,p,n)*eh_trip_rho(q,r,n)/eh_trip_Om(n) - ! end do + do n=1,nS + eh_Gam(p,q,r,s) = eh_Gam(p,q,r,s) & + + eh_rho(s,p,n)*eh_rho(q,r,n)/eh_Om(n) & + + eh_rho(p,s,n)*eh_rho(r,q,n)/eh_Om(n) + end do - ! do n=1,nVVs - ! eh_sing_Gam(p,q,r,s) = eh_sing_Gam(p,q,r,s) & - ! + ee_sing_rho(p,q,n)*ee_sing_rho(r,s,n)/ee_sing_Om(n) - ! end do + do n=1,nVV + eh_Gam(p,q,r,s) = eh_Gam(p,q,r,s) & + + 2d0 * ee_rho(p,q,n)*ee_rho(r,s,n)/ee_Om(n) + end do - ! do n=1,nOOs - ! eh_sing_Gam(p,q,r,s) = eh_sing_Gam(p,q,r,s) & - ! - hh_sing_rho(p,q,n)*hh_sing_rho(r,s,n)/hh_sing_Om(n) - ! end do - - ! do n=1,nVVt - ! eh_sing_Gam(p,q,r,s) = eh_sing_Gam(p,q,r,s) & - ! + 3d0 * ee_trip_rho(p,q,n)*ee_trip_rho(r,s,n)/ee_trip_Om(n) - ! end do - - ! do n=1,nOOt - ! eh_sing_Gam(p,q,r,s) = eh_sing_Gam(p,q,r,s) & - ! - 3d0 * hh_trip_rho(p,q,n)*hh_trip_rho(r,s,n)/hh_trip_Om(n) - ! end do + do n=1,nOO + eh_Gam(p,q,r,s) = eh_Gam(p,q,r,s) & + - 2d0 * hh_rho(p,q,n)*hh_rho(r,s,n)/hh_Om(n) + end do enddo enddo diff --git a/src/Parquet/G_screened_integrals.f90 b/src/Parquet/G_screened_integrals.f90 index 4386ed6..9b3d510 100644 --- a/src/Parquet/G_screened_integrals.f90 +++ b/src/Parquet/G_screened_integrals.f90 @@ -39,7 +39,9 @@ subroutine G_eh_screened_integral(nOrb,nC,nO,nR,nS,ERI,eh_Gam,XpY,XmY,rho) !+ (ERI(p,j,q,b) - ERI(p,j,b,q))*XpY(ia,jb) & + (ERI(p,j,q,b) - ERI(p,j,b,q))*X & + (ERI(p,b,q,j) - ERI(p,b,j,q))*Y & - + 0d0*eh_Gam(p,j,q,b)*XpY(ia,jb) + + 1d0*eh_Gam(p,j,q,b)*X & + + 1d0*eh_Gam(p,b,q,j)*Y + end do end do @@ -59,7 +61,6 @@ subroutine G_pp_screened_integral(nOrb,nC,nO,nV,nR,nOO,nVV,ERI,pp_Gam,X1,Y1,rho1 ! Input variables - integer,intent(in) :: nOrb,nC,nO,nV,nR double precision,intent(in) :: ERI(nOrb,nOrb,nOrb,nOrb) double precision,intent(in) :: pp_Gam(nOrb,nOrb,nOrb,nOrb) diff --git a/src/Parquet/R_pp_singlet_Gam.f90 b/src/Parquet/R_pp_singlet_Gam.f90 index efe2e5e..afbd50a 100644 --- a/src/Parquet/R_pp_singlet_Gam.f90 +++ b/src/Parquet/R_pp_singlet_Gam.f90 @@ -43,7 +43,7 @@ subroutine R_pp_singlet_Gamma(nOrb,nC,nR,nS,eh_sing_Om,eh_sing_rho,eh_trip_Om,eh + 1.5d0 * eh_trip_rho(p,s,n)*eh_trip_rho(r,q,n)/eh_trip_Om(n) end do - pp_sing_Gam(p,q,r,s) = pp_sing_Gam(p,q,r,s)/sqrt((1d0 + Kronecker_delta(p,q))*(1d0 + Kronecker_delta(r,s))) + ! pp_sing_Gam(p,q,r,s) = pp_sing_Gam(p,q,r,s)/sqrt((1d0 + Kronecker_delta(p,q))*(1d0 + Kronecker_delta(r,s))) end do end do diff --git a/src/Parquet/R_screened_integrals.f90 b/src/Parquet/R_screened_integrals.f90 index 399621d..8dc516d 100644 --- a/src/Parquet/R_screened_integrals.f90 +++ b/src/Parquet/R_screened_integrals.f90 @@ -36,7 +36,8 @@ subroutine R_eh_singlet_screened_integral(nOrb,nC,nO,nR,nS,ERI,eh_sing_Gam,XpY,X rho(p,q,ia) = rho(p,q,ia) & + (2d0*ERI(p,j,q,b) - ERI(p,j,b,q))*X & + (2d0*ERI(p,b,q,j) - ERI(p,b,j,q))*Y & - + 0d0*eh_sing_Gam(p,j,q,b)*XpY(ia,jb) + + 1d0*eh_sing_Gam(p,j,q,b)*X & + + 1d0*eh_sing_Gam(p,b,q,j)*Y end do end do @@ -86,7 +87,8 @@ subroutine R_eh_triplet_screened_integral(nOrb,nC,nO,nR,nS,ERI,eh_trip_Gam,XpY,X rho(p,q,ia) = rho(p,q,ia) & - ERI(p,j,b,q)*X & - ERI(p,b,j,q)*Y & - + 0d0*eh_trip_Gam(p,j,q,b)*XpY(ia,jb) + + 1d0*eh_trip_Gam(p,j,q,b)*X & + + 1d0*eh_trip_Gam(p,b,q,j)*Y end do end do end do