Sprucing up the tutorials folder and adding -dict to "collapseEdges"

Patch provided by Bruno Santos
Resolves patch application request http://www.openfoam.org/mantisbt/view.php?id=2015
This commit is contained in:
Henry Weller
2016-03-06 19:06:44 +00:00
parent 37157f436c
commit 499c221df4
34 changed files with 233 additions and 295 deletions

View File

@ -38,7 +38,7 @@ cd ${0%/*} || exit 1 # Run from this directory
logReport()
{
caseName=`dirname $1 | sed s/"\(.*\)\.\/"/""/g`
app=`echo $1 | sed s/"\(.*\)\."/""/g`
app=`echo $1 | sed s/"\(.*\)log\."/""/g`
appAndCase="Application $app - case $caseName"
fatalError=`grep "FOAM FATAL" $1`

View File

@ -9,26 +9,31 @@ application=`getApplication`
runApplication blockMesh
runApplication topoSet -dict system/cRefine.topoSetDict
runApplication -s cRefine \
topoSet -dict system/cRefine.topoSetDict
runApplication refineMesh -overwrite -dict system/refineMeshDict
rm log.topoSet
runApplication topoSet -dict system/f.topoSetDict
runApplication -s f \
topoSet -dict system/f.topoSetDict
# create the pyrolysis region.
runApplication extrudeToRegionMesh -overwrite
rm log.topoSet
runApplication topoSet -dict system/fBurner.topoSetDict
runApplication -s fBurner \
topoSet -dict system/fBurner.topoSetDict
runApplication createPatch -overwrite
decomposePar -force > log.decomposePar 2>&1
runApplication -s master \
decomposePar -force
decomposePar -region panelRegion > log.decomposeParPanelRegion 2>&1
runApplication -s panelRegion \
decomposePar -region panelRegion
decomposePar -fields > log.decomposePar 2>&1
runApplication -s fields \
decomposePar -fields
runParallel `getApplication`

View File

@ -18,7 +18,7 @@ done
for i in bottomWater topAir heater leftSolid rightSolid
do
changeDictionary -region $i > log.changeDictionary.$i 2>&1
runApplication -s $i changeDictionary -region $i
done

View File

@ -22,7 +22,7 @@ done
for i in bottomAir topAir heater leftSolid rightSolid
do
changeDictionary -region $i > log.changeDictionary.$i 2>&1
runApplication -s $i changeDictionary -region $i
done

View File

@ -7,16 +7,10 @@ cd ${0%/*} || exit 1 # Run from this directory
./Allrun.pre
runApplication decomposePar -region air
mv log.decomposePar log.decomposePar.air
runApplication decomposePar -region porous
mv log.decomposePar log.decomposePar.porous
runApplication -s air decomposePar -region air
runApplication -s porous decomposePar -region porous
runParallel $(getApplication)
runApplication reconstructPar -latestTime -region air
mv log.reconstructPar log.reconstructPar.air
runApplication reconstructPar -latestTime -region porous
mv log.reconstructPar log.reconstructPar.porous
runApplication -s air reconstructPar -latestTime -region air
runApplication -s porous reconstructPar -latestTime -region porous

View File

@ -6,20 +6,18 @@ cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions
#create meshes
runApplication blockMesh -region air
mv log.blockMesh log.blockMesh.air
runApplication blockMesh -region porous
mv log.blockMesh log.blockMesh.porous
runApplication -s air blockMesh -region air
runApplication -s porous blockMesh -region porous
# create rotor blades in air region
runApplication topoSet -region air -dict system/topoSetDict.1
mv log.topoSet log.topoSet.air.1
runApplication -s air.1 \
topoSet -region air -dict system/topoSetDict.1
runApplication createBaffles -region air -overwrite
# create rotor zone in air region for MRF
runApplication topoSet -region air -dict system/topoSetDict.2
mv log.topoSet log.topoSet.air.2
runApplication -s air.2 \
topoSet -region air -dict system/topoSetDict.2
rm -rf constant/air/polyMesh/sets

View File

@ -15,13 +15,15 @@ cd ${0%/*} || exit 1 # Run from this directory
# Agglomerate patch faces
for i in bottomAir topAir
do
faceAgglomerate -region $i -dict constant/viewFactorsDict > log.faceAgglomerate.$i 2>&1
runApplication -s $i \
faceAgglomerate -region $i -dict constant/viewFactorsDict
done
# Generate view factors
for i in bottomAir topAir
do
viewFactorsGen -region $i > log.viewFactorsGen.$i 2>&1
runApplication -s $i \
viewFactorsGen -region $i
done
runApplication `getApplication`

View File

@ -18,13 +18,15 @@ runApplication decomposePar -allRegions
# Agglomerate patch faces
for i in bottomAir topAir
do
mpirun -np 4 faceAgglomerate -region $i -dict constant/viewFactorsDict -parallel> log.faceAgglomerate.$i 2>&1
runParallel -s $i -np 4 \
faceAgglomerate -region $i -dict constant/viewFactorsDict
done
# Generate view factors
for i in bottomAir topAir
do
mpirun -np 4 viewFactorsGen -region $i -parallel > log.viewFactorsGen.$i 2>&1
runParallel -s $i -np 4 \
viewFactorsGen -region $i
done
# Run

View File

@ -17,7 +17,7 @@ done
for i in bottomAir topAir heater leftSolid rightSolid
do
changeDictionary -region $i > log.changeDictionary.$i 2>&1
runApplication -s $i changeDictionary -region $i
done

View File

@ -17,15 +17,11 @@ do
sed "s/XXX/$e/g" constant/transportProperties.template \
> constant/transportProperties
runApplication `getApplication`
mv log.boundaryFoam log.boundaryFoam_$e
runApplication -s $e `getApplication`
# extract y+, U+
# note: both must be added to foamLog.db
runApplication foamLog log.boundaryFoam_$e
mv log.foamLog log.foamLog_$e
runApplication -s $e foamLog log.boundaryFoam.$e
if [ -e logs/yPlus_0 ]
then

View File

@ -9,13 +9,14 @@ runApplication surfaceFeatureExtract
runApplication foamyHexMesh
# Collapse only patch faces from incomplete conformation
cp system/collapseDict.indirectPatchFaces system/collapseDict
runApplication collapseEdges -collapseFaceSet indirectPatchFaces -latestTime -overwrite
mv log.collapseEdges log.collapseEdges-indirectPatchFaces
runApplication -s indirectPatchFaces \
collapseEdges -collapseFaceSet indirectPatchFaces -latestTime -overwrite \
-dict system/collapseDict.indirectPatchFaces
# Collapse small edges and sliver faces
cp system/collapseDict.collapseFaces system/collapseDict
runApplication collapseEdges -collapseFaces -latestTime -overwrite
runApplication -s collapseFaces \
collapseEdges -collapseFaces -latestTime -overwrite \
-dict system/collapseDict.collapseFaces
runApplication checkMesh -allTopology -allGeometry -latestTime

View File

@ -5,7 +5,6 @@ cp -rf 0.org 0
runApplication blockMesh
#runApplication setSet -batch wallFilmRegion.setSet
#mv log.setSet log.wallFilmRegion.setSet
runApplication topoSet
runApplication extrudeToRegionMesh -overwrite

View File

@ -8,15 +8,11 @@ cd ${0%/*} || exit 1 # Run from this directory
application=`getApplication`
runApplication decomposePar -region wallFilmRegion
mv log.decomposePar log.decomposePar.wallFilmRegion
runApplication decomposePar
mv log.decomposePar log.decomposePar.primaryRegion
runApplication -s wallFilmRegion decomposePar -region wallFilmRegion
runApplication -s primaryRegion decomposePar
runParallel $application
runApplication reconstructPar -region wallFilmRegion
mv log.reconstructPar log.reconstructPar.wallFilmRegion
runApplication reconstructPar
mv log.reconstructPar log.reconstructPar.primaryRegion
runApplication -s wallFilmRegion reconstructPar -region wallFilmRegion
runApplication -s primaryRegion reconstructPar

View File

@ -16,8 +16,7 @@ runApplication topoSet
runApplication subsetMesh c0 -patch wallFilm -overwrite
# split the obstacle patches into cube[1-6]_patch[1-6]
echo "running patchifyObstacles"
./patchifyObstacles > log.patchifyObstacles 2>&1
runApplication ./patchifyObstacles
# Create the wall film region via extrusion
runApplication extrudeToRegionMesh -overwrite

View File

@ -6,7 +6,6 @@ cp -rf 0.org 0
runApplication blockMesh
#runApplication setSet -batch wallFilmRegion.setSet
#mv log.setSet log.wallFilmRegion.setSet
runApplication topoSet -dict system/wallFilmRegion.topoSet
runApplication extrudeToRegionMesh -overwrite

View File

@ -5,17 +5,25 @@ cp -rf 0.org 0
runApplication blockMesh
#runApplication setSet -batch wallFilmRegion.setSet
#mv log.setSet log.wallFilmRegion.setSet
runApplication topoSet -dict system/wallFilmRegion.topoSet
mv log.topoSet log.wallFilmRegion.topoSet
#If using batch mode
#runApplication -s wallFilmRegion \
# setSet -batch wallFilmRegion.setSet
#If using dictionary mode
runApplication -s wallFilmRegion \
topoSet -dict system/wallFilmRegion.topoSet
runApplication extrudeToRegionMesh -overwrite
#runApplication setSet -region wallFilmRegion -batch createWallFilmRegionPatches.setSet
#mv log.setSet log.createWallFilmRegionPatches.setSet
runApplication topoSet -region wallFilmRegion -dict system/createWallFilmRegionPatches.topoSet
mv log.topoSet log.createWallFilmRegionPatches.topoSet
#If using batch mode
#runApplication -s createWallFilmRegionPatches \
# setSet -region wallFilmRegion \
# -batch createWallFilmRegionPatches.setSet
#If using dictionary mode
runApplication -s createWallFilmRegionPatches \
topoSet -region wallFilmRegion \
-dict system/createWallFilmRegionPatches.topoSet
runApplication createPatch -region wallFilmRegion -overwrite

View File

@ -9,11 +9,11 @@ cp $FOAM_TUTORIALS/resources/geometry/blob.stl.gz constant/triSurface/
runApplication foamyHexMesh
runApplication collapseEdges -latestTime -collapseFaces
mv log.collapseEdges log.collapseFaces
runApplication -s collapseFaces \
collapseEdges -latestTime -collapseFaces
runApplication collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
mv log.collapseEdges log.collapseFaceSet
runApplication -s collapseFaceSet \
collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
runApplication checkMesh -latestTime -allGeometry -allTopology

View File

@ -12,11 +12,11 @@ runApplication decomposePar -region backgroundMeshDecomposition
runParallel foamyHexMesh
runParallel collapseEdges -latestTime -collapseFaces
mv log.collapseEdges log.collapseFaces
runParallel -s collapseFaces \
collapseEdges -latestTime -collapseFaces
runParallel collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
mv log.collapseEdges log.collapseFaceSet
runParallel -s collapseFaceSet \
collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
runParallel checkMesh -latestTime -allTopology -allGeometry

View File

@ -9,11 +9,11 @@ cp $FOAM_TUTORIALS/resources/geometry/flange.stl.gz constant/triSurface/
runApplication foamyHexMesh
runApplication collapseEdges -latestTime -collapseFaces
mv log.collapseEdges log.collapseFaces
runApplication -s collapseFaces \
collapseEdges -latestTime -collapseFaces
runApplication collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
mv log.collapseEdges log.collapseFaceSet
runApplication -s collapseFaceSet \
collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
runApplication checkMesh -latestTime -allGeometry -allTopology

View File

@ -13,11 +13,11 @@ runApplication decomposePar -region backgroundMeshDecomposition
runParallel foamyHexMesh
runParallel collapseEdges -latestTime -collapseFaces
mv log.collapseEdges log.collapseFaces
runParallel -s collapseFaces \
collapseEdges -latestTime -collapseFaces
runParallel collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
mv log.collapseEdges log.collapseFaceSet
runParallel -s collapseFaceSet \
collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
runParallel checkMesh -latestTime -allTopology -allGeometry

View File

@ -6,19 +6,14 @@ cd ${0%/*} || exit 1 # Run from this directory
intersectSurfaces()
{
runApplication \
surfaceBooleanFeatures \
intersection \
"$@"
outputName1=$(basename $1)
outputName1=${outputName1%.*}
outputName2=$(basename $2)
outputName2=${outputName2%.*}
mv log.surfaceBooleanFeatures \
log.surfaceBooleanFeatures.$outputName1:$outputName2
runApplication -s $outputName1:$outputName2 \
surfaceBooleanFeatures intersection "$@"
}
# Set application name
@ -77,30 +72,33 @@ done
# Meshing
\cp system/controlDict.mesh system/controlDict
\cp system/collapseDict.collapseFaces system/collapseDict
runApplication blockMesh -region backgroundMeshDecomposition
runApplication decomposePar -region backgroundMeshDecomposition
runApplication -s backgroundMeshDecomposition \
decomposePar -region backgroundMeshDecomposition
runApplication surfaceFeatureExtract
runParallel foamyHexMesh
runParallel collapseEdges -collapseFaces -latestTime
mv log.collapseEdges log.collapseFaces
runParallel -s faces \
collapseEdges -collapseFaces -latestTime \
-dict system/collapseDict.collapseFaces
#\cp system/collapseDict.indirectPatchFaces system/collapseDict
#runParallel collapseEdges -collapseFaceSet indirectPatchFaces -latestTime
#mv log.collapseEdges log.collapseFaceSet
#runParallel -s faceSet \
# collapseEdges -collapseFaceSet indirectPatchFaces -latestTime \
# -dict system/collapseDict.indirectPatchFaces
runParallel checkMesh -allTopology -allGeometry -latestTime
runApplication reconstructParMesh -latestTime
# Copy the mesh into polyMesh and delete the 102 directory
\cp -r 101/polyMesh constant
\rm -rf 101
# Copy the mesh from the latest time folder into polyMesh and delete that
# latest time folder
latestTime=$(foamListTimes -latestTime)
\cp -r $latestTime/polyMesh constant
\rm -rf $latestTime
#------------------------------------------------------------------------------

View File

@ -24,8 +24,8 @@ runApplication createPatch -overwrite
runApplication setFields
# Decompose
\rm log.decomposePar
runApplication decomposePar -force
runApplication -s main \
decomposePar -force
# Run
runParallel $application

View File

@ -1,85 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: dev |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// If on, after collapsing check the quality of the mesh. If bad faces are
// generated then redo the collapsing with stricter filtering.
controlMeshQuality on;
collapseEdgesCoeffs
{
// Edges shorter than this absolute value will be merged
minimumEdgeLength 1e-6;
// The maximum angle between two edges that share a point attached to
// no other edges
maximumMergeAngle 180;
}
collapseFacesCoeffs
{
// The initial face length factor
initialFaceLengthFactor 1;
// If the face can't be collapsed to an edge, and it has a span less than
// the target face length multiplied by this coefficient, collapse it
// to a point.
maxCollapseFaceToPointSideLengthCoeff 0.3;
// Allow early collapse of edges to a point
allowEarlyCollapseToPoint on;
// Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
// allowEarlyCollapseToPoint is enabled
allowEarlyCollapseCoeff 0.2;
// Defining how close to the midpoint (M) of the projected
// vertices line a projected vertex (X) can be before making this
// an invalid edge collapse
//
// X---X-g----------------M----X-----------g----X--X
//
// Only allow a collapse if all projected vertices are outwith
// guardFraction (g) of the distance form the face centre to the
// furthest vertex in the considered direction
guardFraction 0.1;
}
controlMeshQualityCoeffs
{
// Name of the dictionary that has the mesh quality coefficients used
// by motionSmoother::checkMesh
#include "meshQualityDict";
// The amount that minimumEdgeLength will be reduced by for each
// edge if that edge's collapse generates a poor quality face
edgeReductionFactor 0.5;
// The amount that initialFaceLengthFactor will be reduced by for each
// face if its collapse generates a poor quality face
faceReductionFactor 0.5;
// Maximum number of outer iterations is mesh quality checking is enabled
maximumIterations 10;
maximumSmoothingIterations 1;
maxPointErrorCount 3;
}
// ************************************************************************* //

View File

@ -0,0 +1 @@
collapseDict.collapseFaces

View File

@ -4,28 +4,28 @@ cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication surfaceOrient \
constant/triSurface/cone.stl \
-inside '(0 -0.5 0)' \
constant/triSurface/cone_orient.stl
mv log.surfaceOrient log.surfaceOrient.cone
runApplication -s cone \
surfaceOrient constant/triSurface/cone.stl \
-inside '(0 -0.5 0)' \
constant/triSurface/cone_orient.stl
runApplication surfaceOrient \
constant/triSurface/sphere.stl \
-inside '(0 -0.5 0)' \
constant/triSurface/sphere_orient.stl
mv log.surfaceOrient log.surfaceOrient.sphere
runApplication -s sphere \
surfaceOrient constant/triSurface/sphere.stl \
-inside '(0 -0.5 0)' \
constant/triSurface/sphere_orient.stl
runApplication surfaceBooleanFeatures intersection \
constant/triSurface/cone_orient.stl \
constant/triSurface/sphere_orient.stl
runApplication \
surfaceBooleanFeatures intersection \
constant/triSurface/cone_orient.stl \
constant/triSurface/sphere_orient.stl
runApplication foamyHexMesh
runApplication collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
mv log.collapseEdges log.collapseFaceSet
runApplication -s collapseFaceSet \
collapseEdges -latestTime -collapseFaceSet indirectPatchFaces
runApplication collapseEdges -latestTime -collapseFaces
runApplication -s collapseFaces \
collapseEdges -latestTime -collapseFaces
#------------------------------------------------------------------------------

View File

@ -17,16 +17,15 @@ mkdir 0
# Refine over Z, in 6 passes
for index in 1 2 3 4 5 6; do
runApplication calcRadiusField
mv log.calcRadiusField log.calcRadiusField.tier$index
runApplication -s tier$index calcRadiusField
runApplication topoSet -dict system/topoSetDict.tier$index
mv log.topoSet log.topoSet.tier$index
runApplication -s tier$index \
topoSet -dict system/topoSetDict.tier$index
## foamToVTK -cellSet tier$index
runApplication refineMesh -dict system/refineMeshDict.tier$index -overwrite
mv log.refineMesh log.refineMesh.tier$index
runApplication -s tier$index \
refineMesh -dict system/refineMeshDict.tier$index -overwrite
rm -r 0/*
@ -35,17 +34,15 @@ done
# Refine over cylindrical coordinates, in 3 passes
for index in 1 2 3; do
runApplication calcRadiusField -calcDirections
mv log.calcRadiusField log.calcRadiusField.range$index
runApplication -s range$index calcRadiusField -calcDirections
runApplication topoSet -dict system/topoSetDict.range$index
mv log.topoSet log.topoSet.range$index
runApplication -s range$index \
topoSet -dict system/topoSetDict.range$index
## foamToVTK -cellSet tier$index
runApplication refineMesh -dict system/refineMeshDict.range$index \
-overwrite
mv log.refineMesh log.refineMesh.range$index
runApplication -s range$index \
refineMesh -dict system/refineMeshDict.range$index -overwrite
rm -r 0/*

View File

@ -4,12 +4,6 @@ cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runRefineMesh ()
{
echo "Running refineMesh on $PWD"
refineMesh -dict system/refineMeshDict -overwrite > log.refineMesh 2>&1
}
# copy DTC hull surface from resources folder
cp $FOAM_TUTORIALS/resources/geometry/DTC-scaled.stl.gz constant/triSurface/
@ -17,17 +11,13 @@ runApplication surfaceFeatureExtract
runApplication blockMesh
i=1
if [ -f log.topoSet.6 ] ; then
i=7
fi
while [ "$i" -lt 7 ] ; do
cp system/topoSetDict.${i} system/topoSetDict
runApplication topoSet
runRefineMesh
mv log.topoSet log.topoSet.$i
mv log.refineMesh log.refineMesh.$i
i=$(expr $i + 1)
for i in 1 2 3 4 5 6
do
runApplication -s $i \
topoSet -dict system/topoSetDict.${i}
runApplication -s $i \
refineMesh -dict system/refineMeshDict -overwrite
done
runApplication snappyHexMesh -overwrite

View File

@ -7,28 +7,15 @@ cd ${0%/*} || exit 1 # Run from this directory
# Get application name
application=`getApplication`
runRefineMesh ()
{
echo "Running refineMesh on $PWD"
refineMesh -dict system/refineMeshDict > log.refineMesh 2>&1
}
runApplication blockMesh
i=1
if [ -f log.topoSet ] ; then
i=3
fi
while [ "$i" -lt 3 ] ; do
if [ -f log.topoSet ] ; then
mv log.topoSet log.topoSet.1
fi
cp system/topoSetDict.${i} system/topoSetDict
runApplication topoSet
runRefineMesh
cp -r 1e-08/polyMesh/* constant/polyMesh
rm -rf 1e-08
i=`expr $i + 1`
for i in 1 2
do
runApplication -s $i \
topoSet -dict system/topoSetDict.${i}
runApplication -s $i \
refineMesh -dict system/refineMeshDict -overwrite
done
runApplication $application

View File

@ -4,12 +4,6 @@ cd ${0%/*} || exit 1 # Run from this directory
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runRefineMesh ()
{
echo "Running refineMesh on $PWD"
refineMesh -dict system/refineMeshDict -overwrite > log.refineMesh 2>&1
}
# copy DTC hull surface from resources folder
cp $FOAM_TUTORIALS/resources/geometry/DTC-scaled.stl.gz constant/triSurface/
@ -17,17 +11,13 @@ runApplication surfaceFeatureExtract
runApplication blockMesh
i=1
if [ -f log.topoSet.6 ] ; then
i=7
fi
while [ "$i" -lt 7 ] ; do
cp system/topoSetDict.${i} system/topoSetDict
runApplication topoSet
runRefineMesh
mv log.topoSet log.topoSet.$i
mv log.refineMesh log.refineMesh.$i
i=$(expr $i + 1)
for i in 1 2 3 4 5 6
do
runApplication -s $i \
topoSet -dict system/topoSetDict.${i}
runApplication -s $i \
refineMesh -dict system/refineMeshDict -overwrite
done
runApplication snappyHexMesh -overwrite

View File

@ -25,9 +25,7 @@ runApplication renumberMesh -overwrite
# - generate face/cell sets and zones
#runApplication setSet -batch createInletOutletSets.setSet
#mv log.setSet log.createInletOutletSets.setSet
runApplication topoSet -dict system/createInletOutletSets.topoSetDict
#mv log.topoSet log.createInletOutletSets.topoSet
# - create the inlet/outlet and AMI patches
@ -35,7 +33,7 @@ runApplication topoSet -dict system/createInletOutletSets.topoSetDict
runApplication createPatch -overwrite
# - test by running moveDynamicMes
# - test by running moveDynamicMesh
#runApplication moveDynamicMesh -checkAMI

View File

@ -8,10 +8,14 @@ cd ${0%/*} || exit 1 # Run from this directory
application=`getApplication`
runApplication blockMesh
runApplication topoSet
mv log.topoSet log.topoSet.1
runApplication -s 1 topoSet
runApplication subsetMesh -overwrite c0 -patch floatingObject
runApplication topoSet -dict system/topoSetDict-selectBottom
runApplication -s selectBottom \
topoSet -dict system/topoSetDict-selectBottom
runApplication createPatch -overwrite
cp -r 0.org 0 > /dev/null 2>&1