4
1
mirror of https://github.com/pfloos/quack synced 2024-06-25 22:52:18 +02:00

spinorb Tmatrix

This commit is contained in:
Pierre-Francois Loos 2019-10-23 08:22:36 +02:00
parent 877f78f1a5
commit 8c2b2f5e86
12 changed files with 236 additions and 82 deletions

View File

@ -1,39 +1,52 @@
1 10
1 9
S 9 1.00
6863.0000000 0.0002360
1030.0000000 0.0018260
234.7000000 0.0094520
66.5600000 0.0379570
21.6900000 0.1199650
7.7340000 0.2821620
2.9160000 0.4274040
1.1300000 0.2662780
0.1101000 -0.0072750
1.469000D+03 7.660000D-04
2.205000D+02 5.892000D-03
5.026000D+01 2.967100D-02
1.424000D+01 1.091800D-01
4.581000D+00 2.827890D-01
1.580000D+00 4.531230D-01
5.640000D-01 2.747740D-01
7.345000D-02 9.751000D-03
2.805000D-02 -3.180000D-03
S 9 1.00
6863.0000000 -0.0000430
1030.0000000 -0.0003330
234.7000000 -0.0017360
66.5600000 -0.0070120
21.6900000 -0.0231260
7.7340000 -0.0581380
2.9160000 -0.1145560
1.1300000 -0.1359080
0.1101000 0.5774410
1.469000D+03 -1.200000D-04
2.205000D+02 -9.230000D-04
5.026000D+01 -4.689000D-03
1.424000D+01 -1.768200D-02
4.581000D+00 -4.890200D-02
1.580000D+00 -9.600900D-02
5.640000D-01 -1.363800D-01
7.345000D-02 5.751020D-01
2.805000D-02 5.176610D-01
S 1 1.00
0.2577000 1.0000000
2.805000D-02 1.000000D+00
S 1 1.00
0.0440900 1.0000000
P 3 1.00
7.4360000 0.0107360
1.5770000 0.0628540
0.4352000 0.2481800
8.600000D-03 1.000000D+00
P 4 1.00
1.534000D+00 2.278400D-02
2.749000D-01 1.391070D-01
7.362000D-02 5.003750D-01
2.403000D-02 5.084740D-01
P 1 1.00
0.1438000 1.0000000
2.403000D-02 1.000000D+00
P 1 1.00
0.0499400 1.0000000
5.800000D-03 1.000000D+00
D 1 1.00
0.3480000 1.0000000
1.144000D-01 1.0000000
D 1 1.00
0.1803000 1.0000000
F 1 1.00
0.3250000 1.0000000
7.330000D-02 1.000000D+00
2 5
S 4 1.00
1.301000D+01 1.968500D-02
1.962000D+00 1.379770D-01
4.446000D-01 4.781480D-01
1.220000D-01 5.012400D-01
S 1 1.00
1.220000D-01 1.000000D+00
S 1 1.00
0.0297400 1.0000000
P 1 1.00
7.270000D-01 1.0000000
P 1 1.00
0.1410000 1.0000000

View File

@ -5,7 +5,7 @@
# CCD CCSD CCSD(T)
F F F
# CIS TDHF ppRPA ADC
F F F F
F F T F
# GF2 GF3
F F
# G0W0 evGW qsGW

View File

@ -1,4 +1,5 @@
# nAt nEla nElb nCore nRyd
1 2 2 0 0
2 2 2 0 0
# Znuc x y z
Be 0.0 0.0 0.0
Li 0. 0. 0.
H 0. 0. 3.09839495

View File

