ENH: Make attachDetach operational for zones that end within the domain
[foam-extend-3.2.git] / bin / paraFoam
blob17fbd62c5d281776b167558f5788654c7f7822e5
1 #!/bin/bash
2 #------------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 # \\ / O peration |
6 # \\ / A nd | Copyright held by original author
7 # \\/ M anipulation |
8 #------------------------------------------------------------------------------
9 # License
10 # This file is part of OpenFOAM.
12 # OpenFOAM is free software; you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by the
14 # Free Software Foundation; either version 2 of the License, or (at your
15 # option) any later version.
17 # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
18 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 # for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with OpenFOAM; if not, write to the Free Software Foundation,
24 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 # Script
27 # paraFoam
29 # Description
30 # start paraview with the OpenFOAM libraries
32 #------------------------------------------------------------------------------
33 usage() {
34 while [ "$#" -ge 1 ]; do echo "$1"; shift; done
35 cat<<USAGE
37 usage: ${0##*/} [OPTION]
38 options:
39 -case dir specify alternative case directory
40 -region name specify mesh region name
41 -touch only create the .OpenFOAM or .foam file
42 -nativeReader use the paraview native reader for OpenFOAM
44 * start paraview $ParaView_VERSION with the OpenFOAM libraries
46 USAGE
47 exit 1
50 unset regionName touchOnly useNativeReader
52 # parse options
53 while [ "$#" -gt 0 ]
55 case "$1" in
56 -h | -help)
57 usage
59 -case)
60 [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
61 cd "$2" 2>/dev/null || usage "directory does not exist: '$2'"
62 shift 2
64 -region)
65 [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
66 regionName=$2
67 shift 2
69 -touch)
70 touchOnly=true
71 shift
73 -nativeReader)
74 useNativeReader=true
75 shift
78 usage "unknown option/argument: '$*'"
80 esac
81 done
83 # get a sensible caseName
84 caseName=${PWD##*/}
86 if [ -n "$useNativeReader" ]
87 then
88 caseFileExt=".foam"
89 else
90 caseFileExt=".OpenFOAM"
93 caseFile="$caseName$caseFileExt"
95 fvControls="system"
97 if [ -n "$regionName" ]
98 then
99 caseFile="$caseName{$regionName}$caseFileExt"
100 fvControls="$fvControls/$regionName"
103 if [ -n "$touchOnly" ]
104 then
105 touch "$caseFile"
106 echo "created '$caseFile'"
107 exit 0
110 # parent directory for normal or parallel results
111 case "$caseName" in
112 processor*) parentDir=".." ;;
113 *) parentDir="." ;;
114 esac
116 # check existence of essential files
117 for check in system/controlDict $fvControls/fvSchemes $fvControls/fvSolution
119 [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'"
120 done
123 case "$ParaView_VERSION" in
125 trap "rm -f paraFoam.pvs $caseFile 2>/dev/null; exit 0" EXIT TERM INT
126 touch "$caseFile"
128 # since we are now in the cwd, %CASE% is '$PWD/$caseFile'
129 sed -e s@%CASE%@$PWD/$caseFile@g \
130 $WM_PROJECT_DIR/bin/tools/paraFoam.pvs > paraFoam.pvs
132 paraview paraFoam.pvs
136 # only create/remove caseFile if it didn't already exist
137 [ -e $caseFile ] || {
138 trap "rm -f $caseFile 2>/dev/null; exit 0" EXIT TERM INT
139 touch "$caseFile"
140 echo "created temporary '$caseFile'"
143 paraview --data="$caseFile"
146 esac
147 #------------------------------------------------------------------------------