#!/bin/sh #------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. # # OpenFOAM is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with OpenFOAM; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # Script # Allrun # # Description # #------------------------------------------------------------------------------ . RunFunctions applications=\ " \ icoFoam \ turbFoam \ simpleFoam \ icoDyMFoam \ nonNewtonianIcoFoam \ boundaryFoam \ interFoam \ lesInterFoam \ rasInterFoam \ multiphaseInterFoam \ buoyantSimpleFoam \ buoyantFoam \ potentialFoam \ laplacianFoam \ scalarTransportFoam \ oodles \ coodles \ channelOodles \ dnsFoam \ mhdFoam \ electrostaticFoam \ financialFoam \ sonicFoam \ rhoSonicFoam \ rhopSonicFoam \ sonicLiquidFoam \ sonicTurbFoam \ solidDisplacementFoam \ solidEquilibriumDisplacementFoam \ XiFoam \ Xoodles \ dieselFoam \ engineFoam \ bubbleFoam \ twoPhaseEulerFoam \ settlingFoam \ rhoExplicitPorousSimpleFoam \ rhoImplicitPorousSimpleFoam \ rhoTurbFoam \ cavitatingFoam \ MRFSimpleFoam \ interDyMFoam \ " logReport () { case=`dirname $1 | sed s/"\(.*\)\.\/"/""/g` app=`echo $1 | sed s/"\(.*\)\."/""/g` appAndCase="Application $app - case $case" fatalError=`grep "FOAM FATAL" $1` UxSS=`grep -E "Ux[:| ]*solution singularity" $1` UySS=`grep -E "Uy[:| ]*solution singularity" $1` UzSS=`grep -E "Uz[:| ]*solution singularity" $1` completed=`grep -E "^[\t ]*[eE]nd" $1` if [ "$fatalError" ] ; then echo "$appAndCase: ** FOAM FATAL ERROR **" return elif [ "$UxSS" -a "$UySS" -a "$UzSS" ] ; then echo "$appAndCase: ** Solution singularity **" return elif [ "$completed" ] ; then completionTime=`tail -10 $log | grep Execution | cut -d= -f2 | sed 's/^[ \t]*//'` if [ "$completionTime" ] ; then completionTime="in $completionTime" fi echo "$appAndCase: completed $completionTime" return else echo "$appAndCase: unconfirmed completion" fi } rm testLoopReport > /dev/null 2>&1 & touch testLoopReport for application in $applications do cd $application ./Allrun # echo "$application application completed" >> ../testLoopReport for log in `find . -name "log.*" | xargs ls -rt` do logReport $log >> ../testLoopReport done echo "" >> ../testLoopReport cd .. done find . -name "log.*" -exec cat {} \; >> logs #------------------------------------------------------------------------------