3 # Writen by Dawid Jagieła and Adam Sieradzan
4 # and Cezary Czaplewski
7 #----------------------------------------
10 if [[ "$2" =~ "MPI" ]]; then
12 file_stat=$1_GB000.stat
14 file=$1.out_GB # Output file to search energy value from
18 if [ "$1" == "prota_ENE" ]; then
19 extremediff="10000.0" # extreme energy difference, comething went terribly wrong
20 expectenergy="-56066670.000000" # expected total energy
21 cutoffdiff="0.1" # energy cutoff variation - more then this rises warning
22 elif [ "$1" == "prota_MIN_CART" ]; then
23 extremediff="10.0" # extreme energy difference, comething went terribly wrong
24 expectenergy="123.8713" # expected total energy
25 cutoffdiff="0.1" # energy cutoff variation - more then this rises warning
27 sumsl_return=`grep SUMSL $file|awk '{print $4}'`
28 echo 'SUMSL return code' $sumsl_return
29 if [ "$sumsl_return" != "4" ]; then
30 echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
33 elif [ "$1" == "1l2y_MIN_INT" ]; then
34 extremediff="10.0" # extreme energy difference, comething went terribly wrong
35 expectenergy="-49.435" # expected total energy
36 cutoffdiff="0.1" # energy cutoff variation - more then this rises warning
38 sumsl_return=`grep SUMSL $file|awk '{print $4}'`
39 echo 'SUMSL return code' $sumsl_return
40 if [ "$sumsl_return" != "4" ]; then
41 echo 'ERROR = SUMSL return code' $sumsl_return 'is not 4'
44 elif [ "$1" == "1l2y_MIN_REGULAR_INT" ]; then
45 extremediff="10.0" # extreme energy difference, comething went terribly wrong
46 expectenergy="-1.192" # expected total energy
48 # something wrong with REGULAR and sometimes gives code 8 and different energy
49 # for now 8 is only warning and cutoffdiff is large
51 cutoffdiff="6.0" # energy cutoff variation - more then this rises warning
53 sumsl_return=`grep "SUMSL return code:" $file|awk '{print $4}'`
54 echo 'SUMSL return code' $sumsl_return
55 if [ "$sumsl_return" != "4" ]; then
56 echo 'WARNING = SUMSL return code' $sumsl_return 'is not 4'
59 elif [ "$1" == "1l2y_micro" ]; then
60 stat=`awk '{if ( $1 != "#" ) {n++;a=a+$5;a2=a2+$5^2}}END{print a/n,sqrt((a2-a^2/n)/n)}' $file_stat`
62 echo 'average total energy ' ${array[0]}
63 echo 'standard deviation ' ${array[1]}
64 if [ `echo "a=${array[0]}-103.162;if(0>a)a*=-1;a>5.0"|bc -l` != "0" ]; then
65 echo 'difference ' `echo "a=${array[0]}-103.162;if(0>a)a*=-1;a"|bc -l` 'from reference ave etot 103.162 greater than 5.0'
67 elif [ `echo "a=${array[1]};a>0.01"|bc -l` != "0" ]; then
68 echo 'standard deviation greater than 0.01'
73 elif [ "$1" == "1L2Y_L" ] || [ "$1" == "1L2Y_NH" ]; then
74 chi2=`./matplotlib_fit_hist.py $file_stat`
75 echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
76 echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
78 if [ `echo "a=${chi2};a>0.001"|bc -l` != "0" ]; then
79 echo 'chi2 greater than 0.001'
84 elif [ "$1" == "1L2Y_B" ]; then
85 chi2=`./matplotlib_fit_hist.py $file_stat`
86 echo 'Chi2 for fitting theoretical temperature distribution ' ${chi2}
87 echo "<DartMeasurementFile name=\"Temperature distribution $1\" type=\"image/png\">`pwd`/${file_stat}.png</DartMeasurementFile>"
89 if [ `echo "a=${chi2};a>0.01"|bc -l` != "0" ]; then
90 echo 'chi2 greater than 0.01'
97 elif [ "$1" == "1L2Y_remd" ]; then
99 tail -q -n +1000 1L2Y_remd*.stat >remd_all.stat
102 echo "<DartMeasurementFile name=\"Histograms $1\" type=\"image/png\">`pwd`/1L2Y_remd_ene_hist.png</DartMeasurementFile>"
103 echo "<DartMeasurementFile name=\"Energy $1\" type=\"image/png\">`pwd`/1L2Y_remd_Tene.png</DartMeasurementFile>"
104 grep ACC 1L2Y_remd.out_GB000 |tail -7
105 exchange=`grep ACC 1L2Y_remd.out_GB000 |tail -7|awk '{a=a+$4}END{print a/NR}'`
106 echo "average exchange = ${exchange}"
107 if [ `echo "a=${exchange};a<0.1"|bc -l` != "0" ]; then
108 echo 'ERROR average exchange smaller than 0.1'
121 echo $1 | sed -e 's/[eE]+/*10^/'
124 #---------------------------------------------------------------------------
126 #---------------------------------------------------------------------------
128 # Check if file exist
129 if [ ! -f $file ]; then
130 echo "CRITICAL: out file do not exist"
134 # Check if energy value is not a number
135 grepene=`grep ETOT $file|tail -1| awk '{print $2}'`
136 if [[ $grepene == "NaN" ]]; then
137 echo "CRITICAL: energy is NaN"
141 # Check if energy value is extremely different from expected
142 blaene=`floating $grepene`
143 myene=`echo $blaene |bc`
144 diff=`echo $myene"+("$expectenergy")"|bc`
145 absdiff=`echo $diff| sed 's/-//'`
147 true1=`echo "$absdiff >= $extremediff"|bc`
148 if [ $true1 -eq 1 ]; then
149 echo "CRITICAL: energy is loo large $absdiff, ene= $myene"
153 # Check if Energy value is as expected
154 true2=`echo "$absdiff<=$cutoffdiff"|bc`
155 if [ $true2 -eq 1 ]; then
156 echo "OK: absdiff= $absdiff, ene= $myene"
159 echo "WARNING: energy is somewhat different $absdiff, ene= $myene"