10
1
mirror of https://github.com/pfloos/quack synced 2024-11-04 21:23:55 +01:00

OK with BSE@GT

This commit is contained in:
Pierre-Francois Loos 2022-01-09 23:12:21 +01:00
parent d790d95c4d
commit 695b407335
4 changed files with 21 additions and 31 deletions

View File

@ -15,6 +15,6 @@
# ACFDT: AC Kx XBS # ACFDT: AC Kx XBS
F F F F F F
# BSE: BSE dBSE dTDA evDyn # BSE: BSE dBSE dTDA evDyn
F F T F T F T 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

@ -88,10 +88,10 @@ subroutine Bethe_Salpeter_Tmatrix(TDA_T,TDA,dBSE,dTDA,evDyn,singlet,triplet,eta,
call static_Tmatrix_A(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,1d0,ERI,Omega1s,rho1s,Omega2s,rho2s,TAs) call static_Tmatrix_A(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,1d0,ERI,Omega1s,rho1s,Omega2s,rho2s,TAs)
if(.not.TDA) call static_Tmatrix_B(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,1d0,ERI,Omega1s,rho1s,Omega2s,rho2s,TBs) if(.not.TDA) call static_Tmatrix_B(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOs,nVVs,1d0,ERI,Omega1s,rho1s,Omega2s,rho2s,TBs)
print*,'ab block of TAxs' ! print*,'ab block of TA'
call matout(nS,nS,TAs) ! call matout(nS,nS,TAs)
print*,'ab block of TB' ! print*,'ab block of TB'
call matout(nS,nS,TBs) ! call matout(nS,nS,TBs)
!---------------------------------------------- !----------------------------------------------
! Compute T-matrix for alpha-alpha block ! Compute T-matrix for alpha-alpha block
@ -108,16 +108,10 @@ subroutine Bethe_Salpeter_Tmatrix(TDA_T,TDA,dBSE,dTDA,evDyn,singlet,triplet,eta,
call static_Tmatrix_A(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,1d0,ERI,Omega1t,rho1t,Omega2t,rho2t,TAt) call static_Tmatrix_A(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,1d0,ERI,Omega1t,rho1t,Omega2t,rho2t,TAt)
if(.not.TDA) call static_Tmatrix_B(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,1d0,ERI,Omega1t,rho1t,Omega2t,rho2t,TBt) if(.not.TDA) call static_Tmatrix_B(ispin,eta,nBas,nC,nO,nV,nR,nS,nOOt,nVVt,1d0,ERI,Omega1t,rho1t,Omega2t,rho2t,TBt)
print*,'aa block of TA' ! print*,'aa block of TA'
call matout(nS,nS,TAt) ! call matout(nS,nS,TAt)
print*,'aa block of TB' ! print*,'aa block of TB'
call matout(nS,nS,TBt) ! call matout(nS,nS,TBt)
TAs(:,:) = TAs(:,:) - TAt(:,:)
TBs(:,:) = TBs(:,:) - TBt(:,:)
TAt(:,:) = - TAs(:,:)
TBt(:,:) = - TBs(:,:)
!------------------- !-------------------
! Singlet manifold ! Singlet manifold
@ -130,7 +124,7 @@ subroutine Bethe_Salpeter_Tmatrix(TDA_T,TDA,dBSE,dTDA,evDyn,singlet,triplet,eta,
! Compute BSE singlet excitation energies ! Compute BSE singlet excitation energies
call linear_response_Tmatrix(ispin,.false.,TDA,eta,nBas,nC,nO,nV,nR,nS,1d0,eGT,ERI,TAs,TBs, & call linear_response_Tmatrix(ispin,.false.,TDA,eta,nBas,nC,nO,nV,nR,nS,1d0,eGT,ERI,TAs+TAt,TBs+TBt, &
EcBSE(ispin),OmBSE(:,ispin),XpY_BSE(:,:,ispin),XmY_BSE(:,:,ispin)) EcBSE(ispin),OmBSE(:,ispin),XpY_BSE(:,:,ispin),XmY_BSE(:,:,ispin))
call print_excitation('BSE@GT ',ispin,nS,OmBSE(:,ispin)) call print_excitation('BSE@GT ',ispin,nS,OmBSE(:,ispin))
@ -171,7 +165,7 @@ subroutine Bethe_Salpeter_Tmatrix(TDA_T,TDA,dBSE,dTDA,evDyn,singlet,triplet,eta,
! Compute BSE triplet excitation energies ! Compute BSE triplet excitation energies
call linear_response_Tmatrix(ispin,.false.,TDA,eta,nBas,nC,nO,nV,nR,nS,1d0,eGT,ERI,TAt,TBt, & call linear_response_Tmatrix(ispin,.false.,TDA,eta,nBas,nC,nO,nV,nR,nS,1d0,eGT,ERI,TAt-TAs,TBt-TBs, &
EcBSE(ispin),OmBSE(:,ispin),XpY_BSE(:,:,ispin),XmY_BSE(:,:,ispin)) EcBSE(ispin),OmBSE(:,ispin),XpY_BSE(:,:,ispin),XmY_BSE(:,:,ispin))
call print_excitation('BSE@GT ',ispin,nS,OmBSE(:,ispin)) call print_excitation('BSE@GT ',ispin,nS,OmBSE(:,ispin))
call print_transition_vectors(.false.,nBas,nC,nO,nV,nR,nS,dipole_int, & call print_transition_vectors(.false.,nBas,nC,nO,nV,nR,nS,dipole_int, &

View File

@ -80,10 +80,10 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA_T,TDA,dBSE,dTDA,evDyn,sing
! Dimensions of the pp-RPA linear reponse matrices ! Dimensions of the pp-RPA linear reponse matrices
nOOs = nO*(nO + 1)/2 ! nOOs = nO*(nO + 1)/2
nVVs = nV*(nV + 1)/2 ! nVVs = nV*(nV + 1)/2
! nOOs = nO*nO nOOs = nO*nO
! nVVs = nV*nV nVVs = nV*nV
nOOt = nO*(nO - 1)/2 nOOt = nO*(nO - 1)/2
nVVt = nV*(nV - 1)/2 nVVt = nV*(nV - 1)/2
@ -103,8 +103,8 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA_T,TDA,dBSE,dTDA,evDyn,sing
!---------------------------------------------- !----------------------------------------------
ispin = 1 ispin = 1
iblock = 1 ! iblock = 1
! iblock = 3 iblock = 3
! Compute linear response ! Compute linear response
@ -142,8 +142,8 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA_T,TDA,dBSE,dTDA,evDyn,sing
SigT(:) = 0d0 SigT(:) = 0d0
Z(:) = 0d0 Z(:) = 0d0
iblock = 1 ! iblock = 1
! iblock = 3 iblock = 3
call excitation_density_Tmatrix(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI_MO,X1s,Y1s,rho1s,X2s,Y2s,rho2s) call excitation_density_Tmatrix(iblock,nBas,nC,nO,nV,nR,nOOs,nVVs,ERI_MO,X1s,Y1s,rho1s,X2s,Y2s,rho2s)
@ -189,8 +189,8 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA_T,TDA,dBSE,dTDA,evDyn,sing
! Compute the ppRPA correlation energy ! Compute the ppRPA correlation energy
ispin = 1 ispin = 1
! iblock = 3 iblock = 3
iblock = 1 ! iblock = 1
call linear_response_pp(iblock,TDA_T,nBas,nC,nO,nV,nR,nOOs,nVVs,1d0,eG0T0,ERI_MO, & call linear_response_pp(iblock,TDA_T,nBas,nC,nO,nV,nR,nOOs,nVVs,1d0,eG0T0,ERI_MO, &
Omega1s,X1s,Y1s,Omega2s,X2s,Y2s,EcRPA(ispin)) Omega1s,X1s,Y1s,Omega2s,X2s,Y2s,EcRPA(ispin))

View File

@ -48,8 +48,6 @@ subroutine linear_response_Tmatrix(ispin,dRPA,TDA,eta,nBas,nC,nO,nV,nR,nS,lambda
call matout(nS,nS,A_BSE) call matout(nS,nS,A_BSE)
A(:,:) = A(:,:) + A_BSE(:,:) A(:,:) = A(:,:) + A_BSE(:,:)
! if(ispin == 1) A(:,:) = A(:,:) + A_BSE(:,:)
! if(ispin == 2) A(:,:) = A(:,:) - A_BSE(:,:)
! Tamm-Dancoff approximation ! Tamm-Dancoff approximation
@ -71,8 +69,6 @@ subroutine linear_response_Tmatrix(ispin,dRPA,TDA,eta,nBas,nC,nO,nV,nR,nS,lambda
call matout(nS,nS,B_BSE) call matout(nS,nS,B_BSE)
B(:,:) = B(:,:) + B_BSE(:,:) B(:,:) = B(:,:) + B_BSE(:,:)
! if(ispin == 1) B(:,:) = B(:,:) + B_BSE(:,:)
! if(ispin == 2) B(:,:) = B(:,:) - B_BSE(:,:)
! Build A + B and A - B matrices ! Build A + B and A - B matrices