diff --git a/src/AOtoMO/anomalous_matrix_AO_basis.f90 b/src/AOtoMO/anomalous_matrix_AO_basis.f90 index 4f2583e..7a7de11 100644 --- a/src/AOtoMO/anomalous_matrix_AO_basis.f90 +++ b/src/AOtoMO/anomalous_matrix_AO_basis.f90 @@ -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 diff --git a/src/HF/HFB.f90 b/src/HF/HFB.f90 index 1b2405e..64dc908 100644 --- a/src/HF/HFB.f90 +++ b/src/HF/HFB.f90 @@ -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(:,:) diff --git a/src/QuAcK/BQuAcK.f90 b/src/QuAcK/BQuAcK.f90 index 836ee9a..572118b 100644 --- a/src/QuAcK/BQuAcK.f90 +++ b/src/QuAcK/BQuAcK.f90 @@ -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 diff --git a/src/QuAcK/QuAcK.f90 b/src/QuAcK/QuAcK.f90 index 22d607b..af50d21 100644 --- a/src/QuAcK/QuAcK.f90 +++ b/src/QuAcK/QuAcK.f90 @@ -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 ! diff --git a/src/QuAcK/read_options.f90 b/src/QuAcK/read_options.f90 index 11af97e..4fb3e4d 100644 --- a/src/QuAcK/read_options.f90 +++ b/src/QuAcK/read_options.f90 @@ -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