mirror of
https://github.com/pfloos/quack
synced 2025-04-25 01:34:57 +02:00
Incl sigma to change sign HFB
This commit is contained in:
parent
b260a7a70d
commit
c05631e1ba
@ -1,4 +1,4 @@
|
||||
subroutine anomalous_matrix_AO_basis(nBas,Pa,ERI,L)
|
||||
subroutine anomalous_matrix_AO_basis(nBas,sigma,Pa,ERI,L)
|
||||
|
||||
! Compute anomalous L matrix in the AO basis
|
||||
|
||||
@ -8,6 +8,7 @@ subroutine anomalous_matrix_AO_basis(nBas,Pa,ERI,L)
|
||||
! Input variables
|
||||
|
||||
integer,intent(in) :: nBas
|
||||
double precision,intent(in) :: sigma
|
||||
double precision,intent(in) :: Pa(nBas,nBas)
|
||||
double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas)
|
||||
|
||||
@ -25,7 +26,7 @@ subroutine anomalous_matrix_AO_basis(nBas,Pa,ERI,L)
|
||||
do si=1,nBas
|
||||
do la=1,nBas
|
||||
do mu=1,nBas
|
||||
L(mu,nu) = L(mu,nu) + Pa(la,si)*ERI(la,si,mu,nu)
|
||||
L(mu,nu) = L(mu,nu) + sigma*Pa(la,si)*ERI(la,si,mu,nu)
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine HFB(dotest,maxSCF,thresh,max_diis,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
||||
nBas,nOrb,nO,S,T,V,Hc,ERI,dipole_int,X,EHFB,eHF,c,P,Panom,F,Delta, &
|
||||
temperature)
|
||||
temperature,sigma)
|
||||
|
||||
! Perform Hartree-Fock Bogoliubov calculation
|
||||
|
||||
@ -23,7 +23,7 @@ subroutine HFB(dotest,maxSCF,thresh,max_diis,level_shift,nNuc,ZNuc,rNuc,ENuc,
|
||||
double precision,intent(in) :: ZNuc(nNuc)
|
||||
double precision,intent(in) :: rNuc(nNuc,ncart)
|
||||
double precision,intent(in) :: ENuc
|
||||
double precision,intent(in) :: temperature
|
||||
double precision,intent(in) :: temperature,sigma
|
||||
double precision,intent(in) :: S(nBas,nBas)
|
||||
double precision,intent(in) :: T(nBas,nBas)
|
||||
double precision,intent(in) :: V(nBas,nBas)
|
||||
@ -175,7 +175,7 @@ subroutine HFB(dotest,maxSCF,thresh,max_diis,level_shift,nNuc,ZNuc,rNuc,ENuc,
|
||||
|
||||
call Hartree_matrix_AO_basis(nBas,P,ERI,J)
|
||||
call exchange_matrix_AO_basis(nBas,P,ERI,K)
|
||||
call anomalous_matrix_AO_basis(nBas,Panom,ERI,Delta)
|
||||
call anomalous_matrix_AO_basis(nBas,sigma,Panom,ERI,Delta)
|
||||
|
||||
F(:,:) = Hc(:,:) + J(:,:) + 0.5d0*K(:,:) - chem_pot*S(:,:)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
subroutine BQuAcK(working_dir,dotest,doHFB,nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift, &
|
||||
guess_type,mix,temperature)
|
||||
guess_type,mix,temperature,sigma)
|
||||
|
||||
! Restricted branch of QuAcK
|
||||
|
||||
@ -19,7 +19,7 @@ subroutine BQuAcK(working_dir,dotest,doHFB,nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,
|
||||
integer,intent(in) :: nV
|
||||
integer,intent(in) :: nR
|
||||
double precision,intent(in) :: ENuc
|
||||
double precision,intent(in) :: temperature
|
||||
double precision,intent(in) :: temperature,sigma
|
||||
|
||||
double precision,intent(in) :: ZNuc(nNuc),rNuc(nNuc,ncart)
|
||||
|
||||
@ -94,7 +94,7 @@ subroutine BQuAcK(working_dir,dotest,doHFB,nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,
|
||||
call wall_time(start_HF)
|
||||
call HFB(dotest,maxSCF_HF,thresh_HF,max_diis_HF,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
||||
nBas,nOrb,nO,S,T,V,Hc,ERI_AO,dipole_int_AO,X,EHFB,eHF,cHF,PHF,PanomHF, &
|
||||
FHF,Delta,temperature)
|
||||
FHF,Delta,temperature,sigma)
|
||||
call wall_time(end_HF)
|
||||
|
||||
t_HF = end_HF - start_HF
|
||||
|
@ -73,7 +73,7 @@ program QuAcK
|
||||
|
||||
logical :: dotest,doRtest,doUtest,doGtest
|
||||
|
||||
double precision :: temperature
|
||||
double precision :: temperature,sigma
|
||||
|
||||
character(len=256) :: working_dir
|
||||
|
||||
@ -136,7 +136,8 @@ program QuAcK
|
||||
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
||||
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||
doACFDT,exchange_kernel,doXBS, &
|
||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,temperature)
|
||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA, &
|
||||
temperature,sigma)
|
||||
|
||||
!------------------!
|
||||
! Hardware !
|
||||
@ -293,7 +294,7 @@ program QuAcK
|
||||
if(doBQuAcK) &
|
||||
call BQuAcK(working_dir,dotest,doHFB,nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
||||
S,T,V,Hc,X,dipole_int_AO,maxSCF_HF,max_diis_HF,thresh_HF,level_shift,guess_type,mix, &
|
||||
temperature)
|
||||
temperature,sigma)
|
||||
|
||||
!-----------!
|
||||
! Stop Test !
|
||||
|
@ -7,7 +7,8 @@ subroutine read_options(working_dir,
|
||||
maxSCF_GW,thresh_GW,max_diis_GW,lin_GW,eta_GW,reg_GW,TDA_W, &
|
||||
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||
doACFDT,exchange_kernel,doXBS, &
|
||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,temperature)
|
||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA, &
|
||||
temperature,sigma)
|
||||
|
||||
! Read desired methods
|
||||
|
||||
@ -73,6 +74,7 @@ subroutine read_options(working_dir,
|
||||
logical,intent(out) :: dTDA
|
||||
|
||||
double precision,intent(out) :: temperature
|
||||
double precision,intent(out) :: sigma
|
||||
|
||||
! Local variables
|
||||
|
||||
@ -219,12 +221,12 @@ subroutine read_options(working_dir,
|
||||
if(ans4 == 'T') dBSE = .true.
|
||||
if(ans5 == 'F') dTDA = .false.
|
||||
|
||||
! Options for dynamical Fermi-Dirac occupancies
|
||||
! Options for Hartree-Fock Bogoliubov
|
||||
|
||||
temperature = 0d0
|
||||
|
||||
read(1,*)
|
||||
read(1,*) temperature
|
||||
read(1,*) temperature,sigma
|
||||
|
||||
endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user