care for appendices
[physik/posic.git] / vasp_tools / poscar2moldyn
index cb9fec0..a4f2562 100755 (executable)
@@ -2,28 +2,39 @@
 
 mkdir -p video
 
-echo "parsing POSCAR file ..."
+if [ -z $1 ]; then
+       file=POSCAR
+       app=""
+else
+       file=$1
+       app=".`echo $file | awk -F. '{ print $2 }'`"
+fi
 
-sicnt=`sed -n 6p POSCAR | awk '{ print $1 }'`
-ccnt=`sed -n 6p POSCAR | awk '{ print $2 }'`
+echo "parsing $file file ..."
 
-lc=`sed -n 2p POSCAR | awk '{ print $1 }'`
+sicnt=`sed -n 6p $file | awk '{ print $1 }'`
+ccnt=`sed -n 6p $file | awk '{ print $2 }'`
 
-x1=`sed -n 3p POSCAR | awk '{ print $1 }'`
-x2=`sed -n 3p POSCAR | awk '{ print $2 }'`
-x3=`sed -n 3p POSCAR | awk '{ print $3 }'`
+lc=`sed -n 2p $file | awk '{ print $1 }'`
 
-y1=`sed -n 4p POSCAR | awk '{ print $1 }'`
-y2=`sed -n 4p POSCAR | awk '{ print $2 }'`
-y3=`sed -n 4p POSCAR | awk '{ print $3 }'`
+x1=`sed -n 3p $file | awk '{ print $1 }'`
+x2=`sed -n 3p $file | awk '{ print $2 }'`
+x3=`sed -n 3p $file | awk '{ print $3 }'`
 
-z1=`sed -n 5p POSCAR | awk '{ print $1 }'`
-z2=`sed -n 5p POSCAR | awk '{ print $2 }'`
-z3=`sed -n 5p POSCAR | awk '{ print $3 }'`
+y1=`sed -n 4p $file | awk '{ print $1 }'`
+y2=`sed -n 4p $file | awk '{ print $2 }'`
+y3=`sed -n 4p $file | awk '{ print $3 }'`
+
+z1=`sed -n 5p $file | awk '{ print $1 }'`
+z2=`sed -n 5p $file | awk '{ print $2 }'`
+z3=`sed -n 5p $file | awk '{ print $3 }'`
 
 ((total=sicnt+ccnt))
+((eoa=total+8))
 
 echo "  Si: $sicnt, C: $ccnt, total: $total"
+echo "  Lattice constant: $lc A"
+echo "  Basis:"
 echo "      $x1      $y1      $z1"
 echo "  x = $x2  y = $y2  z = $z2"
 echo "      $x3      $y3      $z3"
@@ -35,9 +46,9 @@ cx=1.0
 cy=1.0
 cz=0.8
 
-echo "# P $total init <$cx,$cy,$cz>" > video/atomic_conf_init.xyz
+echo "# P $total init <$cx,$cy,$cz>" > video/atomic_conf_init${app}.xyz
 
-tail -${total} POSCAR | \
+sed -n 9,${eoa}p $file | \
        while read x y z fx fy fz; do
                type="Si"
                color="Yellow"
@@ -45,18 +56,18 @@ tail -${total} POSCAR | \
                        type="C"
                        color="Gray"
                fi
-               ((X=0))
-               ((Y=0))
-               ((Z=0))
-               X=`echo $X $x $y $z $x1 $y1 $z1 | \
-                       awk '{ print $1+($2*$5)+($3*$6)+($4*$7) }'`
-               Y=`echo $Y $x $y $z $x2 $y2 $z2 | \
-                       awk '{ print $1+($2*$5)+($3*$6)+($4*$7) }'`
-               Z=`echo $Z $x $y $z $x3 $y3 $z3 | \
-                       awk '{ print $1+($2*$5)+($3*$6)+($4*$7) }'`
-               echo "$type $X $Y $Z $color 0.0" >> video/atomic_conf_init.xyz
+               X=`echo $x $y $z $x1 $y1 $z1 | \
+                       awk '{ print $1*$4+$2*$5+$3*$6 }'`
+               Y=`echo $x $y $z $x2 $y2 $z2 | \
+                       awk '{ print $1*$4+$2*$5+$3*$6 }'`
+               Z=`echo $x $y $z $x3 $y3 $z3 | \
+                       awk '{ print $1*$4+$2*$5+$3*$6 }'`
+               X=`echo $lc $X | awk '{ print $1*$2 }'`
+               Y=`echo $lc $Y | awk '{ print $1*$2 }'`
+               Z=`echo $lc $Z | awk '{ print $1*$2 }'`
+               echo "$type $X $Y $Z $color 0.0" >> video/atomic_conf_init${app}.xyz
                ((cnt+=1))
        done
 
-echo
+echo "done"