10
1
mirror of https://github.com/pfloos/quack synced 2024-07-24 03:37:44 +02:00

excitation energy

This commit is contained in:
Pierre-Francois Loos 2019-04-01 16:32:55 +02:00
parent 881220a97f
commit 8a8e4a939c
7 changed files with 71 additions and 152 deletions

View File

@ -1,73 +1,29 @@
1 36 1 6
S 8 1.00
2940.0000000 0.0006800
441.2000000 0.0052360
100.5000000 0.0266060
28.4300000 0.0999930
9.1690000 0.2697020
3.1960000 0.4514690
1.1590000 0.2950740
0.1811000 0.0125870
S 8 1.00
2940.0000000 -0.0001230
441.2000000 -0.0009660
100.5000000 -0.0048310
28.4300000 -0.0193140
9.1690000 -0.0532800
3.1960000 -0.1207230
1.1590000 -0.1334350
0.1811000 0.5307670
S 1 1.00 S 1 1.00
1.0000000 1.0000000 0.0589000 1.0000000
S 1 1.00 P 3 1.00
1.0000000 1.0000000 3.6190000 0.0291110
S 1 1.00 0.7110000 0.1693650
1.0000000 1.0000000 0.1951000 0.5134580
S 1 1.00 P 1 1.00
1.0000000 1.0000000 0.0601800 1.0000000
S 1 1.00 D 1 1.00
1.0000000 1.0000000 0.2380000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000
S 1 1.00
1.0000000 1.0000000

View File

@ -1,4 +1,4 @@
# nAt nEla nElb nCore nRyd # nAt nEla nElb nCore nRyd
1 1 1 0 0 1 2 2 0 0
# Znuc x y z # Znuc x y z
X 0.0 0.0 0.0 Be 0.0 0.0 0.0

View File

@ -1,39 +1,29 @@
1 10 1 6
S 9 1.00 S 8 1.00
6863.0000000 0.0002360 2940.0000000 0.0006800
1030.0000000 0.0018260 441.2000000 0.0052360
234.7000000 0.0094520 100.5000000 0.0266060
66.5600000 0.0379570 28.4300000 0.0999930
21.6900000 0.1199650 9.1690000 0.2697020
7.7340000 0.2821620 3.1960000 0.4514690
2.9160000 0.4274040 1.1590000 0.2950740
1.1300000 0.2662780 0.1811000 0.0125870
0.1101000 -0.0072750 S 8 1.00
S 9 1.00 2940.0000000 -0.0001230
6863.0000000 -0.0000430 441.2000000 -0.0009660
1030.0000000 -0.0003330 100.5000000 -0.0048310
234.7000000 -0.0017360 28.4300000 -0.0193140
66.5600000 -0.0070120 9.1690000 -0.0532800
21.6900000 -0.0231260 3.1960000 -0.1207230
7.7340000 -0.0581380 1.1590000 -0.1334350
2.9160000 -0.1145560 0.1811000 0.5307670
1.1300000 -0.1359080
0.1101000 0.5774410
S 1 1.00 S 1 1.00
0.2577000 1.0000000 0.0589000 1.0000000
S 1 1.00
0.0440900 1.0000000
P 3 1.00 P 3 1.00
7.4360000 0.0107360 3.6190000 0.0291110
1.5770000 0.0628540 0.7110000 0.1693650
0.4352000 0.2481800 0.1951000 0.5134580
P 1 1.00 P 1 1.00
0.1438000 1.0000000 0.0601800 1.0000000
P 1 1.00
0.0499400 1.0000000
D 1 1.00 D 1 1.00
0.3480000 1.0000000 0.2380000 1.0000000
D 1 1.00
0.1803000 1.0000000
F 1 1.00
0.3250000 1.0000000

View File

@ -118,7 +118,7 @@ subroutine G0W0(COHSEX,SOSEX,BSE,TDA,singlet_manifold,triplet_manifold, &
ispin = 2 ispin = 2
call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,eHF,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,eHF,ERI_MO_basis, &
rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin))
call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_AO_basis,XpY(:,:,ispin),rho(:,:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_MO_basis,XpY(:,:,ispin),rho(:,:,:,ispin))
call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,eG0W0,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,eG0W0,ERI_MO_basis, &
rho(:,:,:,1),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,1),EcRPA,Omega(:,ispin),XpY(:,:,ispin))

View File

