diff --git a/input/options b/input/options index 6f018ce..b67a3c4 100644 --- a/input/options +++ b/input/options @@ -2,6 +2,8 @@ 64 0.0000001 T 5 1 1 # MP: +# CC: maxSCF thresh DIIS n_diis + 64 0.00001 F 1 # CIS/TDHF: singlet triplet T F # GF: maxSCF thresh DIIS n_diis renormalization diff --git a/src/MCQC/MCQC.f90 b/src/MCQC/MCQC.f90 index 3197162..9a2386a 100644 --- a/src/MCQC/MCQC.f90 +++ b/src/MCQC/MCQC.f90 @@ -51,6 +51,10 @@ program MCQC double precision :: thresh_HF logical :: DIIS_HF,guess_type,ortho_type + integer :: maxSCF_CC,n_diis_CC + double precision :: thresh_CC + logical :: DIIS_CC + logical :: singlet_manifold,triplet_manifold integer :: maxSCF_GF,n_diis_GF,renormalization @@ -90,6 +94,7 @@ program MCQC ! Read options for methods call read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_type, & + maxSCF_CC,thresh_CC,DIIS_CC,n_diis_CC, & singlet_manifold,triplet_manifold, & maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,renormalization, & maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,COHSEX,SOSEX,BSE,TDA,G0W,GW0,linearize, & @@ -262,7 +267,7 @@ program MCQC if(doCCD) then call cpu_time(start_CCD) - call CCD(nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF) + call CCD(maxSCF_CC,thresh_CC,n_diis_CC,nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF) call cpu_time(end_CCD) t_CCD = end_CCD - start_CCD @@ -278,7 +283,7 @@ program MCQC if(doCCSD) then call cpu_time(start_CCSD) - call CCSD(doCCSDT,nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF) + call CCSD(maxSCF_CC,thresh_CC,n_diis_CC,doCCSDT,nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF) call cpu_time(end_CCSD) t_CCSD = end_CCSD - start_CCSD diff --git a/src/MCQC/read_options.f90 b/src/MCQC/read_options.f90 index 0096914..5afc2a8 100644 --- a/src/MCQC/read_options.f90 +++ b/src/MCQC/read_options.f90 @@ -1,4 +1,5 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_type, & + maxSCF_CC,thresh_CC,DIIS_CC,n_diis_CC, & singlet_manifold,triplet_manifold, & maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,renormalization, & maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW,COHSEX,SOSEX,BSE,TDA,G0W,GW0,linearize, & @@ -17,6 +18,11 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t integer,intent(out) :: guess_type integer,intent(out) :: ortho_type + integer,intent(out) :: maxSCF_CC + double precision,intent(out) :: thresh_CC + logical,intent(out) :: DIIS_CC + integer,intent(out) :: n_diis_CC + logical,intent(out) :: singlet_manifold logical,intent(out) :: triplet_manifold @@ -75,6 +81,20 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t read(1,*) read(1,*) +! Read CC options + + maxSCF_CC = 64 + thresh_CC = 1d-5 + DIIS_CC = .false. + n_diis_CC = 5 + + read(1,*) + read(1,*) maxSCF_CC,thresh_CC,answer1,n_diis_CC + + if(answer1 == 'T') DIIS_CC = .true. + + if(.not.DIIS_CC) n_diis_CC = 1 + ! Read excited state options singlet_manifold = .false.