From d1c24948ddf3503ec971fb308933b90ae175fb18 Mon Sep 17 00:00:00 2001 From: Clotilde Marut Date: Thu, 9 Jul 2020 10:44:19 +0200 Subject: [PATCH] correction of EA sign and added Fundamental Gap in the print --- input/basis | 30 +++++-- input/dft | 6 +- input/weight | 30 +++++-- scripts/scan_w.sh | 63 -------------- .../print_unrestricted_individual_energy.f90 | 83 +++++++++++++------ 5 files changed, 108 insertions(+), 104 deletions(-) delete mode 100755 scripts/scan_w.sh diff --git a/input/basis b/input/basis index 6796e3b..cd6cb22 100644 --- a/input/basis +++ b/input/basis @@ -1,9 +1,25 @@ -1 3 -S 3 - 1 38.3600000 0.0238090 - 2 5.7700000 0.1548910 - 3 1.2400000 0.4699870 +1 10 +S 4 + 1 528.5000000 0.0009400 + 2 79.3100000 0.0072140 + 3 18.0500000 0.0359750 + 4 5.0850000 0.1277820 S 1 - 1 0.2976000 1.0000000 + 1 1.6090000 1.0000000 +S 1 + 1 0.5363000 1.0000000 +S 1 + 1 0.1833000 1.0000000 P 1 - 1 1.2750000 1.0000000 + 1 5.9940000 1.0000000 +P 1 + 1 1.7450000 1.0000000 +P 1 + 1 0.5600000 1.0000000 +D 1 + 1 4.2990000 1.0000000 +D 1 + 1 1.2230000 1.0000000 +F 1 + 1 2.6800000 1.0000000 + diff --git a/input/dft b/input/dft index 10f14d4..c738824 100644 --- a/input/dft +++ b/input/dft @@ -19,9 +19,9 @@ # Number of states in ensemble (nEns) 3 # Ensemble weights: wEns(1),...,wEns(nEns-1) - 1 0.0 + 0.00 0.00 # Parameters for CC weight-dependent exchange functional -0.000000 0.0000000 0.000000 -0.000000 0.0000000 0.0000000 +0.420243 0.0700561 -0.288301 +0.135068 -0.00774769 -0.0278205 # GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type 32 0.00001 T 5 1 1 diff --git a/input/weight b/input/weight index 6796e3b..cd6cb22 100644 --- a/input/weight +++ b/input/weight @@ -1,9 +1,25 @@ -1 3 -S 3 - 1 38.3600000 0.0238090 - 2 5.7700000 0.1548910 - 3 1.2400000 0.4699870 +1 10 +S 4 + 1 528.5000000 0.0009400 + 2 79.3100000 0.0072140 + 3 18.0500000 0.0359750 + 4 5.0850000 0.1277820 S 1 - 1 0.2976000 1.0000000 + 1 1.6090000 1.0000000 +S 1 + 1 0.5363000 1.0000000 +S 1 + 1 0.1833000 1.0000000 P 1 - 1 1.2750000 1.0000000 + 1 5.9940000 1.0000000 +P 1 + 1 1.7450000 1.0000000 +P 1 + 1 0.5600000 1.0000000 +D 1 + 1 4.2990000 1.0000000 +D 1 + 1 1.2230000 1.0000000 +F 1 + 1 2.6800000 1.0000000 + diff --git a/scripts/scan_w.sh b/scripts/scan_w.sh deleted file mode 100755 index de2d040..0000000 --- a/scripts/scan_w.sh +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/bash - -MOL=$1 -BASIS=$2 - -w_start=0.0 -w_end=1.0 -dw=0.1 - -w2=0.0 - -XF=$3 -CF=$4 - -aw1="0.000000 0.0000000 0.000000" -aw2="0.000000 0.0000000 0.0000000" - -DATA=${MOL}_${BASIS}_${XF}_${CF}.dat -rm $DATA -touch $DATA - -for w1 in $(seq $w_start $dw $w_end) -do -### w2=${w1} - echo "# Restricted or unrestricted KS calculation" > input/dft - echo " eDFT-UKS" >> input/dft - echo "# exchange rung:" >> input/dft - echo "# Hartree = 0" >> input/dft - echo "# LDA = 1: RS51,RMFL20" >> input/dft - echo "# GGA = 2: RB88" >> input/dft - echo "# Hybrid = 4" >> input/dft - echo "# Hartree-Fock = 666" >> input/dft - echo " 1 $XF " >> input/dft - echo "# correlation rung: " >> input/dft - echo "# Hartree = 0" >> input/dft - echo "# LDA = 1: RVWN5,RMFL20" >> input/dft - echo "# GGA = 2: " >> input/dft - echo "# Hybrid = 4: " >> input/dft - echo "# Hartree-Fock = 666" >> input/dft - echo " 0 $CF " >> input/dft - echo "# quadrature grid SG-n" >> input/dft - echo " 1" >> input/dft - echo "# Number of states in ensemble (nEns)" >> input/dft - echo " 3" >> input/dft - echo "# Ensemble weights: wEns(1),...,wEns(nEns-1)" >> input/dft - echo " ${w1} ${w2} " >> input/dft - echo "# Parameters for CC weight-dependent exchange functional" >> input/dft - echo ${aw1} >> input/dft - echo ${aw2} >> input/dft - echo "# GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type" >> input/dft - echo " 32 0.00001 T 5 1 1" >> input/dft - OUTPUT=${MOL}_${BASIS}_${XF}_${CF}_${w1}.out - ./GoXC $MOL $BASIS > ${OUTPUT} - Ew=`grep "Ensemble energy:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'` - E0=`grep "Individual energy state 1:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'` - E1=`grep "Individual energy state 2:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'` - E2=`grep "Individual energy state 3:" ${OUTPUT} | cut -d":" -f 2 | sed 's/au//'` - IP=`grep "Ionization Potential" ${OUTPUT} | grep " au" | tail -1 | cut -d":" -f 2 | sed 's/au//'` - EA=`grep "Electronic Affinity" ${OUTPUT} | grep " au" | tail -1 | cut -d":" -f 2 | sed 's/au//'` - echo $w1 $w2 $Ew $E0 $E1 $E2 $IP $EA - echo $w1 $w2 $Ew $E0 $E1 $E2 $IP $EA >> ${DATA} -done - diff --git a/src/eDFT/print_unrestricted_individual_energy.f90 b/src/eDFT/print_unrestricted_individual_energy.f90 index fa4f3cc..4c3db11 100644 --- a/src/eDFT/print_unrestricted_individual_energy.f90 +++ b/src/eDFT/print_unrestricted_individual_energy.f90 @@ -147,12 +147,19 @@ subroutine print_unrestricted_individual_energy(nEns,ENuc,Ew,ET,EV,EJ,Ex,Ec,Exc, 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(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-1.d0*(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(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',-1.d0*Omaux(3), ' au' + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-1.d0*OmxDD(3), ' au' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-1.d0*OmcDD(3), ' au' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-1.d0*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(*,*) write(*,'(A60)') '-------------------------------------------------' @@ -165,12 +172,19 @@ subroutine print_unrestricted_individual_energy(nEns,ENuc,Ew,ET,EV,EJ,Ex,Ec,Exc, 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(*,'(A40,F16.10,A3)') ' Electronic Affinity 1 -> 3:',-1.d0*(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(*,'(A44, F16.10,A3)') ' auxiliary energy contribution : ',-1.d0*Omaux(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-1.d0*OmxDD(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-1.d0*OmcDD(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-1.d0*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(*,'(A60)') '-------------------------------------------------' @@ -194,15 +208,25 @@ subroutine print_unrestricted_individual_energy(nEns,ENuc,Ew,ET,EV,EJ,Ex,Ec,Exc, 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(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-1.d0*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(*,'(A44, F16.10,A3)') ' x energy contribution : ',-1.d0*Omx(3), ' au' + write(*,'(A44, F16.10,A3)') ' c energy contribution : ',-1.d0*Omc(3), ' au' + write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',-1.d0*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(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-1.d0*OmxDD(3), ' au' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-1.d0*OmcDD(3), ' au' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-1.d0*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)') '-------------------------------------------------' @@ -217,16 +241,27 @@ subroutine print_unrestricted_individual_energy(nEns,ENuc,Ew,ET,EV,EJ,Ex,Ec,Exc, 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(*,'(A43,F16.10,A4)') ' Electronic Affinity 1 -> 3:',-1.d0*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(*,'(A44, F16.10,A3)') ' x energy contribution : ',-1.d0*Omx(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c energy contribution : ',-1.d0*Omc(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc energy contribution : ',-1.d0*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(*,'(A44, F16.10,A3)') ' x ensemble derivative : ',-1.d0*OmxDD(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' c ensemble derivative : ',-1.d0*OmcDD(3)*HaToeV, ' eV' + write(*,'(A44, F16.10,A3)') ' xc ensemble derivative : ',-1.d0*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(*,*) + write(*,'(A60)') '-------------------------------------------------'