@ -1,39 +1,52 @@
1 10
1 9
S 9 1.00
6863.0000000 0.0002360
1030.0000000 0.0018260
234.7000000 0.0094520
66.5600000 0.0379570
21.6900000 0.1199650
7.7340000 0.2821620
2.9160000 0.4274040
1.1300000 0.2662780
0.1101000 -0.0072750
1.469000D+03 7.660000D-04
2.205000D+02 5.892000D-03
5.026000D+01 2.967100D-02
1.424000D+01 1.091800D-01
4.581000D+00 2.827890D-01
1.580000D+00 4.531230D-01
5.640000D-01 2.747740D-01
7.345000D-02 9.751000D-03
2.805000D-02 -3.180000D-03
S 9 1.00
6863.0000000 -0.0000430
1030.0000000 -0.0003330
234.7000000 -0.0017360
66.5600000 -0.0070120
21.6900000 -0.0231260
7.7340000 -0.0581380
2.9160000 -0.1145560
1.1300000 -0.1359080
0.1101000 0.5774410
1.469000D+03 -1.200000D-04
2.205000D+02 -9.230000D-04
5.026000D+01 -4.689000D-03
1.424000D+01 -1.768200D-02
4.581000D+00 -4.890200D-02
1.580000D+00 -9.600900D-02
5.640000D-01 -1.363800D-01
7.345000D-02 5.751020D-01
2.805000D-02 5.176610D-01
S 1 1.00
0.2577000 1.0000000
2.805000D-02 1.000000D+00
S 1 1.00
0.0440900 1.0000000
P 3 1.00
7.4360000 0.0107360
1.5770000 0.0628540
0.4352000 0.2481800
8.600000D-03 1.000000D+00
P 4 1.00
1.534000D+00 2.278400D-02
2.749000D-01 1.391070D-01
7.362000D-02 5.003750D-01
2.403000D-02 5.084740D-01
P 1 1.00
0.1438000 1.0000000
2.403000D-02 1.000000D+00
P 1 1.00
0.0499400 1.0000000
5.800000D-03 1.000000D+00
D 1 1.00
0.3480000 1.0000000
1.144000D-01 1.0000000
D 1 1.00
0.1803000 1.0000000
F 1 1.00
0.3250000 1.0000000
7.330000D-02 1.000000D+00
2 5
S 4 1.00
1.301000D+01 1.968500D-02
1.962000D+00 1.379770D-01
4.446000D-01 4.781480D-01
1.220000D-01 5.012400D-01
S 1 1.00
1.220000D-01 1.000000D+00
S 1 1.00
0.0297400 1.0000000
P 1 1.00
7.270000D-01 1.0000000
P 1 1.00
0.1410000 1.0000000

View File

