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 7fc1915e1d
commit 4bc77e6aff
34 changed files with 233 additions and 295 deletions

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/*