mirror of
https://github.com/pfloos/quack
synced 2025-01-05 10:59:38 +01:00
CCSD under progress
This commit is contained in:
parent
5f015026e4
commit
9053823050
12
input/basis
12
input/basis
@ -1,9 +1,7 @@
|
|||||||
1 3
|
1 2
|
||||||
S 3 1.00
|
S 3 1.00
|
||||||
38.3600000 0.0238090
|
38.4216340 0.0237660
|
||||||
5.7700000 0.1548910
|
5.7780300 0.1546790
|
||||||
1.2400000 0.4699870
|
1.2417740 0.4696300
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.2976000 1.0000000
|
0.2979640 1.0000000
|
||||||
P 1 1.00
|
|
||||||
1.2750000 1.0000000
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# RHF: maxSCF thresh DIIS n_diis guess_type ortho_type
|
# RHF: maxSCF thresh DIIS n_diis guess_type ortho_type
|
||||||
32 0.0000001 T 5 1 1
|
64 0.0000001 T 5 1 1
|
||||||
# MP:
|
# MP:
|
||||||
|
|
||||||
# CIS/TDHF: singlet triplet
|
# CIS/TDHF: singlet triplet
|
||||||
|
12
input/weight
12
input/weight
@ -1,9 +1,7 @@
|
|||||||
1 3
|
1 2
|
||||||
S 3 1.00
|
S 3 1.00
|
||||||
38.3600000 0.0238090
|
38.4216340 0.0237660
|
||||||
5.7700000 0.1548910
|
5.7780300 0.1546790
|
||||||
1.2400000 0.4699870
|
1.2417740 0.4696300
|
||||||
S 1 1.00
|
S 1 1.00
|
||||||
0.2976000 1.0000000
|
0.2979640 1.0000000
|
||||||
P 1 1.00
|
|
||||||
1.2750000 1.0000000
|
|
||||||
|
@ -5,7 +5,7 @@ program MCQC
|
|||||||
|
|
||||||
logical :: doHF,doMOM
|
logical :: doHF,doMOM
|
||||||
logical :: doMP2,doMP3,doMP2F12
|
logical :: doMP2,doMP3,doMP2F12
|
||||||
logical :: doCC
|
logical :: doCCD,doCCSD,doCCSDT
|
||||||
logical :: doCIS,doTDHF,doADC
|
logical :: doCIS,doTDHF,doADC
|
||||||
logical :: doGF2,doGF3
|
logical :: doGF2,doGF3
|
||||||
logical :: doG0W0,doevGW,doqsGW
|
logical :: doG0W0,doevGW,doqsGW
|
||||||
@ -14,6 +14,7 @@ program MCQC
|
|||||||
integer :: nNuc,nBas,nBasCABS,nEl,nC,nO,nV,nR,nS
|
integer :: nNuc,nBas,nBasCABS,nEl,nC,nO,nV,nR,nS
|
||||||
double precision :: ENuc,ERHF,Norm
|
double precision :: ENuc,ERHF,Norm
|
||||||
double precision :: EcMP2(3),EcMP3,EcMP2F12(3),EcMCMP2(3),Err_EcMCMP2(3),Var_EcMCMP2(3)
|
double precision :: EcMP2(3),EcMP3,EcMP2F12(3),EcMCMP2(3),Err_EcMCMP2(3),Var_EcMCMP2(3)
|
||||||
|
double precision :: EcCCD,EcCCSD,EcCCSDT
|
||||||
|
|
||||||
double precision,allocatable :: ZNuc(:),rNuc(:,:),cHF(:,:),eHF(:),eG0W0(:),PHF(:,:)
|
double precision,allocatable :: ZNuc(:),rNuc(:,:),cHF(:,:),eHF(:),eG0W0(:),PHF(:,:)
|
||||||
|
|
||||||
@ -30,7 +31,9 @@ program MCQC
|
|||||||
|
|
||||||
double precision :: start_HF ,end_HF ,t_HF
|
double precision :: start_HF ,end_HF ,t_HF
|
||||||
double precision :: start_MOM ,end_MOM ,t_MOM
|
double precision :: start_MOM ,end_MOM ,t_MOM
|
||||||
double precision :: start_CC ,end_CC ,t_CC
|
double precision :: start_CCD ,end_CCD ,t_CCD
|
||||||
|
double precision :: start_CCSD ,end_CCSD ,t_CCSD
|
||||||
|
double precision :: start_CCSDT ,end_CCSDT ,t_CCSDT
|
||||||
double precision :: start_CIS ,end_CIS ,t_CIS
|
double precision :: start_CIS ,end_CIS ,t_CIS
|
||||||
double precision :: start_TDHF ,end_TDHF ,t_TDHF
|
double precision :: start_TDHF ,end_TDHF ,t_TDHF
|
||||||
double precision :: start_ADC ,end_ADC ,t_ADC
|
double precision :: start_ADC ,end_ADC ,t_ADC
|
||||||
@ -80,7 +83,7 @@ program MCQC
|
|||||||
|
|
||||||
call read_methods(doHF,doMOM, &
|
call read_methods(doHF,doMOM, &
|
||||||
doMP2,doMP3,doMP2F12, &
|
doMP2,doMP3,doMP2F12, &
|
||||||
doCC, &
|
doCCD,doCCSD,doCCSDT, &
|
||||||
doCIS,doTDHF,doADC, &
|
doCIS,doTDHF,doADC, &
|
||||||
doGF2,doGF3, &
|
doGF2,doGF3, &
|
||||||
doG0W0,doevGW,doqsGW, &
|
doG0W0,doevGW,doqsGW, &
|
||||||
@ -199,6 +202,7 @@ program MCQC
|
|||||||
! AO to MO integral transform for post-HF methods
|
! AO to MO integral transform for post-HF methods
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
|
call chem_to_phys_ERI(nBas,ERI_AO_basis)
|
||||||
call AOtoMO_integral_transform(nBas,cHF,ERI_AO_basis,ERI_MO_basis)
|
call AOtoMO_integral_transform(nBas,cHF,ERI_AO_basis,ERI_MO_basis)
|
||||||
|
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
@ -253,22 +257,50 @@ program MCQC
|
|||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
! Perform CC calculation
|
! Perform CCD calculation
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
if(doCC) then
|
if(doCCD) then
|
||||||
|
|
||||||
call cpu_time(start_CC)
|
call cpu_time(start_CCD)
|
||||||
call CCD(nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF,cHF)
|
call CCD(nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF,cHF,EcCCD)
|
||||||
call cpu_time(end_CC)
|
call cpu_time(end_CCD)
|
||||||
|
|
||||||
t_CC = end_CC - start_CC
|
t_CCD = end_CCD - start_CCD
|
||||||
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for CC = ',t_CC,' seconds'
|
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for CCD = ',t_CCD,' seconds'
|
||||||
write(*,*)
|
write(*,*)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
!------------------------------------------------------------------------
|
||||||
|
! Perform CCSD or CCSD(T) calculation
|
||||||
|
!------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if(doCCSD) then
|
||||||
|
|
||||||
|
call cpu_time(start_CCSD)
|
||||||
|
call CCSD(nBas,nEl,ERI_MO_basis,ENuc,ERHF,eHF,cHF,EcCCSD)
|
||||||
|
call cpu_time(end_CCSD)
|
||||||
|
|
||||||
|
if(doCCSDT) then
|
||||||
|
call cpu_time(start_CCSDT)
|
||||||
|
! call CCSDT(nBas,nEl,ERI_MO_basis,ENuc,ERHF,EcCCSD,eHF,cHF,EcCCSDT)
|
||||||
|
call cpu_time(end_CCSDT)
|
||||||
|
|
||||||
|
t_CCSDT = end_CCSDT - start_CCSDT
|
||||||
|
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for (T) = ',t_CCSDT,' seconds'
|
||||||
|
write(*,*)
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
|
t_CCSD = end_CCSD - start_CCSD
|
||||||
|
write(*,'(A65,1X,F9.3,A8)') 'Total CPU time for CCSD or CCSD(T)= ',t_CCSD,' seconds'
|
||||||
|
write(*,*)
|
||||||
|
|
||||||
|
end if
|
||||||
|
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
! Compute CIS excitations
|
! Compute CIS excitations
|
||||||
!------------------------------------------------------------------------
|
!------------------------------------------------------------------------
|
||||||
|
@ -38,11 +38,11 @@ subroutine MP2(nBas,nC,nO,nV,nR,ERI,ENuc,EHF,e,EcMP2)
|
|||||||
|
|
||||||
eps = e(i) + e(j) - e(a) - e(b)
|
eps = e(i) + e(j) - e(a) - e(b)
|
||||||
|
|
||||||
! Secon-order ring diagram
|
! Second-order ring diagram
|
||||||
|
|
||||||
E2a = E2a + ERI(i,j,a,b)*ERI(i,j,a,b)/eps
|
E2a = E2a + ERI(i,j,a,b)*ERI(i,j,a,b)/eps
|
||||||
|
|
||||||
! Second-order exchange
|
! Second-order exchange diagram
|
||||||
|
|
||||||
E2b = E2b + ERI(i,j,a,b)*ERI(i,j,b,a)/eps
|
E2b = E2b + ERI(i,j,a,b)*ERI(i,j,b,a)/eps
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
subroutine read_methods(doHF,doMOM, &
|
subroutine read_methods(doHF,doMOM, &
|
||||||
doMP2,doMP3,doMP2F12, &
|
doMP2,doMP3,doMP2F12, &
|
||||||
doCC, &
|
doCCD,doCCSD,doCCSDT, &
|
||||||
doCIS,doTDHF,doADC, &
|
doCIS,doTDHF,doADC, &
|
||||||
doGF2,doGF3, &
|
doGF2,doGF3, &
|
||||||
doG0W0,doevGW,doqsGW, &
|
doG0W0,doevGW,doqsGW, &
|
||||||
@ -14,7 +14,7 @@ subroutine read_methods(doHF,doMOM, &
|
|||||||
|
|
||||||
logical,intent(out) :: doHF,doMOM
|
logical,intent(out) :: doHF,doMOM
|
||||||
logical,intent(out) :: doMP2,doMP3,doMP2F12
|
logical,intent(out) :: doMP2,doMP3,doMP2F12
|
||||||
logical,intent(out) :: doCC
|
logical,intent(out) :: doCCD,doCCSD,doCCSDT
|
||||||
logical,intent(out) :: doCIS,doTDHF,doADC
|
logical,intent(out) :: doCIS,doTDHF,doADC
|
||||||
logical,intent(out) :: doGF2,doGF3
|
logical,intent(out) :: doGF2,doGF3
|
||||||
logical,intent(out) :: doG0W0,doevGW,doqsGW
|
logical,intent(out) :: doG0W0,doevGW,doqsGW
|
||||||
@ -37,7 +37,9 @@ subroutine read_methods(doHF,doMOM, &
|
|||||||
doMP3 = .false.
|
doMP3 = .false.
|
||||||
doMP2F12 = .false.
|
doMP2F12 = .false.
|
||||||
|
|
||||||
doCC = .false.
|
doCCD = .false.
|
||||||
|
doCCSD = .false.
|
||||||
|
doCCSDT = .false.
|
||||||
|
|
||||||
doCIS = .false.
|
doCIS = .false.
|
||||||
doTDHF = .false.
|
doTDHF = .false.
|
||||||
@ -70,8 +72,10 @@ subroutine read_methods(doHF,doMOM, &
|
|||||||
! Read CC methods
|
! Read CC methods
|
||||||
|
|
||||||
read(1,*)
|
read(1,*)
|
||||||
read(1,*) answer1
|
read(1,*) answer1,answer2,answer3
|
||||||
if(answer1 == 'T') doCC = .true.
|
if(answer1 == 'T') doCCD = .true.
|
||||||
|
if(answer2 == 'T') doCCSD = .true.
|
||||||
|
if(answer3 == 'T') doCCSDT = .true.
|
||||||
|
|
||||||
! Read excited state methods
|
! Read excited state methods
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user