File: test_extracharges.sh

package info (click to toggle)
ergo 3.5-1
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 17,044 kB
  • ctags: 6,813
  • sloc: cpp: 91,488; ansic: 15,728; sh: 6,416; makefile: 1,287; yacc: 123; lex: 108
file content (104 lines) | stat: -rwxr-xr-x 3,020 bytes parent folder | download
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
#!/bin/sh

currtestdirname=tmpdir_test_extracharges

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
    exit 0
fi

errorfilename=ergoscf.out.error.extracharges


echo

echo '1'                         > temp_molecule.xyz
echo ''                         >> temp_molecule.xyz
echo 'H        0.0   0.0   0.0' >> temp_molecule.xyz

echo '1'                         > temp_extra_charges.xyz
echo ''                         >> temp_extra_charges.xyz
echo 'H        0.0   0.0   0.5' >> temp_extra_charges.xyz

echo Testing H2 HF/cc-pVTZ with one of the H atoms given as "extra charge"
rm -f ergoscf.out
./ergo -m temp_molecule.xyz -c temp_extra_charges.xyz -g temp_extra_charges.xyz <<EOINPUT > /dev/null
basis = "cc-pVTZ"
ghost_basis = "cc-pVTZ"
charge = -1
extra_charges_atom_charge_h = 1
run "HF"
EOINPUT
if 
# Use reference energy corrected for missing nuclear_repulsion_energy
check_final_energy -2.12166118866 1e-7 ; 
then
echo OK
else
echo ERROR
mv ergoscf.out $errorfilename
echo output file saved as $errorfilename
exit 1
fi


echo

echo '3'                                                     > temp_molecule.xyz
echo ''                                                     >> temp_molecule.xyz
echo 'O        0.457627840    -0.311951930     0.082447166' >> temp_molecule.xyz
echo 'H        0.457627840     0.594655950    -0.201387561' >> temp_molecule.xyz
echo 'H       -0.302917789    -0.472814751     0.628518998' >> temp_molecule.xyz

echo '3'                                                     > temp_extra_charges.xyz
echo ''                                                     >> temp_extra_charges.xyz
echo 'O       -0.463040796     0.126316403     2.021879464' >> temp_extra_charges.xyz
echo 'H       -0.463040796    -0.809137147     2.187489411' >> temp_extra_charges.xyz
echo 'H        0.381674058     0.386221704     1.673444396' >> temp_extra_charges.xyz

echo Testing two-h2o PBE0/3-21G with one of the molecules given as "extra charges"
rm -f ergoscf.out
./ergo -m temp_molecule.xyz -c temp_extra_charges.xyz -g temp_extra_charges.xyz <<EOINPUT > /dev/null
basis = "3-21G"
ghost_basis = "3-21G"
charge = -10
extra_charges_atom_charge_h = 1
extra_charges_atom_charge_o = 8
# make sure to use a grid that gives grid points where the density is; not only on atoms
XC.type="HICU"
XC.hicu_max_error = 1e-8
run "PBE0"
EOINPUT
if 
check_final_energy -186.35911209 5e-5 ; 
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 extra-charges tests completed successfully!
echo