Skip to content
Snippets Groups Projects
foamClearPolyMesh 3.77 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/sh
    #------------------------------------------------------------------------------
    # =========                 |
    
    # \\      /  F ield         | foam-extend: Open Source CFD
    
    #  \\    /   O peration     | Version:     4.1
    
    Henrik's avatar
    Henrik committed
    #   \\  /    A nd           | Web:         http://www.foam-extend.org
    #    \\/     M anipulation  | For copyright notice see file Copyright
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    #------------------------------------------------------------------------------
    
    #     This file is part of foam-extend.
    
    #     foam-extend 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.
    #
    
    #     foam-extend 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 foam-extend.  If not, see <http://www.gnu.org/licenses/>.
    
    #
    # Script
    #     foamClearPolyMesh
    #
    # Description
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    #    Remove the contents of the constant/polyMesh directory
    #    as per the Foam::polyMesh::removeFiles() method.
    #
    
    #------------------------------------------------------------------------------
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    usage() {
        while [ "$#" -ge 1 ]; do echo "$1" 1>&2; shift; done
        cat <<USAGE 1>&2
    
    usage: ${0##*/} [-case dir] [-region name]
    
        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
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    if [ -n "$regionName" ]
    then
        meshDir=$regionName/polyMesh
    else
        meshDir=polyMesh
    fi
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    # 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
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
        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
    
    Hrvoje Jasak's avatar
    Hrvoje Jasak committed
    
    #
    # remove files (mesh itself, modifiers, snappyHexMesh ones) and subdirectories
    #
    echo "Clearing ${caseDir:-.}/$meshDir" 1>&2
    
    for i in \
        points \
        faces \
        owner \
        neighbour \
        cells \
        boundary \
        pointZones \
        faceZones \
        cellZones \
        meshModifiers \
        parallelData \
        sets \
        cellLevel \
        pointLevel \
        refinementHistory \
        surfaceIndex \
        points.gz \
        faces.gz \
        owner.gz \
        neighbour.gz \
        cells.gz \
        boundary.gz \
        pointZones.gz \
        faceZones.gz \
        cellZones.gz \
        meshModifiers.gz \
        parallelData.gz \
        sets.gz \
        cellLevel.gz \
        pointLevel.gz \
        refinementHistory.gz \
        surfaceIndex.gz \
    ;
    do
        rm -rf $meshDir/$i
    done
    
    
    #------------------------------------------------------------------------------