Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / bin / tools / RunFunctions
blob909d902b8abdbf19a2392b3efd20ede2d31195a2
1 #---------------------------------*- sh -*-------------------------------------
2 # =========                 |
3 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4 #  \\    /   O peration     |
5 #   \\  /    A nd           | Copyright (C) 2008-2011 OpenCFD Ltd.
6 #    \\/     M anipulation  |
7 #------------------------------------------------------------------------------
8 # License
9 #     This file is part of OpenFOAM.
11 #     OpenFOAM is free software: you can redistribute it and/or modify it
12 #     under the terms of the GNU General Public License as published by
13 #     the Free Software Foundation, either version 3 of the License, or
14 #     (at your option) any later version.
16 #     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 #     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 #     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19 #     for more details.
21 #     You should have received a copy of the GNU General Public License
22 #     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 # Script
25 #     RunFunctions
27 # Description
28 #     Miscellaneous functions for running tutorial cases
29 #------------------------------------------------------------------------------
31 getApplication()
33     sed -ne 's/^ *application *\([a-zA-Z]*\) *;.*$/\1/p' system/controlDict
36 runApplication()
38     APP_RUN=$1
39     APP_NAME=${1##*/}
40     shift
42     if [ -f log.$APP_NAME ]
43     then
44         echo "$APP_NAME already run on $PWD: remove log file to re-run"
45     else
46         echo "Running $APP_RUN on $PWD"
47         $APP_RUN $* > log.$APP_NAME 2>&1
48     fi
51 runParallel()
53     APP_RUN=$1
54     APP_NAME=${1##*/}
55     shift
57     if [ -f log.$APP_NAME ]
58     then
59         echo "$APP_NAME already run on $PWD: remove log file to re-run"
60     else
61         nProcs=$1
62         shift
63         echo "Running $APP_RUN in parallel on $PWD using $nProcs processes"
65         #if [ "$WM_SCHEDULER" ]
66         #then
67         #    echo "$PWD: $WM_SCHEDULER -np $nProcs" 1>&2
68         #    $WM_SCHEDULER -np $nProcs "( mpirun -np $nProcs $APP_RUN -parallel $* < /dev/null > log.$APP_NAME 2>&1 )"
69         #else
70             ( mpirun -np $nProcs $APP_RUN -parallel $* < /dev/null > log.$APP_NAME 2>&1 )
71         #fi
72     fi
75 compileApplication()
77     echo "Compiling $1 application"
78     wmake $1
81 cloneCase()
83     if [ -d $2 ]
84     then
85         echo "Case already cloned: remove case directory $2 to clone"
86     else
87         echo "Cloning $2 case from $1"
88         mkdir $2
89         cpfiles="0 system constant"
90         for f in $cpfiles
91         do
92             cp -r $1/$f $2
93         done
94     fi
97 #------------------------------------------------------------------------------