Pro: Good delimitation. Good visual distinction. No confusion with normal cases, since '{}' characters are excluded by !word::valid() Con: Possible quoting issues when creating directly instead of via paraFoam, but seemed to work fine with bash TAB completion.
132 lines
3.4 KiB
Bash
Executable File
132 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#------------------------------------------------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | Copyright (C) 1991-2008 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
|
|
# paraFoam
|
|
#
|
|
# Description
|
|
# start paraview with the OpenFOAM libraries
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
usage() {
|
|
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
|
|
cat<<USAGE
|
|
|
|
usage: ${0##*/} [OPTION]
|
|
options:
|
|
-case dir specify alternative case directory
|
|
-region name specify mesh region name
|
|
-touch create the .OpenFOAM file only and exit
|
|
|
|
* start paraview $ParaView_VERSION with the OpenFOAM libraries
|
|
|
|
USAGE
|
|
exit 1
|
|
}
|
|
|
|
unset regionName touchOnly
|
|
|
|
# parse options
|
|
while [ "$#" -gt 0 ]
|
|
do
|
|
case "$1" in
|
|
-h | -help)
|
|
usage
|
|
;;
|
|
-case)
|
|
[ "$#" -ge 2 ] || usage "'-case' option requires an argument"
|
|
caseDir=$2
|
|
shift 2
|
|
cd "$caseDir" 2>/dev/null || usage "directory does not exist: '$caseDir'"
|
|
;;
|
|
-region)
|
|
[ "$#" -ge 2 ] || usage "'-region' option requires an argument"
|
|
regionName=$2
|
|
shift 2
|
|
;;
|
|
-touch)
|
|
touchOnly=1
|
|
shift
|
|
;;
|
|
*)
|
|
usage "unknown option/argument: '$*'"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# get a sensible caseName
|
|
caseName=${PWD##*/}
|
|
caseFile="$caseName.OpenFOAM"
|
|
if [ -n "$regionName" ]
|
|
then
|
|
caseFile="$caseName{$regionName}.OpenFOAM"
|
|
fi
|
|
|
|
if [ -n "$touchOnly" ];
|
|
then
|
|
touch "$caseFile"
|
|
echo "created '$caseFile'"
|
|
exit 0
|
|
fi
|
|
|
|
# parent directory for normal or parallel results
|
|
case "$caseName" in
|
|
processor*) parentDir=".." ;;
|
|
*) parentDir="." ;;
|
|
esac
|
|
|
|
# check existence of essential files
|
|
for check in system/controlDict system/fvSchemes system/fvSolution
|
|
do
|
|
[ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'"
|
|
done
|
|
|
|
|
|
case "$ParaView_VERSION" in
|
|
2*)
|
|
trap "rm -f paraFoam.pvs $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
|
touch $caseFile
|
|
|
|
# since we are now in the cwd, %CASE% is '$PWD/$caseFile'
|
|
sed -e s@%CASE%@$PWD/$caseFile@g \
|
|
$WM_PROJECT_DIR/bin/paraFoam.pvs > paraFoam.pvs
|
|
|
|
paraview paraFoam.pvs
|
|
;;
|
|
|
|
*)
|
|
# only create/remove caseFile if it doesn't exist
|
|
[ -e $caseFile ] || {
|
|
trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
|
|
touch "$caseFile"
|
|
echo "created temporary '$caseFile'"
|
|
}
|
|
|
|
paraview --data="$caseFile"
|
|
;;
|
|
|
|
esac
|
|
#------------------------------------------------------------------------------
|