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