#!/bin/csh -f

echo "*******************"
echo "*   Raw results   *"
echo "*******************"
echo ""

echo "Raw no charge self-consistency results:"
echo -n "energy of bulk "
fgrep Energy output.parallel.no_SC | head -1 | awk '{print $3}'
echo -n "energy with surface "
fgrep Energy output.parallel.no_SC | tail -1 | awk '{print $3}'
echo "bulk virial (xx xy xz yx yy yz zx zy zz)"
fgrep Virial output.parallel.no_SC | head -1 | sed 's/Virial =[ ]*//'
echo "surface virial (xx xy xz yx yy yz zx zy zz)"
fgrep Virial output.parallel.no_SC | tail -1 | sed 's/Virial =[ ]*//'

echo ""
echo "Raw charge self-consistent results:"
echo "self-consistency convergence process:"
egrep ' 0:.*residual' output.parallel.SC
echo -n "energy of bulk "
fgrep Energy output.parallel.SC | head -1 | awk '{print $3}'
echo -n "energy with surface "
fgrep Energy output.parallel.SC | tail -1 | awk '{print $3}'
echo "bulk virial (xx xy xz yx yy yz zx zy zz)"
fgrep Virial output.parallel.SC | head -1 | sed 's/Virial =[ ]*//'
echo "surface virial (xx xy xz yx yy yz zx zy zz)"
fgrep Virial output.parallel.SC | tail -1 | sed 's/Virial =[ ]*//'

echo ""

echo "*************************"
echo "*   Processed results   *"
echo "*************************"
echo ""

echo -n "non charge self-consistent surface energy (eV/111 unit cell) "
set eb = `fgrep Energy output.parallel.no_SC | head -1 | awk '{print $3}'`
set es = `fgrep Energy output.parallel.no_SC | tail -1 | awk '{print $3}'`
echo "scale=3; ($es-$eb)/2.0" | bc -l
echo -n "charge self-consistent surface energy (eV/111 unit cell)     "
set eb = `fgrep Energy output.parallel.SC | head -1 | awk '{print $3}'`
set es = `fgrep Energy output.parallel.SC | tail -1 | awk '{print $3}'`
echo "scale=3; ($es-$eb)/2.0" | bc -l
echo ""

echo -n "non charge self-consistent surface stress (eV/111 unit cell) "
set vxxb = `fgrep Virial output.parallel.no_SC | head -1 | awk '{print $3}'`
set vxxs = `fgrep Virial output.parallel.no_SC | tail -1 | awk '{print $3}'`
set vyyb = `fgrep Virial output.parallel.no_SC | head -1 | awk '{print $7}'`
set vyys = `fgrep Virial output.parallel.no_SC | tail -1 | awk '{print $7}'`
echo -n `echo "scale=3; ($vxxs - $vxxb)/2.0" | bc -l` " "
echo `echo "scale=3; ($vyys - $vyyb)/2.0" | bc -l`

echo -n "charge self-consistent surface stress (eV/111 unit cell)     "
set vxxb = `fgrep Virial output.parallel.SC | head -1 | awk '{print $3}'`
set vxxs = `fgrep Virial output.parallel.SC | tail -1 | awk '{print $3}'`
set vyyb = `fgrep Virial output.parallel.SC | head -1 | awk '{print $7}'`
set vyys = `fgrep Virial output.parallel.SC | tail -1 | awk '{print $7}'`
echo -n `echo "scale=3; ($vxxs - $vxxb)/2.0" | bc -l` " "
echo `echo "scale=3; ($vyys - $vyyb)/2.0" | bc -l`


echo "*************************"
echo "*        TIMING         *"
echo "*************************"
set dt1 = `fgrep 'TOTAL TIME' output.parallel.SC | awk '{print $5}' | sort -k1nr | head -1`
set dt2 = `fgrep 'TOTAL TIME' output.parallel.no_SC | awk '{print $5}' | sort -k1nr | head -1`

set dt = `echo $dt1 + $dt2 | bc -l`

echo "Running time $dt2 + $dt1 = $dt s"
