From 363bc11fa8f1c1af783be1aa77f555b8638ec1cb Mon Sep 17 00:00:00 2001 From: Clotilde Marut Date: Tue, 23 Nov 2021 09:17:13 +0100 Subject: [PATCH] debugging ind energy for VWN --- input/dft | 10 +- input/methods | 4 +- ...VWN5_lda_correlation_individual_energy.f90 | 122 ++++++------ .../print_unrestricted_individual_energy.f90 | 178 ++++++------------ 4 files changed, 122 insertions(+), 192 deletions(-) diff --git a/input/dft b/input/dft index 4efad36..2be05f9 100644 --- a/input/dft +++ b/input/dft @@ -6,7 +6,7 @@ # GGA = 2: B88,G96,PBE # MGGA = 3: # Hybrid = 4 HF,B3LYP,PBE -1 CC-S51 +1 S51 # correlation rung: # Hartree = 0: H # LDA = 1: PW92,VWN3,VWN5,eVWN5 @@ -31,11 +31,11 @@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # Ensemble weights: wEns(1),...,wEns(nEns-1) - 0.0 0.0 0.0 + 0.95 0.0 0.0 # Ncentered ? -T +F # Parameters for CC weight-dependent exchange functional --0.766201 -0.155585 0.00130104 -0.00 0.00 0.00 0.00 +-0.766201 -0.155585 0.00130104 0.0 +0.00 0.00 0.00 0.00 0.0 # choice of UCC exchange coefficient : 1 for Cx1, 2 for Cx2, 3 for Cx1*Cx2 1 diff --git a/input/methods b/input/methods index 1e67d49..5b87e02 100644 --- a/input/methods +++ b/input/methods @@ -1,5 +1,5 @@ # RHF UHF KS MOM - T F F F + F F T F # MP2* MP3 MP2-F12 F F F # CCD pCCD DCD CCSD CCSD(T) @@ -9,7 +9,7 @@ # CIS* CIS(D) CID CISD FCI F F F F F # RPA* RPAx* crRPA ppRPA - F F F T + F F F F # G0F2* evGF2* qsGF2* G0F3 evGF3 F F F F F # G0W0* evGW* qsGW* ufG0W0 ufGW diff --git a/src/eDFT/UVWN5_lda_correlation_individual_energy.f90 b/src/eDFT/UVWN5_lda_correlation_individual_energy.f90 index d6407ac..19e4c9a 100644 --- a/src/eDFT/UVWN5_lda_correlation_individual_energy.f90 +++ b/src/eDFT/UVWN5_lda_correlation_individual_energy.f90 @@ -67,49 +67,46 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent raI = max(0d0,rho(iG,1)) rbI = max(0d0,rho(iG,2)) -! spin-up contribution - - r = ra - rI = raI - - if(r > threshold) then - - rs = (4d0*pi*r/3d0)**(-1d0/3d0) - x = sqrt(rs) - - x_f = x*x + b_f*x + c_f - xx0_f = x0_f*x0_f + b_f*x0_f + c_f - q_f = sqrt(4d0*c_f - b_f*b_f) - - ec_f = a_f*( log(x**2/x_f) + 2d0*b_f/q_f*atan(q_f/(2d0*x + b_f)) & - - b_f*x0_f/xx0_f*( log((x - x0_f)**2/x_f) + 2d0*(b_f + 2d0*x0_f)/q_f*atan(q_f/(2d0*x + b_f)) ) ) - - drsdr = - (36d0*pi)**(-1d0/3d0)*r**(-4d0/3d0) - dxdrs = 0.5d0/sqrt(rs) - - dxdx_f = 2d0*x + b_f - - decdx_f = a_f*( 2d0/x - 4d0*b_f/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f & - - b_f*x0_f/xx0_f*( 2/(x-x0_f) - 4d0*(b_f+2d0*x0_f)/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f ) ) - - decdr_f = drsdr*dxdrs*decdx_f - - Ecrr(1) = Ecrr(1) - weight(iG)*decdr_f*r*r - - if(rI > threshold) then - - EcrI(1) = EcrI(1) + weight(iG)*ec_f*rI - EcrrI(1) = EcrrI(1) + weight(iG)*decdr_f*r*rI - - end if - - end if - -! up-down contribution - r = ra + rb rI = raI + rbI +! spin-up contribution + + ! if(r > threshold) then + + ! rs = (4d0*pi*r/3d0)**(-1d0/3d0) + ! x = sqrt(rs) + ! + ! x_f = x*x + b_f*x + c_f + ! xx0_f = x0_f*x0_f + b_f*x0_f + c_f + ! q_f = sqrt(4d0*c_f - b_f*b_f) + ! + ! ec_f = a_f*( log(x**2/x_f) + 2d0*b_f/q_f*atan(q_f/(2d0*x + b_f)) & + ! - b_f*x0_f/xx0_f*( log((x - x0_f)**2/x_f) + 2d0*(b_f + 2d0*x0_f)/q_f*atan(q_f/(2d0*x + b_f)) ) ) + ! + ! drsdr = - (36d0*pi)**(-1d0/3d0)*r**(-4d0/3d0) + ! dxdrs = 0.5d0/sqrt(rs) + + ! dxdx_f = 2d0*x + b_f + + ! decdx_f = a_f*( 2d0/x - 4d0*b_f/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f & + ! - b_f*x0_f/xx0_f*( 2/(x-x0_f) - 4d0*(b_f+2d0*x0_f)/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f ) ) + + ! decdr_f = drsdr*dxdrs*decdx_f + + ! Ecrr(1) = Ecrr(1) - weight(iG)*decdr_f*r*r + + ! if(rI > threshold) then + + ! EcrI(1) = EcrI(1) + weight(iG)*ec_f*rI + ! EcrrI(1) = EcrrI(1) + weight(iG)*decdr_f*r*rI + + ! end if + ! + ! end if + +! up-down contribution + if(r > threshold) then rs = (4d0*pi*r/3d0)**(-1d0/3d0) @@ -171,6 +168,8 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent decdr = decdr_p + decdr_a*fz/d2fz*(1d0-z**4) + ec_a*dfzdr/d2fz*(1d0-z**4) - 4d0*ec_a*fz/d2fz*dzdr*z**3 & + (decdr_f - decdr_p)*fz*z**4 + (ec_f - ec_p)*dfzdr*z**4 + 4d0*(ec_f - ec_p)*fz*dzdr*z**3 + decdr = ec_z + decdr*r + Ecrr(2) = Ecrr(2) - weight(iG)*decdr*r*r if(rI > threshold) then @@ -184,41 +183,38 @@ subroutine UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcent ! spin-down contribution - r = rb - rI = rbI - - if(r > threshold) then + ! if(r > threshold) then - rs = (4d0*pi*r/3d0)**(-1d0/3d0) - x = sqrt(rs) + ! rs = (4d0*pi*r/3d0)**(-1d0/3d0) + ! x = sqrt(rs) - x_f = x*x + b_f*x + c_f - xx0_f = x0_f*x0_f + b_f*x0_f + c_f - q_f = sqrt(4d0*c_f - b_f*b_f) + ! x_f = x*x + b_f*x + c_f + ! xx0_f = x0_f*x0_f + b_f*x0_f + c_f + ! q_f = sqrt(4d0*c_f - b_f*b_f) - ec_f = a_f*( log(x**2/x_f) + 2d0*b_f/q_f*atan(q_f/(2d0*x + b_f)) & - - b_f*x0_f/xx0_f*( log((x - x0_f)**2/x_f) + 2d0*(b_f + 2d0*x0_f)/q_f*atan(q_f/(2d0*x + b_f)) ) ) + ! ec_f = a_f*( log(x**2/x_f) + 2d0*b_f/q_f*atan(q_f/(2d0*x + b_f)) & + ! - b_f*x0_f/xx0_f*( log((x - x0_f)**2/x_f) + 2d0*(b_f + 2d0*x0_f)/q_f*atan(q_f/(2d0*x + b_f)) ) ) - drsdr = - (36d0*pi)**(-1d0/3d0)*r**(-4d0/3d0) - dxdrs = 0.5d0/sqrt(rs) + ! drsdr = - (36d0*pi)**(-1d0/3d0)*r**(-4d0/3d0) + ! dxdrs = 0.5d0/sqrt(rs) - dxdx_f = 2d0*x + b_f + ! dxdx_f = 2d0*x + b_f - decdx_f = a_f*( 2d0/x - 4d0*b_f/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f & - - b_f*x0_f/xx0_f*( 2/(x-x0_f) - 4d0*(b_f+2d0*x0_f)/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f ) ) + ! decdx_f = a_f*( 2d0/x - 4d0*b_f/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f & + ! - b_f*x0_f/xx0_f*( 2/(x-x0_f) - 4d0*(b_f+2d0*x0_f)/( (b_f+2d0*x)**2 + q_f**2) - dxdx_f/x_f ) ) - decdr_f = drsdr*dxdrs*decdx_f + ! decdr_f = drsdr*dxdrs*decdx_f - Ecrr(3) = Ecrr(3) - weight(iG)*decdr_f*r*r + ! Ecrr(3) = Ecrr(3) - weight(iG)*decdr_f*r*r - if(rI > threshold) then + ! if(rI > threshold) then - EcrI(3) = EcrI(3) + weight(iG)*ec_f*rI - EcrrI(3) = EcrrI(3) + weight(iG)*decdr_f*r*rI + ! EcrI(3) = EcrI(3) + weight(iG)*ec_f*rI + ! EcrrI(3) = EcrrI(3) + weight(iG)*decdr_f*r*rI - end if + ! end if - end if + ! end if end do diff --git a/src/eDFT/print_unrestricted_individual_energy.f90 b/src/eDFT/print_unrestricted_individual_energy.f90 index fbf67df..70b076a 100644 --- a/src/eDFT/print_unrestricted_individual_energy.f90 +++ b/src/eDFT/print_unrestricted_individual_energy.f90 @@ -149,134 +149,68 @@ subroutine print_unrestricted_individual_energy(nEns,ENuc,Ew,ET,EV,EJ,Ex,Ec,Exc, ! Total Energy and IP and EA !------------------------------------------------------------------------ - write(*,'(A60)') '-------------------------------------------------' - write(*,'(A60)') ' IP AND EA FROM AUXILIARY ENERGIES ' - write(*,'(A60)') '-------------------------------------------------' + write(*,'(A60)') '-------------------------------------------------' + write(*,'(A60)') ' IP AND EA FROM AUXILIARY ENERGIES ' + write(*,'(A60)') '-------------------------------------------------' - write(*,'(A43,F16.10,A4)') ' Ionization Potential 1 -> 2:',Omaux(2)+OmxcDD(2),' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',Omaux(2), ' au' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2),' au' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-(Omaux(3)+OmxcDD(3)),' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',-Omaux(3), ' au' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-OmxDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-OmcDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-OmxcDD(3),' au' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Fundamental Gap :',Omaux(2)+OmxcDD(2)+(Omaux(3)+OmxcDD(3)),' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',Omaux(2)+Omaux(3), ' au' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2)+OmxDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2)+OmcDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2)+OmxcDD(3),' au' - write(*,*) + do iEns=2,nEns + write(*,'(A40,I2,A1,F16.10,A3)') ' Energy difference 1 -> ',iEns,':',Omaux(iEns)+OmxcDD(iEns),' au' + write(*,*) + write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',Omaux(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(iEns),' au' + write(*,*) - write(*,'(A60)') '-------------------------------------------------' - write(*,*) + write(*,'(A60)') '-------------------------------------------------' + write(*,*) - write(*,'(A40,F16.10,A3)') ' Ionization Potential 1 -> 2:',(Omaux(2)+OmxcDD(2))*HaToeV,' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',Omaux(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2)*HaToeV,' eV' - write(*,*) - write(*,'(A40,F16.10,A3)') ' Electronic Affinity 1 -> 3:',-(Omaux(3)+OmxcDD(3))*HaToeV,' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',-Omaux(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-OmxDD(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-OmcDD(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-OmxcDD(3)*HaToeV,' eV' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Fundamental Gap :',(Omaux(2)+OmxcDD(2)+(Omaux(3)+OmxcDD(3)))*HaToeV,' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',(Omaux(2)+Omaux(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',(OmxDD(2)+OmxDD(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',(OmcDD(2)+OmcDD(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',(OmxcDD(2)+OmxcDD(3))*HaToeV,' eV' - write(*,*) + write(*,'(A40,I2,A1,F16.10,A3)') ' Energy difference 1 -> ',iEns,':',(Omaux(iEns)+OmxcDD(iEns))*HaToeV,' eV' + write(*,*) + write(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',Omaux(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(iEns)*HaToeV,' eV' + write(*,*) + end do - write(*,'(A60)') '-------------------------------------------------' - write(*,*) + write(*,'(A60)') '-------------------------------------------------' + write(*,*) - write(*,'(A60)') '-------------------------------------------------' - write(*,'(A60)') ' IP and EA FROM INDIVIDUAL ENERGIES ' - write(*,'(A60)') '-------------------------------------------------' - do iEns=1,nEns - write(*,'(A40,I2,A2,F16.10,A3)') ' Individual energy state ',iEns,': ',E(iEns) + ENuc,' au' - end do - write(*,'(A60)') '-------------------------------------------------' + write(*,'(A60)') '-------------------------------------------------' + write(*,'(A60)') ' IP and EA FROM INDIVIDUAL ENERGIES ' + write(*,'(A60)') '-------------------------------------------------' + do iEns=1,nEns + write(*,'(A40,I2,A2,F16.10,A3)') ' Individual energy state ',iEns,': ',E(iEns) + ENuc,' au' + end do + write(*,'(A60)') '-------------------------------------------------' - write(*,'(A43,F16.10,A4)') ' Ionization Potential 1 -> 2:',Om(2), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',Omx(2), ' au' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',Omc(2), ' au' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',Omxc(2), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2),' au' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-Om(3), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',-Omx(3), ' au' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',-Omc(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',-Omxc(3), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-OmxDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-OmcDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-OmxcDD(3),' au' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Fundamental Gap :',Om(2)+Om(3), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',Omx(2)+Omx(3), ' au' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',Omc(2)+Omc(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',Omxc(2)+Omxc(3), ' au' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2)+OmxDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2)+OmcDD(3), ' au' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2)+OmxcDD(3),' au' - write(*,*) - - write(*,'(A60)') '-------------------------------------------------' - - write(*,'(A43,F16.10,A4)') ' Ionization Potential 1 -> 2:',Om(2)*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',Omx(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',Omc(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',Omxc(2)*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(2)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(2)*HaToeV,' eV' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-Om(3)*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',-Omx(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',-Omc(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',-Omxc(3)*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-OmxDD(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-OmcDD(3)*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-OmxcDD(3)*HaToeV,' eV' - write(*,*) - write(*,'(A43,F16.10,A4)') ' Fundamental Gap :',(Om(2)+Om(3))*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x energy contribution : ',(Omx(2)+Omx(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c energy contribution : ',(Omc(2)+Omc(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',(Omxc(2)+Omxc(3))*HaToeV, ' eV' - write(*,*) - write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',(OmxDD(2)+OmxDD(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',(OmcDD(2)+OmcDD(3))*HaToeV, ' eV' - write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',(OmxcDD(2)+OmxcDD(3))*HaToeV,' eV' - write(*,*) + do iEns=2,nEns + write(*,'(A40,I2,A1,F16.10,A3)') ' Energy difference 1 -> ',iEns,':',Om(iEns), ' au' + write(*,*) + write(*,'(A44, F16.10,A3)') ' x energy contribution : ',Omx(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' c energy contribution : ',Omc(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',Omxc(iEns), ' au' + write(*,*) + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(iEns), ' au' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(iENs),' au' + write(*,*) - write(*,'(A60)') '-------------------------------------------------' - - write(*,*) + write(*,'(A60)') '-------------------------------------------------' + + write(*,'(A40,I2,A1,F16.10,A3)') ' Energy difference 1 -> ',iEns,':',Om(iEns)*HaToeV, ' eV' + write(*,*) + write(*,'(A44, F16.10,A3)') ' x energy contribution : ',Omx(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c energy contribution : ',Omc(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',Omxc(iEns)*HaToeV, ' eV' + write(*,*) + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',OmxDD(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',OmcDD(iEns)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',OmxcDD(iEns)*HaToeV,' eV' + write(*,*) + end do + write(*,'(A60)') '-------------------------------------------------' + write(*,*) end subroutine print_unrestricted_individual_energy