Merge branch 'leadoff'
[physik/posic.git] / vasp_tools / poscar2moldyn
diff --git a/vasp_tools/poscar2moldyn b/vasp_tools/poscar2moldyn
new file mode 100755 (executable)
index 0000000..a4f2562
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+mkdir -p video
+
+if [ -z $1 ]; then
+       file=POSCAR
+       app=""
+else
+       file=$1
+       app=".`echo $file | awk -F. '{ print $2 }'`"
+fi
+
+echo "parsing $file file ..."
+
+sicnt=`sed -n 6p $file | awk '{ print $1 }'`
+ccnt=`sed -n 6p $file | awk '{ print $2 }'`
+
+lc=`sed -n 2p $file | awk '{ print $1 }'`
+
+x1=`sed -n 3p $file | awk '{ print $1 }'`
+x2=`sed -n 3p $file | awk '{ print $2 }'`
+x3=`sed -n 3p $file | 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"
+
+cnt=0
+tcnt=0
+
+cx=1.0
+cy=1.0
+cz=0.8
+
+echo "# P $total init <$cx,$cy,$cz>" > video/atomic_conf_init${app}.xyz
+
+sed -n 9,${eoa}p $file | \
+       while read x y z fx fy fz; do
+               type="Si"
+               color="Yellow"
+               if [ $cnt -ge $sicnt ]; then
+                       type="C"
+                       color="Gray"
+               fi
+               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 "done"
+