From 555e3f71f602e9c84d40d54d6c1c26c94873cfcb Mon Sep 17 00:00:00 2001 From: Philippose Rajan Date: Tue, 2 Nov 2010 20:18:54 +0100 Subject: [PATCH] Modify RunFunctions to enable an optional custom log file name to be specified. new commandline: runApplication -l NOTE: This is a transparent change, and providing no "-l " argument reverts the script back to the default operational mode. Modified the Allrun script in the "cavitatingFoam/les" tutorial to use the new runApplication command. --- bin/tools/RunFunctions | 35 ++++++-- bin/tools/RunFunctions.old | 89 +++++++++++++++++++ .../multiphase/cavitatingFoam/les/Allrun | 4 +- 3 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 bin/tools/RunFunctions.old diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions index 0a2b21812..a8df1274c 100644 --- a/bin/tools/RunFunctions +++ b/bin/tools/RunFunctions @@ -36,26 +36,47 @@ getApplication () runApplication () { + LOG_NAME= + while getopts "l:" OPTFLAG ; do + LOG_NAME=$OPTARG + shift $((OPTIND-1)) ; OPTIND=1 + done + APP_RUN=$1; shift APP_NAME=${APP_RUN##*/} - if [ -f log.$APP_NAME ] ; then + if [ -z $LOG_NAME ] ; then + LOG_NAME=log.$APP_NAME + fi + + if [ -f $LOG_NAME ] ; then echo "$APP_NAME already run on $PWD: remove log file to run" else - echo "Running $APP_RUN on $PWD" - $APP_RUN $* > log.$APP_NAME 2>&1 + echo "Running $APP_NAME on $PWD" + $APP_RUN $* > $LOG_NAME 2>&1 fi } runParallel () { + LOG_NAME= + while getopts "l:" OPTFLAG ; do + LOG_NAME=$OPTARG + shift $((OPTIND-1)) ; OPTIND=1 + done + APP_RUN=$1; shift + APP_NAME=${APP_RUN##*/} - if [ -f $log.$APP_RUN ] ; then - echo "$APP_RUN already run on $PWD: remove log file to run" + if [ -z $LOG_NAME ] ; then + LOG_NAME=log.$APP_NAME + fi + + if [ -f $LOG_NAME ] ; then + echo "$APP_NAME already run on $PWD: remove log file to run" else - echo "Running $APP_RUN in parallel on $PWD using $1 processes" - ( mpirun -np $1 $APP_RUN -parallel < /dev/null > log.$APP_RUN 2>&1 ) + echo "Running $APP_NAME in parallel on $PWD using $1 processes" + ( mpirun -np $1 $APP_RUN -parallel < /dev/null > $LOG_NAME 2>&1 ) fi } diff --git a/bin/tools/RunFunctions.old b/bin/tools/RunFunctions.old new file mode 100644 index 000000000..0a2b21812 --- /dev/null +++ b/bin/tools/RunFunctions.old @@ -0,0 +1,89 @@ +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright held by original author +# \\/ 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 +# RunFunctions +# +# Description +# +#------------------------------------------------------------------------------ + +getApplication () +{ + grep application system/controlDict | sed "s/application *\([a-zA-Z]*\);/\1/" +} + +runApplication () +{ + APP_RUN=$1; shift + APP_NAME=${APP_RUN##*/} + + if [ -f log.$APP_NAME ] ; then + echo "$APP_NAME already run on $PWD: remove log file to run" + else + echo "Running $APP_RUN on $PWD" + $APP_RUN $* > log.$APP_NAME 2>&1 + fi +} + +runParallel () +{ + APP_RUN=$1; shift + + if [ -f $log.$APP_RUN ] ; then + echo "$APP_RUN already run on $PWD: remove log file to run" + else + echo "Running $APP_RUN in parallel on $PWD using $1 processes" + ( mpirun -np $1 $APP_RUN -parallel < /dev/null > log.$APP_RUN 2>&1 ) + fi +} + +compileApplication () +{ + echo "Compiling $1 application" + wmake $1 +} + +compileLibrary () +{ + echo "Compiling $1 application" + wmake libso $1 +} + +cloneCase () +{ + if [ -d $2 ] ; then + echo "Case already cloned: remove case directory $2 to clone" + else + echo "Cloning $2 case from $1" + mkdir $2 + cpfiles="0 system constant" + for f in $cpfiles + do + cp -r $1/$f $2 + done + fi +} + +#------------------------------------------------------------------------------ diff --git a/tutorials/multiphase/cavitatingFoam/les/Allrun b/tutorials/multiphase/cavitatingFoam/les/Allrun index c6b98bda7..540e8127d 100755 --- a/tutorials/multiphase/cavitatingFoam/les/Allrun +++ b/tutorials/multiphase/cavitatingFoam/les/Allrun @@ -12,10 +12,10 @@ refineMeshByCellSet() do echo "creating cell set for primary zone - $1" cp system/cellSetDict.$1 system/cellSetDict - cellSet > log.cellSet.$1 2>&1 + runApplication -l log.cellSet.$1 cellSet echo "refining primary zone - $1" - refineMesh -dict -overwrite > log.refineMesh.$1 2>&1 + runApplication -l log.refineMesh.$1 refineMesh -dict -overwrite shift done }