1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
|
#!/bin/sh
currtestdirname=tmpdir_test_dft_hybrid
if test "$top_builddir" = ""; then
top_builddir=..
fi
if test "$top_srcdir" = ""; then
top_srcdir=..
fi
. "$top_srcdir"/test/functions
# Run each test in a separate directory, to allow "make check -j" to work properly.
currdir=`pwd` ; cd $top_builddir ; top_builddir_pwd=`pwd` ; cd $currdir
rm -rf $currtestdirname ; mkdir $currtestdirname ; cd $currtestdirname
ln -s "$top_builddir_pwd"/source/ergo ./ergo
if test `./ergo -e precision` = 'single'; then
echo SKIPPED
cd .. ; rm -r $currtestdirname
exit 0
fi
errorfilename=ergoscf.out.error.dfthybrid
echo
echo Testing h2o B3LYP/6-31G** using g03-style B3LYP
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline
O 0.0 0.0 0.0
H -1.809 0.0 0.0
H 0.453549 1.751221 0.0
EOF
basis = "6-31Gss"
XC.type="LMG"
XC.radint=1e-13
run "B3LYP-G"
EOINPUT
if
check_final_energy -76.4180487 1e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
echo Testing cnof B3LYP/6-31G using g03-style B3LYP
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline
C 0.0 0.0 0.0
N 1.3 0.2 0.4
O 1.5 -0.4 2.0
F -0.9 2.0 0.5
EOF
basis = "6-31G"
XC.type="Turbo"
XC.radint=1e-10
scf.convergence_threshold = 1e-6
run "B3LYP-G"
EOINPUT
if
check_final_energy -265.391329 1e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
echo Testing sih4 BHandHLYP/6-31G**
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline Angstrom
Si 0.0000 0.0000 0.0000
H 0.9385 0.9654 0.6265
H 0.7506 -1.2008 -0.4472
H -1.0315 -0.4013 0.9900
H -0.6575 0.6367 -1.1694
EOF
basis = "6-31Gss"
run "BHandHLYP"
EOINPUT
if
check_final_energy -291.857715 5e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
echo Testing sih3[-] UBHandHLYP/6-31G**
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline Angstrom
Si 0.0000 0.0000 0.0000
H 0.9385 0.9654 0.6265
H 0.7506 -1.2008 -0.4472
H -1.0315 -0.4013 0.9900
EOF
charge = -1
basis = "6-31Gss"
scf.force_unrestricted = 1
run "BHandHLYP"
EOINPUT
if
check_final_energy -291.223592 5e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
echo Testing sih3 UBHandHLYP/6-31G**
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline Angstrom
Si 0.0000 0.0000 0.0000
H 0.9385 0.9654 0.6265
H 0.7506 -1.2008 -0.4472
H -1.0315 -0.4013 0.9900
EOF
spin_polarization = 1
basis = "6-31Gss"
run "BHandHLYP"
EOINPUT
if
check_final_energy -291.2083758 5e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
echo Testing nh3[+] UB3LYP/6-31G** using g03-style B3LYP
rm -f ergoscf.out
./ergo <<EOINPUT > /dev/null
molecule_inline Angstrom
N 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.012316
H 0.969771 0.000000 -0.290392
H -0.390071 0.887881 -0.290336
EOF
charge = 1
spin_polarization = 1
basis = "6-31Gss"
run "B3LYP-G"
EOINPUT
if
check_final_energy -56.163575 1e-5 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
if
check_final_S2 0.752352 1e-6 ;
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi
cd ..
rm -r $currtestdirname
echo
echo Hybrid DFT tests completed successfully!
echo
|