@ -158,4 +158,63 @@ subroutine excitation_density_Tmatrix(ispin,nBas,nC,nO,nR,nOO,nVV,ERI,X1,Y1,rho1
end if
!----------------------------------------------
! Spinorbital basis
!----------------------------------------------
if(ispin == 3) then
do p=nC+1,nBas-nR
do i=nC+1,nO
do ab=1,nVV
cd = 0
do c=nO+1,nBas-nR
do d=c+1,nBas-nR
cd = cd + 1
rho1(p,i,ab) = rho1(p,i,ab) &
+ (ERI(p,i,c,d) - ERI(p,i,d,c))*X1(cd,ab)
end do
end do
kl = 0
do k=nC+1,nO
do l=k+1,nO
kl = kl + 1
rho1(p,i,ab) = rho1(p,i,ab) &
+ (ERI(p,i,k,l) - ERI(p,i,l,k))*Y1(kl,ab)
end do
end do
end do
end do
do a=nO+1,nBas-nR
do ij=1,nOO
cd = 0
do c=nO+1,nBas-nR
do d=c+1,nBas-nR
cd = cd + 1
rho2(p,a,ij) = rho2(p,a,ij) &
+ (ERI(p,a,c,d) - ERI(p,a,d,c))*X2(cd,ij)
end do
end do
kl = 0
do k=nC+1,nO
do l=k+1,nO
kl = kl + 1
rho2(p,a,ij) = rho2(p,a,ij) &
+ (ERI(p,a,k,l) - ERI(p,a,l,k))*Y2(kl,ij)
end do
end do
end do
end do
end do
end if
end subroutine excitation_density_Tmatrix

View File

@ -64,4 +64,26 @@ subroutine linear_response_B_pp(ispin,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,B_pp)
end if
! Build the B matrix for the spinorbital basis
if(ispin == 3) then
ab = 0
do a=nO+1,nBas-nR
do b=a+1,nBas-nR
ab = ab + 1
ij = 0
do i=nC+1,nO
do j=i+1,nO
ij = ij + 1
B_pp(ab,ij) = ERI(a,b,i,j) - ERI(a,b,j,i)
end do
end do
end do
end do
end if
end subroutine linear_response_B_pp

View File

@ -72,4 +72,27 @@ subroutine linear_response_C_pp(ispin,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,C_pp)
end if
! Build C matrix for the spinorbital basis
if(ispin == 3) then
ab = 0
do a=nO+1,nBas-nR
do b=a+1,nBas-nR
ab = ab + 1
cd = 0
do c=nO+1,nBas-nR
do d=c+1,nBas-nR
cd = cd + 1
C_pp(ab,cd) = + (e(a) + e(b) - eF)*Kronecker_delta(a,c)*Kronecker_delta(b,d) &
+ ERI(a,b,c,d) - ERI(a,b,d,c)
end do
end do
end do
end do
end if
end subroutine linear_response_C_pp

View File

@ -72,4 +72,27 @@ subroutine linear_response_D_pp(ispin,nBas,nC,nO,nV,nR,nOO,nVV,e,ERI,D_pp)
end if
! Build the D matrix for the spinorbital basis
if(ispin == 3) then
ij = 0
do i=nC+1,nO
do j=i+1,nO
ij = ij + 1
kl = 0
do k=nC+1,nO
do l=k+1,nO
kl = kl + 1
D_pp(ij,kl) = - (e(i) + e(j) - eF)*Kronecker_delta(i,k)*Kronecker_delta(j,l) &
+ ERI(i,j,k,l) - ERI(i,j,l,k)
end do
end do
end do
end do
end if
end subroutine linear_response_D_pp

View File

@ -19,6 +19,7 @@ subroutine print_excitation(method,ispin,nS,Omega)
if(ispin == 1) spin_manifold = 'singlet'
if(ispin == 2) spin_manifold = 'triplet'
if(ispin == 3) spin_manifold = 'spinorb'
write(*,*)
write(*,*)'-------------------------------------------------------------'

View File

@ -40,7 +40,7 @@ subroutine renormalization_factor_Tmatrix_so(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omeg
do i=nC+1,nO
cd = 0
do c=nO+1,nBas-nR
do d=nO+1,c-1
do d=c+1,nBas-nR
cd = cd + 1
eps = e(p) + e(i) - Omega1(cd)
Z(p) = Z(p) - rho1(p,i,cd)**2/eps**2
@ -55,7 +55,7 @@ subroutine renormalization_factor_Tmatrix_so(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omeg
do a=nO+1,nBas-nR
kl = 0
do k=nC+1,nO
do l=nC+1,k-1
do l=k+1,nO
kl = kl + 1
eps = e(p) + e(a) - Omega2(kl)
Z(p) = Z(p) - rho2(p,a,kl)**2/eps**2

View File

@ -44,7 +44,7 @@ subroutine self_energy_Tmatrix_diag_so(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,rho
do i=nC+1,nO
cd = 0
do c=nO+1,nBas-nR
do d=nO+1,c-1
do d=c+1,nBas-nR
cd = cd + 1
eps = e(p) + e(i) - Omega1(cd)
SigT(p) = SigT(p) + rho1(p,i,cd)**2/eps
@ -59,7 +59,7 @@ subroutine self_energy_Tmatrix_diag_so(eta,nBas,nC,nO,nV,nR,nOO,nVV,e,Omega1,rho
do a=nO+1,nBas-nR
kl = 0
do k=nC+1,nO
do l=nC+1,k-1
do l=k+1,nO
kl = kl + 1
eps = e(p) + e(a) - Omega2(kl)
SigT(p) = SigT(p) + rho2(p,a,kl)**2/eps

View File

@ -47,31 +47,30 @@ subroutine soG0T0(eta,nBas,nC,nO,nV,nR,ENuc,ERHF,ERI,eHF)
write(*,*)'************************************************'
write(*,*)
! Spatial to spin orbitals
! Define occupied and virtual spaces
nBas2 = 2*nBas
nO2 = 2*nO
nV2 = 2*nV
nC2 = 2*nC
nR2 = 2*nR
! Spatial to spin orbitals
allocate(seHF(nBas2),sERI(nBas2,nBas2,nBas2,nBas2))
call spatial_to_spin_MO_energy(nBas,eHF,nBas2,seHF)
call spatial_to_spin_ERI(nBas,ERI,nBas2,sERI)
! Define occupied and virtual spaces
nO2 = 2*nO
nV2 = 2*nV
nC2 = 2*nC
nR2 = 2*nR
! Dimensions of the rr-RPA linear reponse matrices
nOO = nO2*(nO2-1)/2
nVV = nV2*(nV2-1)/2
nOO = nO2*(nO2 - 1)/2
nVV = nV2*(nV2 - 1)/2
! Memory allocation
allocate(Omega1(nVV),X1(nVV,nVV),Y1(nOO,nVV), &
Omega2(nOO),X2(nVV,nOO),Y2(nOO,nOO), &
allocate(Omega1(nVV),X1(nVV,nVV),Y1(nOO,nVV), &
Omega2(nOO),X2(nVV,nOO),Y2(nOO,nOO), &
rho1(nBas2,nBas2,nVV),rho2(nBas2,nBas2,nOO), &
eG0T0(nBas2),SigT(nBas2),Z(nBas2))
@ -79,7 +78,7 @@ subroutine soG0T0(eta,nBas,nC,nO,nV,nR,ENuc,ERHF,ERI,eHF)
! Spinorbital basis
!----------------------------------------------
ispin = 2
ispin = 3
! Compute linear response