tutorial scripts

This commit is contained in:
mattijs 2008-06-12 19:32:10 +01:00
parent adcce409ab
commit 91c2d7743b
60 changed files with 1374 additions and 298 deletions

View File

@ -141,6 +141,11 @@ public:
return hitPoint_;
}
Point& rawPoint()
{
return hitPoint_;
}
void setHit()
{
hit_ = true;

View File

@ -43,23 +43,10 @@ echo ""
for application in *
do
if [ -d "$application" ]
if [ -d $application ]
then
cd $application
if [ -f "Allclean" ]
then
./Allclean
else
for case in *
do
if [ -d "$case" ]
then
cleanCase $case
fi
done
fi
cd ..
fi
(cd $application && ../cleanAll)
fi
done
#------------------------------------------------------------------------------

View File

@ -32,94 +32,64 @@
. 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 <logfile>
# Extracts useful info from log file.
logReport () {
case=`dirname $1 | sed s/"\(.*\)\.\/"/""/g`
app=`echo $1 | sed s/"\(.*\)\."/""/g`
appAndCase="Application $app - case $case"
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`
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"
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
echo "$appAndCase: completed $completionTime"
return
else
echo "$appAndCase: unconfirmed completion"
fi
}
# Recursively run all tutorials
for application in *
do
if [ -d $application ]
then
#(cd $application && ../runAll)
$WM_SCHEDULER "cd $PWD/$application && ../runAll"
fi
done
# Analyse all log files
rm testLoopReport > /dev/null 2>&1 &
touch testLoopReport
for application in $applications
for application in *
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 ..
if [ -d $application ]
then
cd $application
for log in `find . -name "log.*" | xargs ls -rt`
do
logReport $log >> ../testLoopReport
done
echo "" >> ../testLoopReport
cd ..
fi
done
find . -name "log.*" -exec cat {} \; >> logs

View File

@ -65,7 +65,22 @@ EOF
#
# VARIABLE
#
MAIN_CONTROL_DICT=${WM_PROJECT_DIR}/${FOAM_DOT_DIR}/controlDict
MAIN_CONTROL_DICT=
: ${FOAM_DOT_DIR:=.$WM_PROJECT-$WM_PROJECT_VERSION}
for i in \
$HOME/$FOAM_DOT_DIR \
$HOME/.$WM_PROJECT/$WM_PROJECT_VERSION \
$HOME/.$WM_PROJECT \
$WM_PROJECT_DIR/etc \
$WM_PROJECT_DIR/$FOAM_DOT_DIR \
;
do
if [ -f "$i/controlDict" ]; then
MAIN_CONTROL_DICT="$i/controlDict"
break
fi
done
TUTORIALS_DIR=.
TEST_RUN_DIR=../tutorialsTest
FV_SCHEMES=\

View File

@ -38,33 +38,33 @@
# do
# if [ $T != "0" ] ; then
# echo "Deleting directory $T"
# rm -rf $1/${T} > /dev/null 2>&1
# rm -rf ${T} > /dev/null 2>&1
# fi
# done
# rm -rf $1/{log,log.*,log-*,logSummary.*,.fxLock,*.xml,ParaView*,paraFoam*,*.foam} > /dev/null 2>&1
# rm -rf {log,log.*,log-*,logSummary.*,.fxLock,*.xml,ParaView*,paraFoam*,*.foam} > /dev/null 2>&1
#}
cleanTimeDirectories ()
{
echo "Cleaning $case case of $application application"
echo "Cleaning $PWD case"
nZeros=0
zeros=""
while [ $nZeros -lt 8 ] ; do
timeDir="0.${zeros}[1-9]*"
rm -rf $1/${timeDir} > /dev/null 2>&1
rm -rf $1/-${timeDir} > /dev/null 2>&1
rm -rf ${timeDir} > /dev/null 2>&1
rm -rf ./-${timeDir} > /dev/null 2>&1
zeros=`printf %0${nZeros}d 0`
nZeros=$(($nZeros + 1))
done
rm -rf $1/{[1-9]*,-[1-9]*,log,log.*,log-*,logSummary.*,.fxLock,*.xml,ParaView*,paraFoam*,*.foam} > /dev/null 2>&1
rm -rf ./{[1-9]*,-[1-9]*,log,log.*,log-*,logSummary.*,.fxLock,*.xml,ParaView*,paraFoam*,*.foam} > /dev/null 2>&1
}
cleanCase ()
{
cleanTimeDirectories $1
cleanTimeDirectories
rm -rf $1/constant/polyMesh/{allOwner*,cell*,face*,meshModifiers*} \
$1/constant/polyMesh/{owner*,neighbour*,point*,edge*} \
rm -rf constant/polyMesh/{allOwner*,cell*,face*,meshModifiers*} \
constant/polyMesh/{owner*,neighbour*,point*,edge*} \
> /dev/null 2>&1
for f in `find . -name "*Dict"`
@ -76,25 +76,25 @@ cleanCase ()
cleanParallelCase ()
{
cleanCase $1
cleanCase
rm -rf $1/processor* > /dev/null 2>&1
rm -rf processor* > /dev/null 2>&1
}
removeCase ()
{
echo "Removing $case case of $application application"
echo "Removing $case case"
rm -rf $1
}
cleanSamples ()
{
rm -rf $1/{samples,sampleSurfaces} > /dev/null 2>&1
rm -rf {samples,sampleSurfaces} > /dev/null 2>&1
}
cleanUcomponents ()
{
rm -rf $1/0/{Ux,Uy,Uz} > /dev/null 2>&1
rm -rf 0/{Ux,Uy,Uz} > /dev/null 2>&1
}
#------------------------------------------------------------------------------

View File

@ -0,0 +1,17 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
wclean ../MRFSimpleFoam

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
compileApplication ../MRFSimpleFoam
runApplication makeMesh
runApplication $application

129
tutorials/README.txt Normal file
View File

@ -0,0 +1,129 @@
To run all : Allrun
To run all one iteration : Alltest
To clean all : Allclean
The structure now is that a case that only requires blockMesh
and application does not need an Allrun or Allclean script.
Only if running is special it requires an Allrun. Similarly
if cleaning is non-standard.
run clean
boundaryFoam
boundaryLaunderSharma ok
boundaryWallFunctions ok
bubbleFoam
bubbleColumn ok
buoyantFoam
hotRoom ok
buoyantSimpleFoam
hotRoom ok
buoyantSimpleRadiationFoam
hotRadiationRoom ok
cavitatingFoam
nozzle2D No cavitatingFoam solver.
channelOodles
channel395 ok
coodles
pitzDaily ok
dieselFoam
aachenBomb
dnsFoam
boxTurb16
electrostaticFoam
chargedWire ok
engineFoam
kivaTest
financialFoam
europeanCall ok
icoDyMFoam
movingCone ok ok
icoFoam
cavity ok ok
cavityFine ok ok
cavityGrade ok ok
cavityHighRe ok ok
cavityClipped ok ok
elbow ok ok
interDyMFoam
damBreakWithObstacle ok ok
interFoam
damBreak ok ok
damBreakFine ok ok
laplacianFoam
flange ok ok
lesInterFoam
nozzleFlow2D
mdEquilibrationFoam
periodicCube
mhdFoam ok
hartmann
MRFSimpleFoam
mixerVessel2D
multiphaseInterFoam
damBreak4phase
damBreak4phaseFine
nonNewtonianIcoFoam
offsetCylinder
oodles
pitzDaily
pitzDailyDirectMapped
potentialFoam
cylinder
pitzDaily
rasInterFoam
damBreak
damBreakFine
rhoPimpleFoam
angledDuct
rhoPorousSimpleFoam
angledDuctExplicit
angledDuctImplicit
rhopSonicFoam
shockTube
wedge15Ma5
rhoSonicFoam
forwardStep
shockTube No setShock application
rhoTurbFoam
cavity
rhoTurbTwinParcelFoam
simplifiedSiwek
scalarTransportFoam
pitzDaily
settlingFoam
dahl
tank3D
simpleFoam
pitzDaily
pitzDaily3Blocks
pitzDailyExptInlet
simpleSRFFoam
mixer
simpleSRFFoam
solidDisplacementFoam
plateHole
solidEquilibriumDisplacementFoam
beamEndLoad
sonicFoam
forwardStep
shockTube
sonicLiquidFoam
decompressionTank
decompressionTankFine
sonicTurbFoam
nacaAirfoil
prism
turbFoam
cavity
twoPhaseEulerFoam
bed
bed2
bubbleColumn
XiFoam
moriyoshiHomogeneous
moriyoshiHomogeneousPart2
Xoodles
pitzDaily
pitzDaily3D

View File

@ -33,31 +33,29 @@
runApplication ()
{
APP_RUN=$1; shift
dir=$1; shift
if [ -f $dir/log.$APP_RUN ] ; then
echo "$APP_RUN already run on $dir: remove log file to run"
if [ -f log.$APP_RUN ] ; then
echo "$APP_RUN already run on $PWD: remove log file to run"
else
echo "Running $APP_RUN on $dir"
( cd $dir && $APP_RUN $* > log.$APP_RUN 2>&1 )
echo "Running $APP_RUN on $PWD"
$APP_RUN $* > log.$APP_RUN 2>&1
fi
}
runParallel ()
{
APP_RUN=$1; shift
dir=$2; shift
if [ -f $dir/log.$APP_RUN ] ; then
echo "$APP_RUN already run on $dir: remove log file to run"
if [ -f $log.$APP_RUN ] ; then
echo "$APP_RUN already run on $PWD: remove log file to run"
else
if [ "$WM_MPLIB" = LAM ]
then
echo "Starting LAM using $2 machines file"
lamboot -v $2
fi
echo "Running $APP_RUN in parallel on $dir using $1 processes"
( cd $dir && mpirun -np $1 $APP_RUN -parallel < /dev/null > log.$APP_RUN 2>&1 )
echo "Running $APP_RUN in parallel on $PWD using $1 processes"
( mpirun -np $1 $APP_RUN -parallel < /dev/null > log.$APP_RUN 2>&1 )
if [ "$WM_MPLIB" = LAM ]
then
echo "Stopping LAM"
@ -68,8 +66,8 @@ runParallel ()
compileApplication ()
{
echo "Compiling $1/$2 application"
wmake $1/$2
echo "Compiling $1 application"
wmake $1
}
cloneCase ()

View File

@ -1,16 +1,26 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
# Get application name from directory
application=`basename $PWD`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
keepCases="moriyoshiHomogeneous"
loseCases="moriyoshiHomogeneousPart2"
tutorialPath=`dirname $0`/..
. $tutorialPath/CleanFunctions
for case in $keepCases
do
cleanCase $case
(cd $case && $tutorialsDir/cleanAll)
done
for case in $loseCases

View File

@ -1,14 +1,20 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="moriyoshiHomogeneous moriyoshiHomogeneousPart2"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
setControlDict () {
controlDict="$case/system/controlDict"
controlDict="system/controlDict"
sed \
-e s/"\(deltaT[ \t]*\) 5e-06;"/"\1 1e-05;"/g \
-e s/"\(endTime[ \t]*\) 0.005;"/"\1 0.015;"/g \
@ -17,14 +23,17 @@ setControlDict () {
mv temp.$$ $controlDict
}
for case in $cases
do
if [ "$case" = "moriyoshiHomogeneousPart2" ] ; then
cloneCase moriyoshiHomogeneous $case
cp -r moriyoshiHomogeneous/0.005 $case
setControlDict
else
runApplication blockMesh $case
fi
runApplication $application $case
done
# Do moriyoshiHomogeneous
(cd moriyoshiHomogeneous && $tutorialPath/runAll)
# Clone case
cloneCase moriyoshiHomogeneous moriyoshiHomogeneousPart2
# Modify and execute
cd moriyoshiHomogeneousPart2
cp -r ../moriyoshiHomogeneous/0.005 .
setControlDict
runApplication $application
cd ..

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
cp 0/T.org 0/T
wclean setHotRoom

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
compileApplication setHotRoom
runApplication blockMesh
runApplication setHotRoom
runApplication $application

View File

@ -24,7 +24,7 @@ FoamFile
application buoyantFoam;
startFrom latestTime;
startFrom startTime;
startTime 0;

View File

@ -31,6 +31,12 @@ solvers
relTol 0;
};
pd PCG
{
preconditioner DIC;
tolerance 1e-06;
relTol 0.1;
};
pdFinal PCG
{
preconditioner DIC;
tolerance 1e-06;

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
cp 0/T.org 0/T
wclean ../../buoyantFoam/hotRoom/setHotRoom

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
compileApplication ../../buoyantFoam/hotRoom/setHotRoom
runApplication blockMesh
runApplication setHotRoom
runApplication $application

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication $application
runApplication postChannel

67
tutorials/cleanAll Executable file
View File

@ -0,0 +1,67 @@
#!/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
# cleanAll
#
# Description
# Run either Allclean or default cleanCase in current directory
# and all its subdirectories.
#
#------------------------------------------------------------------------------
tutorialsDir=$PWD
while [ ! -f $tutorialsDir/CleanFunctions ]
do
tutorialsDir="$tutorialsDir/.."
done
. $tutorialsDir/CleanFunctions
thisScript=$0
if [ "/${thisScript#/}" != "$thisScript" ]
then
thisScript="$PWD/$thisScript"
fi
if [ -f "./Allclean" ]
then
# Specialised script.
./Allclean
elif [ -d "./system" ]
then
# Normal case.
cleanCase
else
# Recurse to subdirectories
for case in *
do
if [ -d $case ]
then
(cd $case && $thisScript)
fi
done
fi
#------------------------------------------------------------------------------

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
rm -rf 0
cp -r 0.org 0

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication boxTurb
runApplication $application
runApplication enstrophy

View File

@ -0,0 +1,21 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
mv ./-180 temp180
rm -rf 0
cp system/controlDict.1st system/controlDict
cleanCase
mv temp180 ./-180

View File

@ -0,0 +1,43 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runKivaToFoam ()
{
if [ -f log.kivaToFoam ] ; then
echo "kivaToFoam already run on $PWD: remove log file to run"
else
echo "kivaToFoam: converting kiva file"
kivaToFoam -file $1 > log.kivaToFoam 2>&1
fi
}
restartApplication ()
{
if [ -f log-2.$1 ] ; then
echo "$1 already run on $PWD: remove log file to run"
else
echo "Running $1 on $PWD"
$1 > log-2.$1 2>&1
fi
}
runKivaToFoam . $case/otape17
cp system/controlDict.1st system/controlDict
runApplication $application
cp system/controlDict.2nd system/controlDict
restartApplication $application

View File

@ -2,15 +2,24 @@
currDir=`pwd`
application=`basename $currDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
keepCases="cavity cavityGrade cavityClipped elbow"
loseCases="cavityFine cavityHighRe"
tutorialPath=`dirname $0`/..
. $tutorialPath/CleanFunctions
for case in $keepCases
do
cleanCase $case
(cd $case && $tutorialPath/cleanAll)
if [ "$case" = "elbow" ]
then
rm -rf $case/fluentInterface

View File

@ -10,19 +10,19 @@ tutorialPath=`dirname $0`/..
runMapFields ()
{
echo "Running mapFields from $1 to $2"
mapFields . $1 . $2 > $2/log.mapFields 2>&1
mapFields -source $1 -case $2 -sourceTime latestTime > $2/log.mapFields 2>&1
}
runMapFieldsConsistent ()
{
echo "Running mapFields from $1 to $2"
mapFields . $1 . $2 -consistent > $2/log.mapFields 2>&1
mapFields -source $1 -case $2 -sourceTime latestTime -consistent > $2/log.mapFields 2>&1
}
runFluentMeshToFoam ()
{
echo "fluentMeshToFoam: converting mesh $2"
fluentMeshToFoam . $1 $2 > $1/log.fluentMeshToFoam 2>&1
fluentMeshToFoam $2 -case $1 > $1/log.fluentMeshToFoam 2>&1
}
copySolutionDirs ()
@ -34,7 +34,7 @@ copySolutionDirs ()
setCavityFine ()
{
blockMeshDict="$case/constant/polyMesh/blockMeshDict"
controlDict="$case/system/controlDict"
controlDict="$case/system/controlDict"
sed s/"20 20 1"/"41 41 1"/g $blockMeshDict > temp.$$
mv temp.$$ $blockMeshDict
sed \
@ -44,13 +44,13 @@ setCavityFine ()
-e s/"\(writeControl[ \t]*\) timeStep;"/"\1 runTime;"/g \
-e s/"\(writeInterval[ \t]*\) 20;"/"\1 0.1;"/g \
$controlDict > temp.$$
mv temp.$$ $controlDict
mv temp.$$ $controlDict
}
setCavityHighRe ()
{
echo "Setting cavityHighRe to generate a secondary vortex"
controlDict="$case/system/controlDict"
controlDict="$case/system/controlDict"
transportProperties="$case/constant/transportProperties"
sed \
-e s/"\(startFrom[ \t]*\) startTime;"/"\1 latestTime;"/g \
@ -63,27 +63,27 @@ setCavityHighRe ()
for case in $cavityCases
do
if [ "$case" = "cavityFine" ]
if [ "$case" = "cavityFine" ]
then
cloneCase cavity $case
cloneCase cavity $case
setCavityFine
fi
if [ "$case" = "cavityHighRe" ]
if [ "$case" = "cavityHighRe" ]
then
cloneCase cavity $case
cloneCase cavity $case
setCavityHighRe
copySolutionDirs $case cavity
fi
runApplication blockMesh $case
(cd $case && runApplication blockMesh)
#
if [ "$case" = "cavityFine" -o "$case" = "cavityGrade" ]
if [ "$case" = "cavityFine" -o "$case" = "cavityGrade" ]
then
runMapFieldsConsistent $previousCase $case
fi
if [ "$case" = "cavityClipped" ]
if [ "$case" = "cavityClipped" ]
then
cp -r $case/0 $case/0.5
runMapFields cavity $case
@ -96,13 +96,13 @@ do
#
previousCase="$case"
#
runApplication $application $case
done
(cd $case && runApplication $application)
done
# elbow case for testing Fluent-FOAM conversion tools
runFluentMeshToFoam elbow elbow/elbow.msh
runApplication icoFoam elbow
runApplication foamMeshToFluent elbow
runApplication foamDataToFluent elbow
(cd elbow && runApplication $application)
(cd elbow && runApplication foamMeshToFluent)
(cd elbow && runApplication foamDataToFluent)

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication setSet -batch createObstacle.setSet
runApplication subsetMesh c0 -patch walls
runApplication setFields -latestTime
runApplication $application

View File

@ -1,16 +1,26 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
# Get application name from directory
application=`basename $PWD`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
keepCases="damBreak"
loseCases="damBreakFine"
tutorialPath=`dirname $0`/..
. $tutorialPath/CleanFunctions
for case in $keepCases
do
cleanCase $case
(cd $case && $tutorialPath/cleanAll)
if [ "$case" = "damBreak" ]
then
cp $case/0/gamma.org $case/0/gamma

View File

@ -1,16 +1,21 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="damBreak damBreakFine"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
setDamBreakFine ()
{
blockMeshDict="$case/constant/polyMesh/blockMeshDict"
controlDict="$case/system/controlDict"
blockMeshDict="constant/polyMesh/blockMeshDict"
controlDict="system/controlDict"
sed \
-e s/"23 8"/"46 10"/g \
-e s/"19 8"/"40 10"/g \
@ -26,24 +31,23 @@ setDamBreakFine ()
mv temp.$$ $controlDict
}
for case in $cases
do
if [ "$case" = "damBreakFine" ]
then
cloneCase damBreak $case
setDamBreakFine
cp damBreak/0/gamma.org $case/0/gamma
fi
runApplication blockMesh $case
runApplication setFields $case
if [ "$case" = "damBreakFine" ]
then
runApplication decomposePar $case
hostname > $case/system/machines
runParallel $application $case 4 $case/system/machines
runApplication reconstructPar $case
else
runApplication $application $case
fi
done
# Do damBreak
(cd damBreak && $tutorialPath/runAll)
# Clone case
cloneCase damBreak damBreakFine
cd damBreakFine
# Modify case
setDamBreakFine
cp ../damBreak/0/gamma.org 0/gamma
# And execute
runApplication blockMesh
runApplication setFields
runApplication decomposePar
hostname > system/machines
runParallel $application 4 system/machines
runApplication reconstructPar
cd ..

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
rm -rf Fieldview > /dev/null 2>&1
rm -rf EnSight > /dev/null 2>&1

View File

@ -0,0 +1,30 @@
#!/bin/sh
# Get application directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runIdeasToFoam ()
{
if [ -f log.ideasToFoam ] ; then
echo "ansysToFoam already run on $PWD: remove log file to run"
else
echo "ansysToFoam: converting mesh $1"
ansysToFoam $1 -scale $2 > log.ansysToFoam 2>&1
fi
}
runIdeasToFoam flange.ans 0.001
runApplication $application
runApplication foamToFieldview
runApplication foamToEnsight

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
cp constant/polyMesh/boundary.org constant/polyMesh/boundary

View File

@ -0,0 +1,42 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runRefineMesh ()
{
echo "Running refineMesh on $PWD"
refineMesh -dict > log.refineMesh 2>&1
}
runApplication blockMesh
i=1
if [ -f log.cellSet ] ; then
i=3
fi
while [ "$i" -lt 3 ] ; do
if [ -f log.cellSet ] ; then
mv log.cellSet log.cellSet.1
fi
cp system/cellSetDict.${i} system/cellSetDict
runApplication cellSet
runRefineMesh
cp -r 1e-08/polyMesh/* constant/polyMesh
rm -rf 1e-08
i=`expr $i + 1`
done
cp constant/polyMesh/boundary.org constant/polyMesh/boundary
runApplication $application

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication molConfig
runApplication $application

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
cleanSamples

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication $application
runApplication sample

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication changeDictionary
runApplication $application

View File

@ -1,23 +1,29 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="cylinder pitzDaily"
utility=analyticalCylinder
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
for case in $cases
do
cleanCase $case
rm -rf $case/0 > /dev/null 2>&1
cp -r $case/0.org $case/0
if [ "$case" = "cylinder" ]
then
wclean $case/$utility
fi
done
cd cylinder
cleanCase
rm -rf 0 > /dev/null 2>&1
cp -r 0.org 0
wclean analyticalCylinder
cd ..
cd pitzDaily
cleanCase
rm -rf 0 > /dev/null 2>&1
cp -r 0.org 0
cd ..

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication $application
compileApplication analyticalCylinder
runApplication analyticalCylinder
runApplication streamFunction

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath='.'
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="../$tutorialPath"
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication $application
runApplication streamFunction

View File

@ -1,16 +1,25 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
# Get application name from directory
application=`basename $PWD`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
keepCases="damBreak"
loseCases="damBreakFine"
tutorialPath=`dirname $0`/..
. $tutorialPath/CleanFunctions
for case in $keepCases
do
cleanCase $case
(cd $case && $tutorialPath/cleanAll)
if [ "$case" = "damBreak" ]
then
cp $case/0/gamma.org $case/0/gamma

View File

@ -1,16 +1,22 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="damBreak damBreakFine"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
setDamBreakFine ()
{
blockMeshDict="$case/constant/polyMesh/blockMeshDict"
controlDict="$case/system/controlDict"
blockMeshDict="constant/polyMesh/blockMeshDict"
controlDict="system/controlDict"
sed \
-e s/"23 8"/"46 10"/g \
-e s/"19 8"/"40 10"/g \
@ -26,24 +32,22 @@ setDamBreakFine ()
mv temp.$$ $controlDict
}
for case in $cases
do
if [ "$case" = "damBreakFine" ]
then
cloneCase damBreak $case
setDamBreakFine
cp damBreak/0/gamma.org $case/0/gamma
fi
runApplication blockMesh $case
runApplication setFields $case
if [ "$case" = "damBreakFine" ]
then
runApplication decomposePar $case
hostname > $case/system/machines
runParallel $application $case 4 $case/system/machines
runApplication reconstructPar $case
else
runApplication $application $case
fi
done
# Do damBreak
(cd damBreak && $tutorialPath/runAll)
# Clone case
cloneCase damBreak damBreakFine
cd damBreakFine
# Modify case
setDamBreakFine
cp ../damBreak/0/gamma.org 0/gamma
# And execute
runApplication blockMesh
runApplication setFields
runApplication decomposePar
hostname > system/machines
runParallel $application 4 system/machines
runApplication reconstructPar
cd ..

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication setFields
runApplication $application

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
rm -rf 0
cp -r 0.org 0
cleanSamples

View File

@ -0,0 +1,23 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
compileApplication setShock
runApplication setShock
runApplication $application
runApplication magU
runApplication sample

View File

@ -1,16 +1,26 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="simplifiedSiwek"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
wclean $application
for case in $cases
wclean rhoTurbTwinParcelFoam
for case in *
do
cleanCase $case
if [ -d $case ]
then
(cd $case && $tutorialPath/cleanAll)
fi
done

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
compileApplication $application
runApplication blockMesh
runApplication $application

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
rm -rf 0
cp -r 0.org 0
cleanCase

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication setFields
runApplication $application

73
tutorials/runAll Executable file
View File

@ -0,0 +1,73 @@
#!/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
# runAll
#
# Description
# Run either Allrun or blockMesh/application in current directory
# and all its subdirectories.
#
#------------------------------------------------------------------------------
unset WM_COLOURS
tutorialsDir=$PWD
while [ ! -f $tutorialsDir/RunFunctions ]
do
tutorialsDir="$tutorialsDir/.."
done
. $tutorialsDir/RunFunctions
thisScript=$0
if [ "/${thisScript#/}" != "$thisScript" ]
then
thisScript="$PWD/$thisScript"
fi
if [ -f "./Allrun" ]
then
# Specialised script.
./Allrun
elif [ -d "./system" ]
then
# Normal case.
parentDir=`dirname $PWD`
application=`basename $parentDir`
runApplication blockMesh
runApplication $application
else
# Recurse to subdirectories
for case in *
do
if [ -d $case ]
then
#(cd $case && $thisScript)
$WM_SCHEDULER "cd $PWD/$case && $thisScript"
fi
done
fi
#------------------------------------------------------------------------------

View File

@ -0,0 +1,16 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanTimeDirectories

View File

@ -0,0 +1,17 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication $application

View File

@ -0,0 +1,17 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
wclean ../simpleSRFFoam

View File

@ -0,0 +1,19 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
compileApplication ../simpleSRFFoam
runApplication blockMesh
runApplication $application

View File

@ -0,0 +1,17 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
cleanSamples

View File

@ -0,0 +1,18 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication $application
runApplication sample

View File

@ -0,0 +1,20 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
cleanCase
rm -rf 0
cp -r 0.org 0
cleanSamples

View File

@ -0,0 +1,21 @@
#!/bin/sh
# Get application name from directory
parentDir=`dirname $PWD`
application=`basename $parentDir`
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runApplication blockMesh
runApplication setFields
runApplication $application
runApplication magU
runApplication sample

View File

@ -1,19 +1,24 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
keepCases="decompressionTank"
loseCases="decompressionTankFine"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/CleanFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/CleanFunctions
for case in $keepCases
do
cleanCase $case
done
for case in $loseCases
removeCase decompressionTankFine
for case in *
do
removeCase $case
if [ -d $case ]
then
(cd $case && $tutorialsDir/cleanAll)
fi
done

View File

@ -1,12 +1,18 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="decompressionTank decompressionTankFine"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
setDecompressionTankFine ()
{
blockMeshDict="$case/constant/polyMesh/blockMeshDict"
@ -25,14 +31,16 @@ setDecompressionTankFine ()
mv temp.$$ $controlDict
}
for case in $cases
do
if [ "$case" = "decompressionTankFine" ]
then
cloneCase decompressionTank $case
setDecompressionTankFine
fi
#
runApplication blockMesh $case
runApplication $application $case
done
# Do decompressionTank
(cd decompressionTank && $tutorialPath/runAll)
# Clone case
cloneCase decompressionTank decompressionTankFine
cd decompressionTankFine
# Modify case
setDecompressionTankFine
# And execute
runApplication blockMesh
runApplication $application
cd ..

View File

@ -1,33 +1,38 @@
#!/bin/sh
currDir=`pwd`
application=`basename $currDir`
cases="prism nacaAirfoil"
# Get application name from directory
application=`basename $PWD`
tutorialPath=`dirname $0`/..
# Find and source additional functions
tutorialPath=$PWD
while [ ! -f $tutorialPath/RunFunctions ]
do
tutorialPath="$tutorialPath/.."
done
. $tutorialPath/RunFunctions
runStarToFoam ()
{
if [ -f $1/log.starToFoam ] ; then
echo "starToFoam already run on $1: remove log file to run"
if [ -f log.starToFoam ] ; then
echo "starToFoam already run on $PWD: remove log file to run"
else
echo "starToFoam: converting mesh $2"
starToFoam . $1 $2 > $1/log.starToFoam 2>&1
echo "starToFoam: converting mesh $1"
starToFoam $1 > log.starToFoam 2>&1
fi
}
for case in $cases
do
if [ "$case" = "nacaAirfoil" ] ; then
runStarToFoam $case ${case}/prostar/${case}
mv ${case}/constant/polyMesh/boundary temp
sed -e s/"\([\t ]*type[\t ]*\)symmetryPlane"/"\1empty"/g \
temp > ${case}/constant/polyMesh/boundary
rm temp
else
runApplication blockMesh $case
fi
runApplication $application $case
# runApplication Mach $case
done
# Do prism
(cd prism && $tutorialPath/runAll)
# Special handling for nacaAirFoil
cd nacaAirFoil
runStarToFoam prostar/nacaAirFoil
mv constant/polyMesh/boundary temp
sed -e s/"\([\t ]*type[\t ]*\)symmetryPlane"/"\1empty"/g \
temp > constant/polyMesh/boundary
rm temp
runApplication $application
cd ..