BUGFIX: 552fd5fd requires calculation of deflated geometry
[foam-extend-3.2.git] / bin / tools / RunFunctions
blob312ad93e61e558d875502af165920f512ff30962
1 #---------------------------------*- sh -*-------------------------------------
2 # =========                 |
3 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4 #  \\    /   O peration     |
5 #   \\  /    A nd           | Copyright held by original author
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 the
13 #     Free Software Foundation; either version 2 of the License, or (at your
14 #     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, write to the Free Software Foundation,
23 #     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 # Script
26 #     RunFunctions
28 # Description
30 #------------------------------------------------------------------------------
32 getApplication ()
34     grep application system/controlDict | sed "s/application *\([a-zA-Z]*\);/\1/"
37 runApplication ()
39     LOG_NAME=
40     while getopts "l:" OPTFLAG ; do
41         LOG_NAME=$OPTARG
42         shift $((OPTIND-1)) ; OPTIND=1
43     done
45     APP_RUN=$1; shift
46     APP_NAME=${APP_RUN##*/}
48     if [ -z $LOG_NAME ] ; then
49         LOG_NAME=log.$APP_NAME
50     fi
52     if [ -f $LOG_NAME ] ; then
53         echo "$APP_NAME already run on $PWD: remove log file to run"
54     else
55         echo "Running $APP_NAME on $PWD"
56         $APP_RUN $* > $LOG_NAME 2>&1
57     fi
60 runParallel ()
62     LOG_NAME=
63     while getopts "l:" OPTFLAG ; do
64         LOG_NAME=$OPTARG
65         shift $((OPTIND-1)) ; OPTIND=1
66     done
68     APP_RUN=$1; shift
69     APP_NAME=${APP_RUN##*/}
71     if [ -z $LOG_NAME ] ; then
72         LOG_NAME=log.$APP_NAME
73     fi
75     if [ -f $LOG_NAME ] ; then
76         echo "$APP_NAME already run on $PWD: remove log file to run"
77     else
78         echo "Running $APP_NAME in parallel on $PWD using $1 processes"
79         ( mpirun -np $1 $APP_RUN -parallel < /dev/null > $LOG_NAME 2>&1 )
80     fi
83 compileApplication ()
85     echo "Compiling $1 application"
86     wmake $1
89 compileLibrary ()
91     echo "Compiling $1 application"
92     wmake libso $1
95 cloneCase ()
97     if [ -d $2 ] ; then
98         echo "Case already cloned: remove case directory $2 to clone"
99     else
100         echo "Cloning $2 case from $1"
101         mkdir $2
102         cpfiles="0 system constant"
103         for f in $cpfiles
104         do
105             cp -r $1/$f $2
106         done
107     fi
110 makeFsiCaseLinks ()
112     cd $1
113     cd system
114     ln -s ../../$2/system $2
115     cd ../constant
116     ln -s ../../$2/constant $2
117     cd ../0
118     ln -s ../../$2/0 $2
119     cd ../..
122 makeFsiResultsLinks ()
124     cd $1
125     TIME_DIRS=`foamInfoExec -times | sed '1,/constant/d'`
126     echo "makeFsiResultsLinks for" $TIME_DIRS
127     cd ../$2
128     for T in $TIME_DIRS
129     do
130         ln -s ../$1/${T}/solid ${T}
131     done
132     cd ..
135 #------------------------------------------------------------------------------