]> www.hackdaworld.org Git - physik/posic.git/blob - vasp_tools/poscar2moldyn
save in src dir + app(endix)
[physik/posic.git] / vasp_tools / poscar2moldyn
1 #!/bin/bash
2
3 mkdir -p video
4
5 if [ -z $1 ]; then
6         file=POSCAR
7         app=""
8 else
9         file=$1
10         app=".`echo $file | awk -F. '{ print $2 }'`"
11 fi
12
13 echo "parsing $file file ..."
14
15 sicnt=`sed -n 6p $file | awk '{ print $1 }'`
16 ccnt=`sed -n 6p $file | awk '{ print $2 }'`
17
18 lc=`sed -n 2p $file | awk '{ print $1 }'`
19
20 x1=`sed -n 3p $file | awk '{ print $1 }'`
21 x2=`sed -n 3p $file | awk '{ print $2 }'`
22 x3=`sed -n 3p $file | awk '{ print $3 }'`
23
24 y1=`sed -n 4p $file | awk '{ print $1 }'`
25 y2=`sed -n 4p $file | awk '{ print $2 }'`
26 y3=`sed -n 4p $file | awk '{ print $3 }'`
27
28 z1=`sed -n 5p $file | awk '{ print $1 }'`
29 z2=`sed -n 5p $file | awk '{ print $2 }'`
30 z3=`sed -n 5p $file | awk '{ print $3 }'`
31
32 ((total=sicnt+ccnt))
33 ((eoa=total+8))
34
35 echo "  Si: $sicnt, C: $ccnt, total: $total"
36 echo "  Lattice constant: $lc A"
37 echo "  Basis:"
38 echo "      $x1      $y1      $z1"
39 echo "  x = $x2  y = $y2  z = $z2"
40 echo "      $x3      $y3      $z3"
41
42 cnt=0
43 tcnt=0
44
45 cx=1.0
46 cy=1.0
47 cz=0.8
48
49 echo "# P $total init <$cx,$cy,$cz>" > video/atomic_conf_init${app}.xyz
50
51 sed -n 9,${eoa}p $file | \
52         while read x y z fx fy fz; do
53                 type="Si"
54                 color="Yellow"
55                 if [ $cnt -ge $sicnt ]; then
56                         type="C"
57                         color="Gray"
58                 fi
59                 X=`echo $x $y $z $x1 $y1 $z1 | \
60                         awk '{ print $1*$4+$2*$5+$3*$6 }'`
61                 Y=`echo $x $y $z $x2 $y2 $z2 | \
62                         awk '{ print $1*$4+$2*$5+$3*$6 }'`
63                 Z=`echo $x $y $z $x3 $y3 $z3 | \
64                         awk '{ print $1*$4+$2*$5+$3*$6 }'`
65                 X=`echo $lc $X | awk '{ print $1*$2 }'`
66                 Y=`echo $lc $Y | awk '{ print $1*$2 }'`
67                 Z=`echo $lc $Z | awk '{ print $1*$2 }'`
68                 echo "$type $X $Y $Z $color 0.0" >> video/atomic_conf_init${app}.xyz
69                 ((cnt+=1))
70         done
71
72 echo "done"
73