2 #------------------------------------------------
4 # Helper script that turns dmol file into points in syntax that can be
5 # used in a sketch input file.
6 # Sketch lives at http://www.frontiernet.net/~eugene.ressler/
8 # Copyright (C) Max J. Hoffmann 2009 mjhoffmann@gmail.com
10 # This program is free software: you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 3 of the License, or
13 # (at your option) any later version.
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU General Public License for more details.
20 # You should have received a copy of the GNU General Public License
21 # along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #------------------------------------------------
29 while getopts "i:h" optionName
31 case "${optionName}" in
32 h
) echo "Usage: ${0} -i DMOL_FILE > SKETCH_FILE" ;
39 #Exit with usage message if no input file is provided
46 #Find lines where atomic coordinates are stored
47 start_line
=$
(expr "$(grep -rin coordinates ${dmol} | cut -d ":" -f 1) + 1" |
bc -l)
48 end_line
=$
(expr "$(wc -l ${dmol} | awk '{print $1}' ) -1 " |
bc -l)
50 #Determine starting species
51 species
=$
(sed -n ${start_line}p ${dmol} | awk '{print $1}')
52 #Initialize atom counter
55 for line in $(seq ${start_line} ${end_line})
57 if [ "$(sed -n ${line}p ${dmol} | awk '{print $1}')" = "${species}" ]
59 atom_nr="$
(expr "${atom_nr}+1" |
bc -l)"
62 species="$
(sed -n ${line}p ${dmol} | awk '{print $1}')"
66 sed -n ${line}p ${dmol}| sed -e "s/\([^ ]*\)\s*\([0-9.-]*\)\s*\([0-9.-]*\)\s*\([0-9.-]*\)/def \1${atom_nr} (\2,\3,\4)/"