- separate handling of auxiliary files vs time directories - restore0Dir: avoid removing 0/ if 0.orig/ does not exist
229 lines
5.1 KiB
Bash
229 lines
5.1 KiB
Bash
#---------------------------------*- sh -*-------------------------------------
|
|
# ========= |
|
|
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
# \\ / O peration |
|
|
# \\ / A nd | www.openfoam.com
|
|
# \\/ M anipulation |
|
|
#------------------------------------------------------------------------------
|
|
# Copyright (C) 2011-2016 OpenFOAM Foundation
|
|
# Copyright (C) 2015-2021 OpenCFD Ltd.
|
|
#------------------------------------------------------------------------------
|
|
# License
|
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
|
#
|
|
# Script
|
|
# CleanFunctions
|
|
#
|
|
# Description
|
|
# Miscellaneous cleanup functions for tutorial cases
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
|
|
cleanTimeDirectories()
|
|
{
|
|
echo "Cleaning case $PWD"
|
|
zeros=""
|
|
while [ ${#zeros} -lt 8 ]
|
|
do
|
|
rm -rf ./"0.$zeros"[1-9]* ./"-0.$zeros"[1-9]*
|
|
zeros="0$zeros"
|
|
done
|
|
rm -rf ./[1-9]* ./-[1-9]*
|
|
}
|
|
|
|
|
|
# Various files (logs, paraview, etc)
|
|
cleanAuxiliary()
|
|
{
|
|
rm -rf \
|
|
./log ./log.* ./log-* ./logSummary.* \
|
|
./.fxLock ./*.xml ./ParaView* ./paraFoam* \
|
|
./*.blockMesh ./*.foam ./*.OpenFOAM \
|
|
./.setSet
|
|
}
|
|
|
|
|
|
cleanAdiosOutput()
|
|
{
|
|
if [ -d adiosData ] && [ -d system ]
|
|
then
|
|
rm -rf adiosData
|
|
fi
|
|
}
|
|
|
|
|
|
cleanDynamicCode()
|
|
{
|
|
if [ -d dynamicCode ] && [ -d system ]
|
|
then
|
|
rm -rf dynamicCode
|
|
fi
|
|
}
|
|
|
|
|
|
cleanSnappyFiles()
|
|
{
|
|
rm -f \
|
|
constant/polyMesh/cellLevel \
|
|
constant/polyMesh/pointLevel \
|
|
constant/polyMesh/refinementHistory \
|
|
constant/polyMesh/level0Edge \
|
|
constant/polyMesh/surfaceIndex
|
|
rm -f \
|
|
processor*/constant/polyMesh/cellLevel \
|
|
processor*/constant/polyMesh/pointLevel \
|
|
processor*/constant/polyMesh/refinementHistory \
|
|
processor*/constant/polyMesh/level0Edge \
|
|
processor*/constant/polyMesh/surfaceIndex
|
|
rm -f \
|
|
constant/cellLevel \
|
|
constant/pointLevel \
|
|
0/cellLevel \
|
|
0/pointLevel
|
|
rm -f \
|
|
processor*/constant/cellLevel \
|
|
processor*/constant/pointLevel \
|
|
processor*/0/cellLevel \
|
|
processor*/0/pointLevel
|
|
}
|
|
|
|
|
|
cleanOptimisation()
|
|
{
|
|
rm -rf optimisation
|
|
rm -rf constant/controlPoints
|
|
}
|
|
|
|
|
|
cleanPostProcessing()
|
|
{
|
|
rm -rf Ensight EnSight ensightWrite insitu VTK
|
|
rm -rf postProcessing
|
|
rm -rf postProcessing-*
|
|
rm -rf cuttingPlane
|
|
rm -rf surfaceSampling
|
|
}
|
|
|
|
|
|
cleanCase()
|
|
{
|
|
cleanTimeDirectories
|
|
cleanAdiosOutput
|
|
cleanAuxiliary
|
|
cleanDynamicCode
|
|
cleanOptimisation
|
|
cleanPostProcessing
|
|
|
|
rm -rf processor*
|
|
rm -rf TDAC
|
|
rm -rf probes*
|
|
rm -rf forces*
|
|
rm -rf graphs*
|
|
rm -rf sets
|
|
rm -rf system/machines
|
|
|
|
# Possible blockMesh output
|
|
rm -f blockTopology.vtu blockTopology.obj blockCentres.obj
|
|
|
|
# From mpirunDebug
|
|
rm -f gdbCommands mpirun.schema
|
|
|
|
cleanSnappyFiles
|
|
rm -f 0/cellDist
|
|
|
|
(
|
|
cd constant 2>/dev/null || exit 0
|
|
|
|
rm -rf \
|
|
cellDecomposition cellToRegion cellLevel* pointLevel* \
|
|
tetDualMesh \
|
|
;
|
|
|
|
# Old constant/polyMesh location for blockMeshDict still in use?
|
|
# - emit a gentle warning
|
|
if [ -e polyMesh/blockMeshDict.m4 ]
|
|
then
|
|
rm -f polyMesh/blockMeshDict
|
|
echo
|
|
echo "Warning: not removing constant/polyMesh/"
|
|
echo " It contains a 'blockMeshDict.m4' file."
|
|
echo " Relocate the file to system/ to avoid this warning"
|
|
echo
|
|
elif [ -e polyMesh/blockMeshDict ]
|
|
then
|
|
echo
|
|
echo "Warning: not removing constant/polyMesh/"
|
|
echo " It contains a 'blockMeshDict' file."
|
|
echo " Relocate the file to system/ to avoid this warning"
|
|
else
|
|
# Remove polyMesh entirely if there is no blockMeshDict
|
|
rm -rf polyMesh
|
|
fi
|
|
)
|
|
|
|
if [ -e system/blockMeshDict.m4 ]
|
|
then
|
|
rm -f system/blockMeshDict
|
|
fi
|
|
}
|
|
|
|
|
|
# Frequently used - cleanCase and rm -rf 0/
|
|
cleanCase0()
|
|
{
|
|
cleanCase
|
|
rm -rf 0
|
|
}
|
|
|
|
|
|
removeCase()
|
|
{
|
|
echo "Removing case ${1:-unknown}"
|
|
[ "$#" -ge 1 ] && rm -rf "$1"
|
|
}
|
|
|
|
|
|
cleanSamples()
|
|
{
|
|
rm -rf sets samples sampleSurfaces
|
|
}
|
|
|
|
|
|
cleanUcomponents()
|
|
{
|
|
rm -rf 0/Ux 0/Uy 0/Uz
|
|
}
|
|
|
|
|
|
cleanFaMesh()
|
|
{
|
|
(
|
|
cd constant 2>/dev/null || exit 0
|
|
|
|
# Old constant/polyMesh location for blockMeshDict still in use?
|
|
# - emit a gentle warning
|
|
if [ -e faMesh/faMeshDefinition ]
|
|
then
|
|
rm -f faMesh/faceLabels* faMesh/faBoundary*
|
|
echo
|
|
echo "Warning: not removing the constant/faMesh/ directory"
|
|
echo " It contains a 'faMeshDefinition' file"
|
|
echo " Relocate the file to system/ to avoid this warning"
|
|
echo
|
|
else
|
|
# Remove faMesh/ entirely if there is no faMeshDefinition
|
|
rm -rf faMesh
|
|
fi
|
|
)
|
|
}
|
|
|
|
|
|
cleanApplication()
|
|
{
|
|
echo "Cleaning application $PWD"
|
|
wclean
|
|
}
|
|
|
|
|
|
#------------------------------------------------------------------------------
|