From 395da84680c5bc57d1d04acab97b3b3308dcd39a Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Sat, 25 Jan 2020 15:49:09 +0100 Subject: [PATCH] clean up --- examples/molecule.F2 | 2 +- examples/molecule.LiH | 2 +- examples/molecule.N2 | 2 +- input/basis | 106 +++++++++++++------------ input/molecule | 6 +- input/molecule.xyz | 4 +- input/weight | 106 +++++++++++++------------ scan_LiH.sh | 6 +- scan_N2.sh | 8 +- src/QuAcK/ACFDT_correlation_energy.f90 | 13 +-- src/QuAcK/RPA.f90 | 29 +++---- 11 files changed, 143 insertions(+), 141 deletions(-) diff --git a/examples/molecule.F2 b/examples/molecule.F2 index b58bbff..1046aea 100644 --- a/examples/molecule.F2 +++ b/examples/molecule.F2 @@ -2,4 +2,4 @@ 2 9 9 0 0 # Znuc x y z F 0. 0. 0. - F 0. 0. 3 + F 0. 0. 2.67 diff --git a/examples/molecule.LiH b/examples/molecule.LiH index 4ca8183..aad52fc 100644 --- a/examples/molecule.LiH +++ b/examples/molecule.LiH @@ -2,4 +2,4 @@ 2 2 2 0 0 # Znuc x y z Li 0. 0. 0. - H 0. 0. 3.05 + H 0. 0. 3.01 diff --git a/examples/molecule.N2 b/examples/molecule.N2 index a513ecb..93b448f 100644 --- a/examples/molecule.N2 +++ b/examples/molecule.N2 @@ -2,4 +2,4 @@ 2 7 7 0 0 # Znuc x y z N 0. 0. 0. - N 0. 0. 2.067 + N 0. 0. 3.4 diff --git a/input/basis b/input/basis index 3d264c9..80356bb 100644 --- a/input/basis +++ b/input/basis @@ -1,58 +1,64 @@ 1 6 -S 8 - 1 14710.0000000 0.0007210 - 2 2207.0000000 0.0055530 - 3 502.8000000 0.0282670 - 4 142.6000000 0.1064440 - 5 46.4700000 0.2868140 - 6 16.7000000 0.4486410 - 7 6.3560000 0.2647610 - 8 1.3160000 0.0153330 -S 8 - 1 14710.0000000 -0.0001650 - 2 2207.0000000 -0.0013080 - 3 502.8000000 -0.0064950 - 4 142.6000000 -0.0266910 - 5 46.4700000 -0.0736900 - 6 16.7000000 -0.1707760 - 7 6.3560000 -0.1123270 - 8 1.3160000 0.5628140 +S 9 +1 9.046000E+03 7.000000E-04 +2 1.357000E+03 5.389000E-03 +3 3.093000E+02 2.740600E-02 +4 8.773000E+01 1.032070E-01 +5 2.856000E+01 2.787230E-01 +6 1.021000E+01 4.485400E-01 +7 3.838000E+00 2.782380E-01 +8 7.466000E-01 1.544000E-02 +9 2.248000E-01 -2.864000E-03 +S 9 +1 9.046000E+03 -1.530000E-04 +2 1.357000E+03 -1.208000E-03 +3 3.093000E+02 -5.992000E-03 +4 8.773000E+01 -2.454400E-02 +5 2.856000E+01 -6.745900E-02 +6 1.021000E+01 -1.580780E-01 +7 3.838000E+00 -1.218310E-01 +8 7.466000E-01 5.490030E-01 +9 2.248000E-01 5.788150E-01 S 1 - 1 0.3897000 1.0000000 -P 3 - 1 22.6700000 0.0448780 - 2 4.9770000 0.2357180 - 3 1.3470000 0.5085210 +1 2.248000E-01 1.000000E+00 +P 4 +1 1.355000E+01 3.991900E-02 +2 2.917000E+00 2.171690E-01 +3 7.973000E-01 5.103190E-01 +4 2.185000E-01 4.622140E-01 P 1 - 1 0.3471000 1.0000000 +1 2.185000E-01 1.000000E+00 D 1 - 1 1.6400000 1.0000000 +1 8.170000E-01 1.0000000 2 6 -S 8 - 1 14710.0000000 0.0007210 - 2 2207.0000000 0.0055530 - 3 502.8000000 0.0282670 - 4 142.6000000 0.1064440 - 5 46.4700000 0.2868140 - 6 16.7000000 0.4486410 - 7 6.3560000 0.2647610 - 8 1.3160000 0.0153330 -S 8 - 1 14710.0000000 -0.0001650 - 2 2207.0000000 -0.0013080 - 3 502.8000000 -0.0064950 - 4 142.6000000 -0.0266910 - 5 46.4700000 -0.0736900 - 6 16.7000000 -0.1707760 - 7 6.3560000 -0.1123270 - 8 1.3160000 0.5628140 +S 9 +1 9.046000E+03 7.000000E-04 +2 1.357000E+03 5.389000E-03 +3 3.093000E+02 2.740600E-02 +4 8.773000E+01 1.032070E-01 +5 2.856000E+01 2.787230E-01 +6 1.021000E+01 4.485400E-01 +7 3.838000E+00 2.782380E-01 +8 7.466000E-01 1.544000E-02 +9 2.248000E-01 -2.864000E-03 +S 9 +1 9.046000E+03 -1.530000E-04 +2 1.357000E+03 -1.208000E-03 +3 3.093000E+02 -5.992000E-03 +4 8.773000E+01 -2.454400E-02 +5 2.856000E+01 -6.745900E-02 +6 1.021000E+01 -1.580780E-01 +7 3.838000E+00 -1.218310E-01 +8 7.466000E-01 5.490030E-01 +9 2.248000E-01 5.788150E-01 S 1 - 1 0.3897000 1.0000000 -P 3 - 1 22.6700000 0.0448780 - 2 4.9770000 0.2357180 - 3 1.3470000 0.5085210 +1 2.248000E-01 1.000000E+00 +P 4 +1 1.355000E+01 3.991900E-02 +2 2.917000E+00 2.171690E-01 +3 7.973000E-01 5.103190E-01 +4 2.185000E-01 4.622140E-01 P 1 - 1 0.3471000 1.0000000 +1 2.185000E-01 1.000000E+00 D 1 - 1 1.6400000 1.0000000 +1 8.170000E-01 1.0000000 diff --git a/input/molecule b/input/molecule index b58bbff..93b448f 100644 --- a/input/molecule +++ b/input/molecule @@ -1,5 +1,5 @@ # nAt nEla nElb nCore nRyd - 2 9 9 0 0 + 2 7 7 0 0 # Znuc x y z - F 0. 0. 0. - F 0. 0. 3 + N 0. 0. 0. + N 0. 0. 3.4 diff --git a/input/molecule.xyz b/input/molecule.xyz index 9ea8c86..b3ef6c5 100644 --- a/input/molecule.xyz +++ b/input/molecule.xyz @@ -1,4 +1,4 @@ 2 - F 0.0000000000 0.0000000000 0.0000000000 - F 0.0000000000 0.0000000000 1.5875317470 + N 0.0000000000 0.0000000000 0.0000000000 + N 0.0000000000 0.0000000000 1.7992026466 diff --git a/input/weight b/input/weight index 3d264c9..80356bb 100644 --- a/input/weight +++ b/input/weight @@ -1,58 +1,64 @@ 1 6 -S 8 - 1 14710.0000000 0.0007210 - 2 2207.0000000 0.0055530 - 3 502.8000000 0.0282670 - 4 142.6000000 0.1064440 - 5 46.4700000 0.2868140 - 6 16.7000000 0.4486410 - 7 6.3560000 0.2647610 - 8 1.3160000 0.0153330 -S 8 - 1 14710.0000000 -0.0001650 - 2 2207.0000000 -0.0013080 - 3 502.8000000 -0.0064950 - 4 142.6000000 -0.0266910 - 5 46.4700000 -0.0736900 - 6 16.7000000 -0.1707760 - 7 6.3560000 -0.1123270 - 8 1.3160000 0.5628140 +S 9 +1 9.046000E+03 7.000000E-04 +2 1.357000E+03 5.389000E-03 +3 3.093000E+02 2.740600E-02 +4 8.773000E+01 1.032070E-01 +5 2.856000E+01 2.787230E-01 +6 1.021000E+01 4.485400E-01 +7 3.838000E+00 2.782380E-01 +8 7.466000E-01 1.544000E-02 +9 2.248000E-01 -2.864000E-03 +S 9 +1 9.046000E+03 -1.530000E-04 +2 1.357000E+03 -1.208000E-03 +3 3.093000E+02 -5.992000E-03 +4 8.773000E+01 -2.454400E-02 +5 2.856000E+01 -6.745900E-02 +6 1.021000E+01 -1.580780E-01 +7 3.838000E+00 -1.218310E-01 +8 7.466000E-01 5.490030E-01 +9 2.248000E-01 5.788150E-01 S 1 - 1 0.3897000 1.0000000 -P 3 - 1 22.6700000 0.0448780 - 2 4.9770000 0.2357180 - 3 1.3470000 0.5085210 +1 2.248000E-01 1.000000E+00 +P 4 +1 1.355000E+01 3.991900E-02 +2 2.917000E+00 2.171690E-01 +3 7.973000E-01 5.103190E-01 +4 2.185000E-01 4.622140E-01 P 1 - 1 0.3471000 1.0000000 +1 2.185000E-01 1.000000E+00 D 1 - 1 1.6400000 1.0000000 +1 8.170000E-01 1.0000000 2 6 -S 8 - 1 14710.0000000 0.0007210 - 2 2207.0000000 0.0055530 - 3 502.8000000 0.0282670 - 4 142.6000000 0.1064440 - 5 46.4700000 0.2868140 - 6 16.7000000 0.4486410 - 7 6.3560000 0.2647610 - 8 1.3160000 0.0153330 -S 8 - 1 14710.0000000 -0.0001650 - 2 2207.0000000 -0.0013080 - 3 502.8000000 -0.0064950 - 4 142.6000000 -0.0266910 - 5 46.4700000 -0.0736900 - 6 16.7000000 -0.1707760 - 7 6.3560000 -0.1123270 - 8 1.3160000 0.5628140 +S 9 +1 9.046000E+03 7.000000E-04 +2 1.357000E+03 5.389000E-03 +3 3.093000E+02 2.740600E-02 +4 8.773000E+01 1.032070E-01 +5 2.856000E+01 2.787230E-01 +6 1.021000E+01 4.485400E-01 +7 3.838000E+00 2.782380E-01 +8 7.466000E-01 1.544000E-02 +9 2.248000E-01 -2.864000E-03 +S 9 +1 9.046000E+03 -1.530000E-04 +2 1.357000E+03 -1.208000E-03 +3 3.093000E+02 -5.992000E-03 +4 8.773000E+01 -2.454400E-02 +5 2.856000E+01 -6.745900E-02 +6 1.021000E+01 -1.580780E-01 +7 3.838000E+00 -1.218310E-01 +8 7.466000E-01 5.490030E-01 +9 2.248000E-01 5.788150E-01 S 1 - 1 0.3897000 1.0000000 -P 3 - 1 22.6700000 0.0448780 - 2 4.9770000 0.2357180 - 3 1.3470000 0.5085210 +1 2.248000E-01 1.000000E+00 +P 4 +1 1.355000E+01 3.991900E-02 +2 2.917000E+00 2.171690E-01 +3 7.973000E-01 5.103190E-01 +4 2.185000E-01 4.622140E-01 P 1 - 1 0.3471000 1.0000000 +1 2.185000E-01 1.000000E+00 D 1 - 1 1.6400000 1.0000000 +1 8.170000E-01 1.0000000 diff --git a/scan_LiH.sh b/scan_LiH.sh index cc2c193..8026108 100755 --- a/scan_LiH.sh +++ b/scan_LiH.sh @@ -1,9 +1,9 @@ #! /bin/bash MOL="LiH" -BASIS="cc-pvtz" -R_START=3.00 -R_END=3.05 +BASIS="cc-pvqz" +R_START=3.010 +R_END=3.020 DR=0.001 for R in $(seq $R_START $DR $R_END) diff --git a/scan_N2.sh b/scan_N2.sh index 813e997..9b867a7 100755 --- a/scan_N2.sh +++ b/scan_N2.sh @@ -1,10 +1,10 @@ #! /bin/bash MOL="N2" -BASIS="cc-pvtz" -R_START=2.060 -R_END=2.080 -DR=0.001 +BASIS="cc-pvdz" +R_START=1.5 +R_END=3.5 +DR=0.1 for R in $(seq $R_START $DR $R_END) do diff --git a/src/QuAcK/ACFDT_correlation_energy.f90 b/src/QuAcK/ACFDT_correlation_energy.f90 index f43b87d..4dead7b 100644 --- a/src/QuAcK/ACFDT_correlation_energy.f90 +++ b/src/QuAcK/ACFDT_correlation_energy.f90 @@ -20,7 +20,6 @@ subroutine ACFDT_correlation_energy(ispin,exchange_kernel,nBas,nC,nO,nV,nR,nS,ER integer :: ia,jb,kc double precision :: delta_spin double precision :: delta_Kx - double precision,allocatable :: P(:,:) double precision,allocatable :: Ap(:,:) double precision,allocatable :: Bp(:,:) double precision,allocatable :: X(:,:) @@ -44,15 +43,7 @@ subroutine ACFDT_correlation_energy(ispin,exchange_kernel,nBas,nC,nO,nV,nR,nS,ER ! Memory allocation - allocate(P(nS,nS),Ap(nS,nS),Bp(nS,nS),X(nS,nS),Y(nS,nS)) - -! Compute P = (X+Y)^T.(X+Y) - 1 - - P(:,:) = matmul(transpose(XpY),XpY) - - do ia=1,nS - P(ia,ia) = P(ia,ia) - 1d0 - enddo + allocate(Ap(nS,nS),Bp(nS,nS),X(nS,nS),Y(nS,nS)) ! Compute Aiajb = (ia|bj) and Biajb = (ia|jb) @@ -78,8 +69,6 @@ subroutine ACFDT_correlation_energy(ispin,exchange_kernel,nBas,nC,nO,nV,nR,nS,ER ! Compute Tr(K x P_lambda) -! EcAC = trace_matrix(nS,matmul(Ap,P)) - X(:,:) = 0.5d0*(XpY(:,:) + XmY(:,:)) Y(:,:) = 0.5d0*(XpY(:,:) - XmY(:,:)) diff --git a/src/QuAcK/RPA.f90 b/src/QuAcK/RPA.f90 index 8a0174f..767f80f 100644 --- a/src/QuAcK/RPA.f90 +++ b/src/QuAcK/RPA.f90 @@ -94,6 +94,7 @@ subroutine RPA(doACFDT,exchange_kernel,singlet_manifold,triplet_manifold,eta, & write(*,*) ! Compute the correlation energy via the adiabatic connection +! Switch off ACFDT for RPA as the trace formula is equivalent if(doACFDT) then @@ -105,21 +106,21 @@ subroutine RPA(doACFDT,exchange_kernel,singlet_manifold,triplet_manifold,eta, & call ACFDT(exchange_kernel,.false.,.true.,.false.,.false.,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,e,Omega,XpY,XmY,rho,EcAC) - if(exchange_kernel) then + if(exchange_kernel) then + + EcAC(1) = 0.5d0*EcAC(1) + EcAC(2) = 1.5d0*EcAC(1) + + end if - EcAC(1) = 0.5d0*EcAC(1) - EcAC(2) = 1.5d0*EcAC(1) - - end if - - write(*,*) - write(*,*)'-------------------------------------------------------------------------------' - write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy (singlet) =',EcAC(1) - write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy (triplet) =',EcAC(2) - write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy =',EcAC(1) + EcAC(2) - write(*,'(2X,A50,F20.10)') 'AC@RPA total energy =',ENuc + ERHF + EcAC(1) + EcAC(2) - write(*,*)'-------------------------------------------------------------------------------' - write(*,*) + write(*,*) + write(*,*)'-------------------------------------------------------------------------------' + write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy (singlet) =',EcAC(1) + write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy (triplet) =',EcAC(2) + write(*,'(2X,A50,F20.10)') 'AC@RPA correlation energy =',EcAC(1) + EcAC(2) + write(*,'(2X,A50,F20.10)') 'AC@RPA total energy =',ENuc + ERHF + EcAC(1) + EcAC(2) + write(*,*)'-------------------------------------------------------------------------------' + write(*,*) end if