@ -90,9 +90,9 @@ subroutine evGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
! Compute correlation part of the self-energy ! Compute correlation part of the self-energy
call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_AO_basis,XpY(:,:,ispin),rho(:,:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_MO_basis,XpY(:,:,ispin),rho(:,:,:,ispin))
if(SOSEX) call excitation_density_SOSEX(nBas,nC,nO,nR,nS,cHF,ERI_AO_basis,XpY(:,:,ispin),rhox(:,:,:,ispin)) if(SOSEX) call excitation_density_SOSEX(nBas,nC,nO,nR,nS,cHF,ERI_MO_basis,XpY(:,:,ispin),rhox(:,:,:,ispin))
! Correlation self-energy ! Correlation self-energy
@ -199,7 +199,7 @@ subroutine evGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
ispin = 2 ispin = 2
call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,eGW,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,eGW,ERI_MO_basis, &
rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin))
call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_AO_basis,XpY(:,:,ispin),rho(:,:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,cHF,ERI_MO_basis,XpY(:,:,ispin),rho(:,:,:,ispin))
call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,eGW,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,eGW,ERI_MO_basis, &
rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin))

View File

@ -1,4 +1,4 @@
subroutine excitation_density(nBas,nC,nO,nR,nS,c,G,XpY,rho) subroutine excitation_density(nBas,nC,nO,nR,nS,c,ERI,XpY,rho)
! Compute excitation densities ! Compute excitation densities
@ -7,55 +7,28 @@ subroutine excitation_density(nBas,nC,nO,nR,nS,c,G,XpY,rho)
! Input variables ! Input variables
integer,intent(in) :: nBas,nC,nO,nR,nS integer,intent(in) :: nBas,nC,nO,nR,nS
double precision,intent(in) :: c(nBas,nBas),G(nBas,nBas,nBas,nBas),XpY(nS,nS) double precision,intent(in) :: c(nBas,nBas)
double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas)
double precision,intent(in) :: XpY(nS,nS)
! Local variables ! Local variables
double precision,allocatable :: scr(:,:,:) integer :: ia,jb,x,y,j,b
integer :: mu,nu,la,si,ia,jb,x,y,j,b
! Output variables ! Output variables
double precision,intent(out) :: rho(nBas,nBas,nS) double precision,intent(out) :: rho(nBas,nBas,nS)
! Memory allocation rho(:,:,:) = 0d0
allocate(scr(nBas,nBas,nS))
rho(:,:,:) = 0d0 do x=nC+1,nBas-nR
do nu=1,nBas do y=nC+1,nBas-nR
do si=1,nBas
do ia=1,nS do ia=1,nS
jb = 0 jb = 0
do j=nC+1,nO do j=nC+1,nO
do b=nO+1,nBas-nR do b=nO+1,nBas-nR
jb = jb + 1 jb = jb + 1
rho(nu,si,ia) = rho(nu,si,ia) + c(nu,j)*XpY(ia,jb)*c(si,b) rho(x,y,ia) = rho(x,y,ia) + ERI(x,j,y,b)*XpY(ia,jb)
enddo
enddo
enddo
enddo
enddo
scr(:,:,:) = 0d0
do mu=1,nBas
do la=1,nBas
do ia=1,nS
do nu=1,nBas
do si=1,nBas
scr(mu,la,ia) = scr(mu,la,ia) + G(mu,nu,la,si)*rho(nu,si,ia)
enddo
enddo
enddo
enddo
enddo
rho(:,:,:) = 0d0
do ia=1,nS
do x=nC+1,nBas-nR
do y=nC+1,nBas-nR
do mu=1,nBas
do la=1,nBas
rho(x,y,ia) = rho(x,y,ia) + c(mu,x)*scr(mu,la,ia)*c(la,y)
enddo enddo
enddo enddo
enddo enddo

View File

@ -101,8 +101,8 @@ subroutine qsGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
! Compute correlation part of the self-energy ! Compute correlation part of the self-energy
call excitation_density(nBas,nC,nO,nR,nS,c,ERI_AO_basis,XpY(:,:,ispin),rho(:,:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,c,ERI_MO_basis,XpY(:,:,ispin),rho(:,:,:,ispin))
if(SOSEX) call excitation_density_SOSEX(nBas,nC,nO,nR,nS,c,ERI_AO_basis,XpY(:,:,ispin),rhox(:,:,:,ispin)) if(SOSEX) call excitation_density_SOSEX(nBas,nC,nO,nR,nS,c,ERI_MO_basis,XpY(:,:,ispin),rhox(:,:,:,ispin))
if(G0W) then if(G0W) then
@ -214,7 +214,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_mani
ispin = 2 ispin = 2
call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,e,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,.false.,nBas,nC,nO,nV,nR,nS,e,ERI_MO_basis, &
rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin))
call excitation_density(nBas,nC,nO,nR,nS,c,ERI_AO_basis,XpY(:,:,ispin),rho(:,:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,c,ERI_MO_basis,XpY(:,:,ispin),rho(:,:,:,ispin))
call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,e,ERI_MO_basis, & call linear_response(ispin,dRPA,TDA,BSE,nBas,nC,nO,nV,nR,nS,e,ERI_MO_basis, &
rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin)) rho(:,:,:,ispin),EcRPA,Omega(:,ispin),XpY(:,:,ispin))