mirror of
https://github.com/pfloos/quack
synced 2025-05-06 23:34:42 +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
|
! Compute anomalous L matrix in the AO basis
|
||||||
|
|
||||||
@ -8,6 +8,7 @@ subroutine anomalous_matrix_AO_basis(nBas,Pa,ERI,L)
|
|||||||
! Input variables
|
! Input variables
|
||||||
|
|
||||||
integer,intent(in) :: nBas
|
integer,intent(in) :: nBas
|
||||||
|
double precision,intent(in) :: sigma
|
||||||
double precision,intent(in) :: Pa(nBas,nBas)
|
double precision,intent(in) :: Pa(nBas,nBas)
|
||||||
double precision,intent(in) :: ERI(nBas,nBas,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 si=1,nBas
|
||||||
do la=1,nBas
|
do la=1,nBas
|
||||||
do mu=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
|
end do
|
||||||
end do
|
end do
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
subroutine HFB(dotest,maxSCF,thresh,max_diis,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
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, &
|
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
|
! 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) :: ZNuc(nNuc)
|
||||||
double precision,intent(in) :: rNuc(nNuc,ncart)
|
double precision,intent(in) :: rNuc(nNuc,ncart)
|
||||||
double precision,intent(in) :: ENuc
|
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) :: S(nBas,nBas)
|
||||||
double precision,intent(in) :: T(nBas,nBas)
|
double precision,intent(in) :: T(nBas,nBas)
|
||||||
double precision,intent(in) :: V(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 Hartree_matrix_AO_basis(nBas,P,ERI,J)
|
||||||
call exchange_matrix_AO_basis(nBas,P,ERI,K)
|
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(:,:)
|
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, &
|
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, &
|
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
|
! 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) :: nV
|
||||||
integer,intent(in) :: nR
|
integer,intent(in) :: nR
|
||||||
double precision,intent(in) :: ENuc
|
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)
|
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 wall_time(start_HF)
|
||||||
call HFB(dotest,maxSCF_HF,thresh_HF,max_diis_HF,level_shift,nNuc,ZNuc,rNuc,ENuc, &
|
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, &
|
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)
|
call wall_time(end_HF)
|
||||||
|
|
||||||
t_HF = end_HF - start_HF
|
t_HF = end_HF - start_HF
|
||||||
|
@ -73,7 +73,7 @@ program QuAcK
|
|||||||
|
|
||||||
logical :: dotest,doRtest,doUtest,doGtest
|
logical :: dotest,doRtest,doUtest,doGtest
|
||||||
|
|
||||||
double precision :: temperature
|
double precision :: temperature,sigma
|
||||||
|
|
||||||
character(len=256) :: working_dir
|
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_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, &
|
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,temperature)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA, &
|
||||||
|
temperature,sigma)
|
||||||
|
|
||||||
!------------------!
|
!------------------!
|
||||||
! Hardware !
|
! Hardware !
|
||||||
@ -293,7 +294,7 @@ program QuAcK
|
|||||||
if(doBQuAcK) &
|
if(doBQuAcK) &
|
||||||
call BQuAcK(working_dir,dotest,doHFB,nNuc,nBas,nOrb,nC,nO,nV,nR,ENuc,ZNuc,rNuc, &
|
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, &
|
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 !
|
! 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_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, &
|
maxSCF_GT,thresh_GT,max_diis_GT,lin_GT,eta_GT,reg_GT,TDA_T, &
|
||||||
doACFDT,exchange_kernel,doXBS, &
|
doACFDT,exchange_kernel,doXBS, &
|
||||||
dophBSE,dophBSE2,doppBSE,dBSE,dTDA,temperature)
|
dophBSE,dophBSE2,doppBSE,dBSE,dTDA, &
|
||||||
|
temperature,sigma)
|
||||||
|
|
||||||
! Read desired methods
|
! Read desired methods
|
||||||
|
|
||||||
@ -73,6 +74,7 @@ subroutine read_options(working_dir,
|
|||||||
logical,intent(out) :: dTDA
|
logical,intent(out) :: dTDA
|
||||||
|
|
||||||
double precision,intent(out) :: temperature
|
double precision,intent(out) :: temperature
|
||||||
|
double precision,intent(out) :: sigma
|
||||||
|
|
||||||
! Local variables
|
! Local variables
|
||||||
|
|
||||||
@ -219,12 +221,12 @@ subroutine read_options(working_dir,
|
|||||||
if(ans4 == 'T') dBSE = .true.
|
if(ans4 == 'T') dBSE = .true.
|
||||||
if(ans5 == 'F') dTDA = .false.
|
if(ans5 == 'F') dTDA = .false.
|
||||||
|
|
||||||
! Options for dynamical Fermi-Dirac occupancies
|
! Options for Hartree-Fock Bogoliubov
|
||||||
|
|
||||||
temperature = 0d0
|
temperature = 0d0
|
||||||
|
|
||||||
read(1,*)
|
read(1,*)
|
||||||
read(1,*) temperature
|
read(1,*) temperature,sigma
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user