From a34e444fa0c31fca14e3cc7b14130c610b4bc303 Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Tue, 19 Mar 2019 23:02:22 +0100 Subject: [PATCH] EOM-CC under way --- src/QuAcK/QuAcK.f90 | 10 ++++------ src/QuAcK/phys_to_chem_ERI.f90 | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/QuAcK/phys_to_chem_ERI.f90 diff --git a/src/QuAcK/QuAcK.f90 b/src/QuAcK/QuAcK.f90 index 90c5db8..52c2503 100644 --- a/src/QuAcK/QuAcK.f90 +++ b/src/QuAcK/QuAcK.f90 @@ -265,9 +265,13 @@ program QuAcK if(doMP2F12) then call cpu_time(start_MP2F12) + ! Memory allocation for one- and two-electron integrals + allocate(F12(nBas,nBas,nBas,nBas),Yuk(nBas,nBas,nBas,nBas),FC(nBas,nBas,nBas,nBas,nBas,nBas)) + ! Read integrals + call read_F12_integrals(nBas,S,ERI_AO_basis,F12,Yuk,FC) call MP2F12(nBas,nC,nO,nV,ERI_AO_basis,F12,Yuk,FC,ERHF,eHF,cHF) call cpu_time(end_MP2F12) @@ -366,7 +370,6 @@ program QuAcK if(doGF2) then call cpu_time(start_GF2) -! call GF2(maxSCF_GF,thresh_GF,n_diis_GF,nBas,nC,nO,nV,nR,ERI_MO_basis,eHF) call GF2_diag(maxSCF_GF,thresh_GF,n_diis_GF,nBas,nC,nO,nV,nR,ERI_MO_basis,eHF) call cpu_time(end_GF2) @@ -506,11 +509,6 @@ program QuAcK nMC,nEq,nWalk,dt,nPrint, & nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & Norm,EcMCMP2,Err_EcMCMP2,Var_EcMCMP2) -! call MCMP2(.false.,doDrift,nBas,nEl,nC,nO,nV,cHF,eHF,EcMP2, & -! nMC,nEq,nWalk,dt,nPrint, & -! nShell,CenterShell,TotAngMomShell,KShell,DShell,ExpShell, & -! TrialType,Norm,cTrial,gradient,hessian, & -! EcMCMP2,Err_EcMCMP2,Var_EcMCMP2) call cpu_time(end_MCMP2) t_MCMP2 = end_MCMP2 - start_MCMP2 diff --git a/src/QuAcK/phys_to_chem_ERI.f90 b/src/QuAcK/phys_to_chem_ERI.f90 new file mode 100644 index 0000000..21b4c6f --- /dev/null +++ b/src/QuAcK/phys_to_chem_ERI.f90 @@ -0,0 +1,33 @@ +subroutine phys_to_chem_ERI(nBas,ERI) + +! Antisymmetrize ERIs + + implicit none + +! Input variables + + integer,intent(in) :: nBas + double precision,intent(inout):: ERI(nBas,nBas,nBas,nBas) + +! Local variables + + integer :: p,q,r,s + double precision,allocatable :: cERI(:,:,:,:) + + allocate(cERI(nBas,nBas,nBas,nBas)) + + do p=1,nBas + do q=1,nBas + do r=1,nBas + do s=1,nBas + + cERI(p,q,r,s) = ERI(p,r,q,s) + + enddo + enddo + enddo + enddo + + ERI(:,:,:,:) = cERI(:,:,:,:) + +end subroutine phys_to_chem_ERI