diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun index 56733c0c87766dbe869af880938264f7467d15ee..3953f6c668caeb66b296d8e2e32dff470b6ae07f 100755 --- a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun @@ -30,7 +30,7 @@ runApplication setFields runApplication decomposePar -force # Run -runParallel $application 6 +runParallel $application 8 # Reconstruct runApplication reconstructPar -noFunctionObjects diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-pre b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-pre index c9d916d4d1e144ace29b1e6f81ddfa44381e9aef..d65d576cf6fcd440146c7b7810b80cde342e5053 100755 --- a/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-pre +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/Allrun-pre @@ -80,6 +80,7 @@ done # Meshing \cp system/controlDict.mesh system/controlDict +\cp system/collapseDict.collapseFaces system/collapseDict runApplication blockMesh -region backgroundMeshDecomposition @@ -92,6 +93,7 @@ runParallel foamyHexMesh $nProcs runParallel collapseEdges $nProcs -collapseFaces -latestTime mv log.collapseEdges log.collapseFaces +\cp system/collapseDict.indirectPatchFaces system/collapseDict runParallel collapseEdges $nProcs -collapseFaceSet indirectPatchFaces -latestTime mv log.collapseEdges log.collapseFaceSet @@ -99,5 +101,8 @@ runParallel checkMesh $nProcs -allTopology -allGeometry -latestTime runApplication reconstructParMesh -latestTime +# Copy the mesh into polyMesh +\cp -r 102/polyMesh constant + # ----------------------------------------------------------------- end-of-file diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.collapseFaces b/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.collapseFaces new file mode 100644 index 0000000000000000000000000000000000000000..5977e0ee8b1ff5dccaee96e24dce73c60c5f34da --- /dev/null +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.collapseFaces @@ -0,0 +1,85 @@ +/*--------------------------------*- 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 0.35; + + // 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; +} + + +// ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.indirectPatchFaces b/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.indirectPatchFaces new file mode 100644 index 0000000000000000000000000000000000000000..0389a33b5a44969e3f7255dcb2cadd31f865d7e9 --- /dev/null +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/collapseDict.indirectPatchFaces @@ -0,0 +1,85 @@ +/*--------------------------------*- 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; +} + + +// ************************************************************************* //