From f227247f42994989a4e7b471e5e13570ed41d8e9 Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Sun, 14 Jun 2020 15:09:33 +0200 Subject: [PATCH] evDyn --- input/basis | 127 +++++++++--------- src/QuAcK/Bethe_Salpeter.f90 | 2 +- .../Bethe_Salpeter_dynamic_perturbation.f90 | 3 - ...alpeter_dynamic_perturbation_iterative.f90 | 9 +- 4 files changed, 72 insertions(+), 69 deletions(-) diff --git a/input/basis b/input/basis index 80356bb..bbe0bfe 100644 --- a/input/basis +++ b/input/basis @@ -1,64 +1,71 @@ -1 6 -S 9 -1 9.046000E+03 7.000000E-04 -2 1.357000E+03 5.389000E-03 -3 3.093000E+02 2.740600E-02 -4 8.773000E+01 1.032070E-01 -5 2.856000E+01 2.787230E-01 -6 1.021000E+01 4.485400E-01 -7 3.838000E+00 2.782380E-01 -8 7.466000E-01 1.544000E-02 -9 2.248000E-01 -2.864000E-03 -S 9 -1 9.046000E+03 -1.530000E-04 -2 1.357000E+03 -1.208000E-03 -3 3.093000E+02 -5.992000E-03 -4 8.773000E+01 -2.454400E-02 -5 2.856000E+01 -6.745900E-02 -6 1.021000E+01 -1.580780E-01 -7 3.838000E+00 -1.218310E-01 -8 7.466000E-01 5.490030E-01 -9 2.248000E-01 5.788150E-01 +1 9 +S 8 + 1 9046.0000000 0.0007000 + 2 1357.0000000 0.0053890 + 3 309.3000000 0.0274060 + 4 87.7300000 0.1032070 + 5 28.5600000 0.2787230 + 6 10.2100000 0.4485400 + 7 3.8380000 0.2782380 + 8 0.7466000 0.0154400 +S 8 + 1 9046.0000000 -0.0001530 + 2 1357.0000000 -0.0012080 + 3 309.3000000 -0.0059920 + 4 87.7300000 -0.0245440 + 5 28.5600000 -0.0674590 + 6 10.2100000 -0.1580780 + 7 3.8380000 -0.1218310 + 8 0.7466000 0.5490030 S 1 -1 2.248000E-01 1.000000E+00 -P 4 -1 1.355000E+01 3.991900E-02 -2 2.917000E+00 2.171690E-01 -3 7.973000E-01 5.103190E-01 -4 2.185000E-01 4.622140E-01 -P 1 -1 2.185000E-01 1.000000E+00 -D 1 -1 8.170000E-01 1.0000000 -2 6 -S 9 -1 9.046000E+03 7.000000E-04 -2 1.357000E+03 5.389000E-03 -3 3.093000E+02 2.740600E-02 -4 8.773000E+01 1.032070E-01 -5 2.856000E+01 2.787230E-01 -6 1.021000E+01 4.485400E-01 -7 3.838000E+00 2.782380E-01 -8 7.466000E-01 1.544000E-02 -9 2.248000E-01 -2.864000E-03 -S 9 -1 9.046000E+03 -1.530000E-04 -2 1.357000E+03 -1.208000E-03 -3 3.093000E+02 -5.992000E-03 -4 8.773000E+01 -2.454400E-02 -5 2.856000E+01 -6.745900E-02 -6 1.021000E+01 -1.580780E-01 -7 3.838000E+00 -1.218310E-01 -8 7.466000E-01 5.490030E-01 -9 2.248000E-01 5.788150E-01 + 1 0.2248000 1.0000000 S 1 -1 2.248000E-01 1.000000E+00 -P 4 -1 1.355000E+01 3.991900E-02 -2 2.917000E+00 2.171690E-01 -3 7.973000E-01 5.103190E-01 -4 2.185000E-01 4.622140E-01 + 1 0.0612400 1.0000000 +P 3 + 1 13.5500000 0.0399190 + 2 2.9170000 0.2171690 + 3 0.7973000 0.5103190 P 1 -1 2.185000E-01 1.000000E+00 + 1 0.2185000 1.0000000 +P 1 + 1 0.0561100 1.0000000 D 1 -1 8.170000E-01 1.0000000 + 1 0.8170000 1.0000000 +D 1 + 1 0.2300000 1.0000000 +2 9 +S 8 + 1 9046.0000000 0.0007000 + 2 1357.0000000 0.0053890 + 3 309.3000000 0.0274060 + 4 87.7300000 0.1032070 + 5 28.5600000 0.2787230 + 6 10.2100000 0.4485400 + 7 3.8380000 0.2782380 + 8 0.7466000 0.0154400 +S 8 + 1 9046.0000000 -0.0001530 + 2 1357.0000000 -0.0012080 + 3 309.3000000 -0.0059920 + 4 87.7300000 -0.0245440 + 5 28.5600000 -0.0674590 + 6 10.2100000 -0.1580780 + 7 3.8380000 -0.1218310 + 8 0.7466000 0.5490030 +S 1 + 1 0.2248000 1.0000000 +S 1 + 1 0.0612400 1.0000000 +P 3 + 1 13.5500000 0.0399190 + 2 2.9170000 0.2171690 + 3 0.7973000 0.5103190 +P 1 + 1 0.2185000 1.0000000 +P 1 + 1 0.0561100 1.0000000 +D 1 + 1 0.8170000 1.0000000 +D 1 + 1 0.2300000 1.0000000 + diff --git a/src/QuAcK/Bethe_Salpeter.f90 b/src/QuAcK/Bethe_Salpeter.f90 index 5b827ac..ca5eac8 100644 --- a/src/QuAcK/Bethe_Salpeter.f90 +++ b/src/QuAcK/Bethe_Salpeter.f90 @@ -27,7 +27,7 @@ subroutine Bethe_Salpeter(TDA_W,TDA,dTDA,singlet_manifold,triplet_manifold,eta, ! Local variables - logical :: evDyn = .false. + logical :: evDyn = .true. logical :: W_BSE = .false. integer :: ispin integer :: isp_W diff --git a/src/QuAcK/Bethe_Salpeter_dynamic_perturbation.f90 b/src/QuAcK/Bethe_Salpeter_dynamic_perturbation.f90 index d368f06..371f3b2 100644 --- a/src/QuAcK/Bethe_Salpeter_dynamic_perturbation.f90 +++ b/src/QuAcK/Bethe_Salpeter_dynamic_perturbation.f90 @@ -79,9 +79,6 @@ subroutine Bethe_Salpeter_dynamic_perturbation(TDA,dTDA,eta,nBas,nC,nO,nV,nR,nS, X(:) = 0.5d0*(XpY(ia,:) + XmY(ia,:)) Y(:) = 0.5d0*(XpY(ia,:) - XmY(ia,:)) -! call matout(nS,1,X) -! call matout(nS,1,Y) - ! First-order correction if(dTDA) then diff --git a/src/QuAcK/Bethe_Salpeter_dynamic_perturbation_iterative.f90 b/src/QuAcK/Bethe_Salpeter_dynamic_perturbation_iterative.f90 index bae0434..61d6626 100644 --- a/src/QuAcK/Bethe_Salpeter_dynamic_perturbation_iterative.f90 +++ b/src/QuAcK/Bethe_Salpeter_dynamic_perturbation_iterative.f90 @@ -73,6 +73,7 @@ subroutine Bethe_Salpeter_dynamic_perturbation_iterative(TDA,dTDA,eta,nBas,nC,nO write(*,*) ' First-order dynamical correction to static Bethe-Salpeter excitation energies ' write(*,*) '---------------------------------------------------------------------------------------------------' write(*,'(A57,F10.6,A3)') ' BSE neutral excitation must be lower than the GW gap = ',gapGW*HaToeV,' eV' + write(*,*) '---------------------------------------------------------------------------------------------------' write(*,*) do while(Conv > thresh .and. nSCF < maxSCF) @@ -82,7 +83,7 @@ subroutine Bethe_Salpeter_dynamic_perturbation_iterative(TDA,dTDA,eta,nBas,nC,nO write(*,*) '---------------------------------------------------------------------------------------------------' write(*,'(2X,A15,I3)') 'Iteration n.',nSCF write(*,*) '---------------------------------------------------------------------------------------------------' - write(*,'(2X,A5,1X,A20,1X,A20,1X,A20)') '#','Static (eV)','Dynamic (eV)','Correction (eV)' + write(*,'(2X,A5,1X,A20,1X,A20,1X,A20,A20)') '#','Static (eV)','Dynamic (eV)','Correction (eV)','Convergence (eV)' write(*,*) '---------------------------------------------------------------------------------------------------' do ia=1,min(nS,maxS) @@ -116,10 +117,8 @@ subroutine Bethe_Salpeter_dynamic_perturbation_iterative(TDA,dTDA,eta,nBas,nC,nO end if - write(*,'(2X,I5,5X,F15.6,5X,F15.6,5X,F15.6)') & - ia,OmBSE(ia)*HaToeV,(OmBSE(ia)+OmDyn(ia))*HaToeV,OmDyn(ia)*HaToeV - - if(OmBSE(ia) > gapGW) write(*,*) ' !!! BSE neutral excitation larger than the GW gap !!! ' + write(*,'(2X,I5,5X,F15.6,5X,F15.6,5X,F15.6,5X,F15.6)') & + ia,OmBSE(ia)*HaToeV,(OmBSE(ia)+OmDyn(ia))*HaToeV,OmDyn(ia)*HaToeV,(OmBSE(ia) + OmDyn(ia) - OmOld(ia))*HaToeV end do