4
1
mirror of https://github.com/pfloos/quack synced 2024-06-18 11:15:30 +02:00

RPAx AC vs Tr

This commit is contained in:
Pierre-Francois Loos 2020-01-16 23:13:47 +01:00
parent 8dfd69db80
commit e01a34d6ba
7 changed files with 136 additions and 66 deletions

View File

@ -2,4 +2,4 @@
2 7 7 0 0 2 7 7 0 0
# Znuc x y z # Znuc x y z
N 0. 0. 0. N 0. 0. 0.
N 0. 0. 2.0 N 0. 0. 1.8

View File

@ -1,26 +1,58 @@
1 3 1 6
S 3 1.00 S 8 1.00
0.9910616896D+02 0.1543289673D+00 9046.0000000 0.0007000
0.1805231239D+02 0.5353281423D+00 1357.0000000 0.0053890
0.4885660238D+01 0.4446345422D+00 309.3000000 0.0274060
S 3 1.00 87.7300000 0.1032070
0.3780455879D+01 -0.9996722919D-01 28.5600000 0.2787230
0.8784966449D+00 0.3995128261D+00 10.2100000 0.4485400
0.2857143744D+00 0.7001154689D+00 3.8380000 0.2782380
P 3 1.00 0.7466000 0.0154400
0.3780455879D+01 0.1559162750D+00 S 8 1.00
0.8784966449D+00 0.6076837186D+00 9046.0000000 -0.0001530
0.2857143744D+00 0.3919573931D+00 1357.0000000 -0.0012080
2 3 309.3000000 -0.0059920
S 3 1.00 87.7300000 -0.0245440
0.9910616896D+02 0.1543289673D+00 28.5600000 -0.0674590
0.1805231239D+02 0.5353281423D+00 10.2100000 -0.1580780
0.4885660238D+01 0.4446345422D+00 3.8380000 -0.1218310
S 3 1.00 0.7466000 0.5490030
0.3780455879D+01 -0.9996722919D-01 S 1 1.00
0.8784966449D+00 0.3995128261D+00 0.2248000 1.0000000
0.2857143744D+00 0.7001154689D+00 P 3 1.00
P 3 1.00 13.5500000 0.0399190
0.3780455879D+01 0.1559162750D+00 2.9170000 0.2171690
0.8784966449D+00 0.6076837186D+00 0.7973000 0.5103190
0.2857143744D+00 0.3919573931D+00 P 1 1.00
0.2185000 1.0000000
D 1 1.00
0.8170000 1.0000000
2 6
S 8 1.00
9046.0000000 0.0007000
1357.0000000 0.0053890
309.3000000 0.0274060
87.7300000 0.1032070
28.5600000 0.2787230
10.2100000 0.4485400
3.8380000 0.2782380
0.7466000 0.0154400
S 8 1.00
9046.0000000 -0.0001530
1357.0000000 -0.0012080
309.3000000 -0.0059920
87.7300000 -0.0245440
28.5600000 -0.0674590
10.2100000 -0.1580780
3.8380000 -0.1218310
0.7466000 0.5490030
S 1 1.00
0.2248000 1.0000000
P 3 1.00
13.5500000 0.0399190
2.9170000 0.2171690
0.7973000 0.5103190
P 1 1.00
0.2185000 1.0000000
D 1 1.00
0.8170000 1.0000000

View File

@ -5,11 +5,11 @@
# CCD CCSD CCSD(T) ringCCD ladderCCD # CCD CCSD CCSD(T) ringCCD ladderCCD
F F F F F F F F F F
# CIS RPA RPAx ppRPA ADC # CIS RPA RPAx ppRPA ADC
F T T F F T T T F F
# GF2 GF3 # GF2 GF3
F F F F
# G0W0 evGW qsGW # G0W0 evGW qsGW
F F F T F F
# G0T0 evGT qsGT # G0T0 evGT qsGT
F F F F F F
# MCMP2 # MCMP2

View File

@ -2,4 +2,4 @@
2 7 7 0 0 2 7 7 0 0
# Znuc x y z # Znuc x y z
N 0. 0. 0. N 0. 0. 0.
N 0. 0. 2.0 N 0. 0. 1.8

View File

@ -11,6 +11,6 @@
# GW: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA G0W GW0 lin eta # GW: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA G0W GW0 lin eta
64 0.00001 T 5 F F T F F F F 0.000 64 0.00001 T 5 F F T F F F F 0.000
# ACFDT: AC Kx XBS # ACFDT: AC Kx XBS
T T T T F F
# MCMP2: nMC nEq nWalk dt nPrint iSeed doDrift # MCMP2: nMC nEq nWalk dt nPrint iSeed doDrift
1000000 100000 10 0.3 10000 1234 T 1000000 100000 10 0.3 10000 1234 T

View File

