security checkin: save fullct mig script
[physik/posic.git] / vasp_tools / mig_fullct.sh
1 #!/bin/bash
2
3 # migration
4
5 if [ ! -f POSCAR.init ]; then
6         echo "no initial configuration file, aborting ..."
7         exit
8 fi
9
10 if [ ! -f POSCAR.final ]; then
11         echo "no final configuration file, aborting ..."
12         exit
13 fi
14
15 echo "Info:"
16 echo $LANG
17 bash --version
18 echo
19 echo
20
21 ((steps=10))
22 ((count=1))
23 ((offset=8))
24
25 while [ $count -le $steps ]; do
26
27         cnt=`printf "%02d" $count`
28
29         # create the POSCAR file
30         if [ $count -eq 1 ]; then
31                 cp -v POSCAR.init CONTCAR
32         fi
33
34         srcfile=CONTCAR
35         sed -n 1,6p $srcfile > POSCAR
36         echo "Transformed selective dynamics" >> POSCAR
37         echo "Direct" >> POSCAR
38         sicnt=`sed -n 6p $srcfile | awk '{ print $1 }'`
39         ccnt=`sed -n 6p $srcfile | awk '{ print $2 }'`
40         ((tot=sicnt+ccnt))
41
42         ((acnt=1))
43         while [ $acnt -le $tot ]; do
44                 ((lcnt=acnt+offset))
45                 line="`sed -n ${lcnt}p $srcfile`"
46                 xo=`echo $line | awk '{ print $1 }'`
47                 yo=`echo $line | awk '{ print $2 }'`
48                 zo=`echo $line | awk '{ print $3 }'`
49                 line="`sed -n ${lcnt}p POSCAR.final`"
50                 xn=`echo $line | awk '{ print $1 }'`
51                 yn=`echo $line | awk '{ print $2 }'`
52                 zn=`echo $line | awk '{ print $3 }'`
53
54                 echo "$xo $yo $zo $xn $yn $zn $count $steps" | awk '{
55                         if($1<0) xo=$1+1.0
56                         else xo=$1
57                         if($2<0) yo=$2+1.0
58                         else yo=$2
59                         if($3<0) zo=$3+1.0
60                         else zo=$3
61                         if($4<0) xn=$4+1.0
62                         else xn=$4
63                         if($5<0) yn=$5+1.0
64                         else yn=$5
65                         if($6<0) zn=$6+1.0
66                         else zn=$6
67                         dx=xn-xo
68                         if(dx>0.5) dx-=1.0;
69                         if(dx<-0.5) dx+=1.0;
70                         dy=yn-yo
71                         if(dy>0.5) dy-=1.0;
72                         if(dy<-0.5) dy+=1.0;
73                         dz=zn-zo
74                         if(dz>0.5) dz-=1.0;
75                         if(dz<-0.5) dz+=1.0;
76                         zrot=180.0*atan2(dx,dy)/3.14159265
77                         xrot=-180.0*atan2(dz,sqrt(dx^2+dy^2))/3.14159265
78                         frac=1.0/($8-$7+1)
79                         x=xo+dx*frac
80                         y=yo+dy*frac
81                         z=zo+dz*frac
82                         print " " x " " y " " z " T F T " zrot " " xrot
83                 }' >> POSCAR
84
85                 ((acnt+=1))
86         done
87
88         echo
89         echo
90         echo "run simulation $cnt ..."
91         echo
92         echo
93         ../vasp.4.6-gamma-fullct/vasp
94
95         cp -v POSCAR POSCAR.${cnt}
96         cp -v CONTCAR CONTCAR.${cnt}
97         cp -v OUTCAR OUTCAR.${cnt}
98
99         ((count+=1))
100 done
101