mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-28 02:00:59 -06:00
70 lines
1.9 KiB
Bash
Executable File
70 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# This will perform some analysis on a failed restart/init
|
|
# comparisons in a regression tests.
|
|
|
|
# Analyze restart/init test failure.
|
|
# - Print failed keywords
|
|
# - Print maximum deviations for each keyword
|
|
analyzeEclFailure() {
|
|
kwds=`cat $KWTMPFILE | tr '\n' ' ' | sed -e 's/.*Common keywords for the two cases:\(.*\)Uncommon.*/\1/'`
|
|
TMPFILE=$(mktemp)
|
|
allok=1
|
|
for kwd in $kwds
|
|
do
|
|
${COMPARE_ECL_COMMAND} -n -l -k ${kwd} ${FILE1} ${FILE2} ${ABS_TOL} ${REL_TOL} &> ${TMPFILE}
|
|
nfailure=`cat ${TMPFILE} | grep "Deviations exceed tolerances" | wc -l`
|
|
if [ ${nfailure} -ne 0 ]
|
|
then
|
|
allok=0
|
|
echo "Failure for keyword ${kwd}"
|
|
echo -e "\t Fails for ${nfailure} entries"
|
|
alines=`cat $TMPFILE | grep "The absolute deviation is"`
|
|
IFS=$'\n'
|
|
abs=0
|
|
for line in $alines
|
|
do
|
|
abs_new=`echo $line| awk -F ' ' '{print $5}'`
|
|
abs_new=`echo ${abs_new} | sed -e 's/\.$//g' | awk '{printf sprintf("%.16f", $1); }'`
|
|
if [ `bc <<< "$abs_new>$abs"` -eq 1 ]
|
|
then
|
|
abs=$abs_new
|
|
fi
|
|
done
|
|
rlines=`cat $TMPFILE | grep "The relative deviation is"`
|
|
rel=0
|
|
for line in $rlines
|
|
do
|
|
rel_new=`echo $line| awk -F ' ' '{print $5}'`
|
|
rel_new=`echo ${rel_new} | sed -e 's/\.$//g' | awk '{printf sprintf("%.16f", $1); }'`
|
|
if [ `bc <<< "$rel_new>$rel"` -eq 1 ]
|
|
then
|
|
rel=$rel_new
|
|
fi
|
|
done
|
|
echo -e "\t Largest absolute deviation: `echo $abs | awk '{printf sprintf("%e", $1); }'`"
|
|
echo -e "\t Largest relative deviation: `echo $rel | awk '{printf sprintf("%e", $1); }'`"
|
|
fi
|
|
done
|
|
if [ $allok -eq 1 ]
|
|
then
|
|
echo "Comparisons pass for all common keywords."
|
|
fi
|
|
}
|
|
|
|
COMPARE_ECL_COMMAND=$1
|
|
TYPE=$2
|
|
FILE1=$3
|
|
FILE2=$4
|
|
ABS_TOL=$5
|
|
REL_TOL=$6
|
|
|
|
KWTMPFILE=$(mktemp)
|
|
${COMPARE_ECL_COMMAND} -t ${TYPE} -l -P ${FILE1} ${FILE2} ${ABS_TOL} ${REL_TOL} &> $KWTMPFILE
|
|
|
|
cat $KWTMPFILE
|
|
echo ""
|
|
|
|
analyzeEclFailure
|
|
|
|
rm -f $KWTMPFILE
|