Skip to content

Instantly share code, notes, and snippets.

@jarvist
Created March 23, 2016 13:17
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jarvist/616c8c7c3ea576d03d73 to your computer and use it in GitHub Desktop.
Save jarvist/616c8c7c3ea576d03d73 to your computer and use it in GitHub Desktop.
Shell scripts to generate Delta-SCF calculations with Gaussian & extract results; see http://jarvist.github.io/post/2016-03-17-delta-scf/
#!/bin/sh
# delta_SCF_extract_values.sh - extract values from Delta-SCF Gaussian calculations
for i in *neutral.log
do
# Kohn-Sham HOMO/LUMO from the 'neutral' Gaussian calculation
HOMO=` grep "occ" "${i}" | tail -n 1 | awk '{print $NF*27.2114}' `
LUMO=` grep "virt" "${i}" | head -n 1 | awk '{print $5*27.2114}' `
KSGAP=` echo "${LUMO} - ${HOMO}" | bc -l `
echo -n "${i} HOMO: ${HOMO} LUMO: ${LUMO} KSGAP: ${KSGAP} "
# These are the Delta-SCF total energies; from 'SCF Done' line in Gaussian output
neutral=` grep "SCF Done" "${i}" | awk '{print $5}' `
cation=` grep "SCF Done" "${i/neutral/cation}" | awk '{print $5}' `
anion=` grep "SCF Done" "${i/neutral/anion}" | awk '{print $5}' `
# Calculate IP and EA with maths & scale to eV
IP=` echo "(${cation} - ${neutral} ) * 27.2114" | bc -l `
EA=` echo "(${neutral} - ${anion} ) * 27.2114" | bc -l `
echo -n "IonisationPotential: ${IP} ElectronAffinity: ${EA} "
echo -n "FundamentalGap: "
echo "${IP} - ${EA}" | bc -l
done
#!/bin/sh
# extract_list_geoms.sh
# give a list of Gaussian .logs; extract geoms to filename.xyz
for i
do
echo "${i}"
jkp_extract_geom.awk "${i}" > "${i%.*}.xyz"
done
#!/bin/sh
cat > HEADER <<EOF
%nprocshared=24
#p sp b3lyp/6-31g* SCF(Tight,Conver=8) Integral(Grid=UltraFine)
Auto-Delta-SCF Job; via g09_xyz_to_delta_SCF_coms_standalone.sh
EOF
for i
do
echo "Conjuring ${i}..."
cat HEADER > "${i%.*}-neutral.com"
echo "0 1" >> "${i%.*}-neutral.com"
cat "${i}" >> "${i%.*}-neutral.com"
echo >> "${i%.*}-neutral.com"
cat HEADER > "${i%.*}-anion.com"
echo "-1 2" >> "${i%.*}-anion.com"
cat "${i}" >> "${i%.*}-anion.com"
echo >> "${i%.*}-anion.com"
cat HEADER > "${i%.*}-cation.com"
echo "+1 2" >> "${i%.*}-cation.com"
cat "${i}" >> "${i%.*}-cation.com"
echo >> "${i%.*}-cation.com"
done
#! /bin/awk -f
BEGIN{j=0
at_symbol[0]="Bq"
at_symbol[1]="H"
at_symbol[2]="He"
at_symbol[3]="Li"
at_symbol[4]="Be"
at_symbol[5]="B"
at_symbol[6]="C"
at_symbol[7]="N"
at_symbol[8]="O"
at_symbol[9]="F"
at_symbol[10]="Ne"
at_symbol[11]="Na"
at_symbol[12]="Mg"
at_symbol[13]="Al"
at_symbol[14]="Si"
at_symbol[15]="P"
at_symbol[16]="S"
at_symbol[17]="Cl"
at_symbol[18]="Ar"
at_symbol[19]="K"
at_symbol[20]="Ca"
at_symbol[21]="Sc"
at_symbol[22]="Ti"
at_symbol[23]="V"
at_symbol[24]="Cr"
at_symbol[25]="Mn"
at_symbol[26]="Fe"
at_symbol[27]="Co"
at_symbol[28]="Ni"
at_symbol[29]="Cu"
at_symbol[30]="Zn"
at_symbol[31]="Ga"
at_symbol[32]="Ge"
at_symbol[33]="As"
at_symbol[34]="Se"
at_symbol[35]="Br"
at_symbol[36]="Kr"
at_symbol[46]="Pd"
at_symbol[47]="Ag"
at_symbol[48]="Cd"
at_symbol[50]="Sn"
at_symbol[51]="Sb"
at_symbol[53]="I"
at_symbol[54]="Xe"
at_symbol[78]="Pt"
at_symbol[79]="Au"
at_symbol[80]="Hg"
at_symbol[81]="Tl"
at_symbol[82]="Pb"
at_symbol[83]="Bi"
}
{
if (($1=="Standard" && $2=="orientation:") || ($1 == "Z-Matrix" && $2 == "orientation:")) {
getline
getline
getline
getline
getline
i=0
while (NF!=1) {
i++
at[i]=$2
if (NF==5) {
x[i]=$3
y[i]=$4
z[i]=$5
}
else {
x[i]=$4
y[i]=$5
z[i]=$6
}
getline
}
}
if ($1=="SCF" && $2=="Done:") {
energy=$5
j++
}
}
END{
for (k=1;k<=i;k++) {
print at_symbol[at[k]], x[k], y[k], z[k]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment