]> hackdaworld.org Git - physik/posic.git/blob - vasp_tools/constraint_mig_script
added sip and dist calc for vasp results
[physik/posic.git] / vasp_tools / constraint_mig_script
1 #!/bin/bash
2
3 # migration
4
5 fx=0.1667178996794456
6 fy=0.1667178996794456
7 fz=0.0655951877086257
8
9 ((steps=20))
10 ((count=0))
11
12 while [ $count -lt $steps ]; do
13
14         cnt=`printf "%02d" $count`
15
16         echo
17         echo
18         echo "run simulation $cnt ..."
19         [ $count != 0 ] &&
20                 echo "  c atom at: `sed -n 226p CONTCAR`"
21         echo
22         echo
23         ../vasp.4.6-gamma-ct/vasp
24
25         cp POSCAR POSCAR.${cnt}
26         cp CONTCAR CONTCAR.${cnt}
27         cp OUTCAR OUTCAR.${cnt}
28
29         ltm="`sed -n 226p CONTCAR`"
30         val1=`echo $ltm | awk '{ print $1 }'`
31         val2=`echo $ltm | awk '{ print $2 }'`
32         val3=`echo $ltm | awk '{ print $3 }'`
33         val4=`echo $ltm | awk '{ print $4 }'`
34         val5=`echo $ltm | awk '{ print $5 }'`
35         val6=`echo $ltm | awk '{ print $6 }'`
36
37         ((rest=steps-count))
38
39         nx=`echo $val1 $fx $rest | awk '{ print $1+($2-$1)/$3 }'`
40         ny=`echo $val2 $fy $rest | awk '{ print $1+($2-$1)/$3 }'`
41         nz=`echo $val3 $fz $rest | awk '{ print $1+($2-$1)/$3 }'`
42
43         sed "s%$ltm%  $nx $ny $nz $val4 $val5 $val6%" CONTCAR > POSCAR
44
45         echo
46         echo "simulation $cnt end"
47         echo "  c atom now at: `sed -n 226p CONTCAR`"
48         echo "  dis x: `echo $val1 $fx $rest | awk '{ print ($2-$1)/$3 }'`"
49         echo "  dis y: `echo $val2 $fy $rest | awk '{ print ($2-$1)/$3 }'`"
50         echo "  dis z: `echo $val3 $fz $rest | awk '{ print ($2-$1)/$3 }'`"
51         echo
52
53         newline="`echo $val1 $fx $val2 $fy $val3 $fz | awk '\
54         BEGIN {
55                 zrot=0; xrot=0; xyd=0; x=0; y=0; z=0;
56         }
57         {
58                 x=$2-$1; y=$4-$3; z=$6-$5;
59                 zrot=180.0*atan2(x,y)/3.14159265;
60                 xyd=sqrt(x^2+y^2);
61                 xrot=-180.0*atan2(z,xyd)/3.14159265;
62                 print zrot " " xrot
63         }'`"
64
65         ltm="`sed -n 8p POSCAR`"
66         echo "info:"
67         echo "$ltm"
68         echo "->"
69         echo "$newline"
70         sed -i "s%$ltm%$newline%" POSCAR
71
72         ((count+=1))
73 done
74