File: foamCleanPolyMesh

package info (click to toggle)
openfoam 4.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,028 kB
  • ctags: 58,990
  • sloc: cpp: 830,760; sh: 10,227; ansic: 8,215; xml: 745; lex: 437; awk: 194; sed: 91; makefile: 77; python: 18
file content (144 lines) | stat: -rwxr-xr-x 3,725 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/sh
#------------------------------------------------------------------------------
# =========                 |
# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
#  \\    /   O peration     |
#   \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
#    \\/     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 3 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, see <http://www.gnu.org/licenses/>.
#
# Script
#     foamCleanPolyMesh
#
# Description
#    Remove the contents of the constant/polyMesh directory
#    as per the Foam::polyMesh::removeFiles() method.
#
#------------------------------------------------------------------------------
usage() {
    exec 1>&2
    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
    cat <<USAGE

Usage: ${0##*/} [OPTION]
options:
  -case <dir>       specify alternative case directory, default is the cwd
  -region <name>    specify alternative mesh region
  -help             print the usage

Remove the contents of the constant/polyMesh directory as per the
Foam::polyMesh::removeFiles() method.

USAGE
   exit 1
}

unset caseDir regionName

# parse a single option
while [ "$#" -gt 0 ]
do
    case "$1" in
    -h | -help)
        usage
        ;;
    -case)
        [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
        cd "$2" 2>/dev/null || usage "directory does not exist:  '$2'"
        caseDir=$2
        shift 2
        ;;
    -region)
        [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
        regionName=$2
        shift 2
        ;;
    *)
        usage "unknown option/argument: '$*'"
        ;;
    esac
done

if [ -n "$regionName" ]
then
    meshDir=$regionName/polyMesh
else
    meshDir=polyMesh
fi

# if -case was specified: insist upon 'constant/polyMesh'
if [ -n "$caseDir" ]
then
    if [ -d constant/$meshDir ]
    then
        # use constant/polyMesh
        meshDir=constant/$meshDir
    else
       echo "Error: no 'constant/$meshDir' in $caseDir" 1>&2
       exit 1
    fi
else
    if [ -d constant/$meshDir ]
    then
        # use constant/polyMesh
        meshDir=constant/$meshDir
    elif [ -d $meshDir ]
    then
        # likely already in constant/ - do not adjust anything
        :
    elif [ "${PWD##*/}" = polyMesh -a -z "$regionName" ]
    then
        # apparently already within polyMesh/
        meshDir=.
    else
        echo "Error: no appropriate 'polyMesh/' directory found" 1>&2
        exit 1
    fi
fi


#
# remove files (mesh itself, modifiers, snappyHexMesh ones) and subdirectories
# also remove .gz versions of the same files
#
echo "Cleaning ${caseDir:-.}/$meshDir" 1>&2

for i in \
    points \
    faces \
    owner \
    neighbour \
    cells \
    boundary \
    pointZones \
    faceZones \
    cellZones \
    meshModifiers \
    parallelData \
    sets \
    cellLevel \
    pointLevel \
    level0Edge \
    refinementHistory \
    surfaceIndex \
;
do
    rm -rf $meshDir/$i $meshDir/$i.gz
done

#------------------------------------------------------------------------------