mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
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:
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -24,8 +24,8 @@ runApplication createPatch -overwrite
|
||||
runApplication setFields
|
||||
|
||||
# Decompose
|
||||
\rm log.decomposePar
|
||||
runApplication decomposePar -force
|
||||
runApplication -s main \
|
||||
decomposePar -force
|
||||
|
||||
# Run
|
||||
runParallel $application
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
1
tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict
Symbolic link
1
tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict
Symbolic link
@ -0,0 +1 @@
|
||||
collapseDict.collapseFaces
|
||||
@ -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
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -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/*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user