@ -1,26 +1,58 @@
1 3 1 6
S 3 1.00 S 8 1.00
0.9910616896D+02 0.1543289673D+00 9046.0000000 0.0007000
0.1805231239D+02 0.5353281423D+00 1357.0000000 0.0053890
0.4885660238D+01 0.4446345422D+00 309.3000000 0.0274060
S 3 1.00 87.7300000 0.1032070
0.3780455879D+01 -0.9996722919D-01 28.5600000 0.2787230
0.8784966449D+00 0.3995128261D+00 10.2100000 0.4485400
0.2857143744D+00 0.7001154689D+00 3.8380000 0.2782380
P 3 1.00 0.7466000 0.0154400
0.3780455879D+01 0.1559162750D+00 S 8 1.00
0.8784966449D+00 0.6076837186D+00 9046.0000000 -0.0001530
0.2857143744D+00 0.3919573931D+00 1357.0000000 -0.0012080
2 3 309.3000000 -0.0059920
S 3 1.00 87.7300000 -0.0245440
0.9910616896D+02 0.1543289673D+00 28.5600000 -0.0674590
0.1805231239D+02 0.5353281423D+00 10.2100000 -0.1580780
0.4885660238D+01 0.4446345422D+00 3.8380000 -0.1218310
S 3 1.00 0.7466000 0.5490030
0.3780455879D+01 -0.9996722919D-01 S 1 1.00
0.8784966449D+00 0.3995128261D+00 0.2248000 1.0000000
0.2857143744D+00 0.7001154689D+00 P 3 1.00
P 3 1.00 13.5500000 0.0399190
0.3780455879D+01 0.1559162750D+00 2.9170000 0.2171690
0.8784966449D+00 0.6076837186D+00 0.7973000 0.5103190
0.2857143744D+00 0.3919573931D+00 P 1 1.00
0.2185000 1.0000000
D 1 1.00
0.8170000 1.0000000
2 6
S 8 1.00
9046.0000000 0.0007000
1357.0000000 0.0053890
309.3000000 0.0274060
87.7300000 0.1032070
28.5600000 0.2787230
10.2100000 0.4485400
3.8380000 0.2782380
0.7466000 0.0154400
S 8 1.00
9046.0000000 -0.0001530
1357.0000000 -0.0012080
309.3000000 -0.0059920
87.7300000 -0.0245440
28.5600000 -0.0674590
10.2100000 -0.1580780
3.8380000 -0.1218310
0.7466000 0.5490030
S 1 1.00
0.2248000 1.0000000
P 3 1.00
13.5500000 0.0399190
2.9170000 0.2171690
0.7973000 0.5103190
P 1 1.00
0.2185000 1.0000000
D 1 1.00
0.8170000 1.0000000

View File

@ -18,7 +18,13 @@ subroutine linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,lambda,e,ERI,r
integer :: ia integer :: ia
double precision :: trace_matrix double precision :: trace_matrix
double precision,allocatable :: A(:,:),B(:,:),ApB(:,:),AmB(:,:),AmBSq(:,:),Z(:,:) double precision,allocatable :: A(:,:)
double precision,allocatable :: B(:,:)
double precision,allocatable :: ApB(:,:)
double precision,allocatable :: AmB(:,:)
double precision,allocatable :: AmBSq(:,:)
double precision,allocatable :: AmBIv(:,:)
double precision,allocatable :: Z(:,:)
! Output variables ! Output variables
@ -27,10 +33,9 @@ subroutine linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,lambda,e,ERI,r
double precision,intent(out) :: XpY(nS,nS) double precision,intent(out) :: XpY(nS,nS)
double precision,intent(out) :: XmY(nS,nS) double precision,intent(out) :: XmY(nS,nS)
! Memory allocation ! Memory allocation
allocate(A(nS,nS),B(nS,nS),ApB(nS,nS),AmB(nS,nS),AmBSq(nS,nS),Z(nS,nS)) allocate(A(nS,nS),B(nS,nS),ApB(nS,nS),AmB(nS,nS),AmBSq(nS,nS),AmBIv(nS,nS),Z(nS,nS))
! Build A and B matrices ! Build A and B matrices
@ -57,32 +62,33 @@ subroutine linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,lambda,e,ERI,r
call diagonalize_matrix(nS,AmB,Omega) call diagonalize_matrix(nS,AmB,Omega)
if(minval(Omega) < 0d0) & if(minval(Omega) < 0d0) &
call print_warning('You may have instabilities in linear response!!') call print_warning('You may have instabilities in linear response: A-B is not positive definite!!')
do ia=1,nS do ia=1,nS
if(Omega(ia) < 0d0) Omega(ia) = 0d0 if(Omega(ia) < 0d0) Omega(ia) = 0d0
end do end do
call ADAt(nS,AmB,sqrt(Omega),AmBSq) call ADAt(nS,AmB,1d0*sqrt(Omega),AmBSq)
call ADAt(nS,AmB,1d0/sqrt(Omega),AmBIv)
Z = matmul(AmBSq,matmul(ApB,AmBSq)) Z = matmul(AmBSq,matmul(ApB,AmBSq))
call diagonalize_matrix(nS,Z,Omega) call diagonalize_matrix(nS,Z,Omega)
if(minval(Omega) < 0d0) & if(minval(Omega) < 0d0) &
call print_warning('You may have instabilities in linear response!!') call print_warning('You may have instabilities in linear response: negative excitations!!')
do ia=1,nS do ia=1,nS
if(Omega(ia) < 0d0) Omega(ia) = 0d0 if(Omega(ia) < 0d0) Omega(ia) = 0d0
end do end do
Omega = sqrt(Omega) Omega = sqrt(Omega)
XpY = matmul(transpose(Z),AmBSq) XpY = matmul(transpose(Z),AmBSq)
call DA(nS,1d0/sqrt(Omega),XpY) call DA(nS,1d0/sqrt(Omega),XpY)
call ADAt(nS,AmB,1d0/sqrt(Omega),AmBSq) XmY = matmul(transpose(Z),AmBIv)
XmY = matmul(transpose(Z),AmBSq) call DA(nS,1d0*sqrt(Omega),XmY)
call DA(nS,sqrt(Omega),XmY)
! Compute the RPA correlation energy ! Compute the RPA correlation energy