|
[Sponsors] |
[snappyHexMesh] Unkown multiple regions in checkMesh |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
July 2, 2017, 15:22 |
Unkown multiple regions in checkMesh
|
#1 |
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 12 |
Hi all,
I am creating mesh for a car model using snappyHexMesh. The base mesh is created by blockMesh with 1 region uniform size mesh in all direction. The meshing is succeeded but when I run checkMesh, it recognizes there are 25 regions with 24 of them has only 1 cell and not connected by any face. I have tried to use a coarsen mesh and these regions will disappear. I am wondering what could be wrong with the mesh setting to create these strange single orphan cell. Could someone help me please? Here are the checkMesh message Code:
Mesh stats points: 8746254 faces: 23837811 internal faces: 22475311 cells: 7556504 faces per cell: 6.12891 boundary patches: 16 point zones: 0 face zones: 0 cell zones: 0 Overall number of cells of each type: hexahedra: 7244033 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 312471 Breakdown of polyhedra by number of faces: faces number of cells 6 91117 8 1967 9 145087 10 319 11 682 12 45230 13 86 14 397 15 25321 16 13 17 65 18 2160 21 27 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. *Number of regions: 25 The mesh has multiple regions which are not connected by any face. <<Writing region information to "0/cellToRegion" <<Writing region 0 with 7556480 cells to cellSet region0 <<Writing region 1 with 1 cells to cellSet region1 <<Writing region 2 with 1 cells to cellSet region2 <<Writing region 3 with 1 cells to cellSet region3 <<Writing region 4 with 1 cells to cellSet region4 <<Writing region 5 with 1 cells to cellSet region5 <<Writing region 6 with 1 cells to cellSet region6 <<Writing region 7 with 1 cells to cellSet region7 <<Writing region 8 with 1 cells to cellSet region8 <<Writing region 9 with 1 cells to cellSet region9 <<Writing region 10 with 1 cells to cellSet region10 <<Writing region 11 with 1 cells to cellSet region11 <<Writing region 12 with 1 cells to cellSet region12 <<Writing region 13 with 1 cells to cellSet region13 <<Writing region 14 with 1 cells to cellSet region14 <<Writing region 15 with 1 cells to cellSet region15 <<Writing region 16 with 1 cells to cellSet region16 <<Writing region 17 with 1 cells to cellSet region17 <<Writing region 18 with 1 cells to cellSet region18 <<Writing region 19 with 1 cells to cellSet region19 <<Writing region 20 with 1 cells to cellSet region20 <<Writing region 21 with 1 cells to cellSet region21 <<Writing region 22 with 1 cells to cellSet region22 <<Writing region 23 with 1 cells to cellSet region23 <<Writing region 24 with 1 cells to cellSet region24 Checking basic patch addressing... Patch Faces Points frontAndBack 100553 106381 inlet 10000 10308 outlet 10000 10307 lowerWall 54965 57188 upperWall 30000 30744 carBody.stl 641743 656793 deflector.stl 1699 1776 frontWheel.stl 139312 142521 rearWheel.stl 69692 72064 Checking geometry... Overall domain bounding box (-10 -10 0) (20 0 10) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (-4.12961e-16 2.67085e-15 -8.31598e-16) OK. Max cell openness = 4.33681e-16 OK. Max aspect ratio = 1 OK. Minimum face area = 9.76562e-06. Maximum face area = 0.01. Face area magnitudes OK. Min volume = 3.05176e-08. Max volume = 0.001. Total volume = 2997.62. Cell volumes OK. Mesh non-orthogonality Max: 25.2394 average: 5.98596 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1 OK. Coupled point location match (average 0) OK. Mesh OK. End Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object snappyHexMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Which of the steps to run castellatedMesh true; snap false; addLayers false; geometry { carBody.stl { type triSurfaceMesh; scale 0.001; regions { name carBody; } } /*frontSpliter.stl { type triSurfaceMesh; scale 0.001; regions { name spliter; } }*/ deflector.stl { type triSurfaceMesh; scale 0.001; regions { name deflector; } } frontWheel.stl { type triSurfaceMesh; scale 0.001; regions { name frontWheel; } } rearWheel.stl { type triSurfaceMesh; scale 0.001; regions { name rearWheel; } } refinementBox { type searchableBox; min (-4.0 -2.5 0.0); max ( 10 0 4); } }; castellatedMeshControls { maxLocalCells 1000000; maxGlobalCells 40000000; minRefinementCells 100; // Allow a certain level of imbalance during refining // (since balancing is quite expensive) // Expressed as fraction of perfect balance (= overall number of cells / // nProcs). 0=balance always. maxLoadUnbalance 0.10; nCellsBetweenLevels 3; // Explicit feature edge refinement // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Specifies a level for any cell intersected by its edges. // This is a featureEdgeMesh, read from constant/triSurface for now. features ( { file "carBody.eMesh"; scale 0.001; level 5; } { file "deflector.eMesh"; scale 0.001; level 5; } { file "frontWheel.eMesh"; scale 0.001; level 5; } { file "rearWheel.eMesh"; scale 0.001; level 5; } ); refinementSurfaces { carBody.stl { scale 0.001; level (4 5); patchInfo { type wall; inGroups (bodyGroup); } } deflector.stl { scale 0.001; level (4 5); patchInfo { type wall; inGroups (deflector); } } frontWheel.stl { scale 0.001; level (4 5); patchInfo { type wall; inGroups (frontWheel); } } rearWheel.stl { scale 0.001; level (4 5); patchInfo { type wall; inGroups (rearWheel); } } } // Resolve sharp angles resolveFeatureAngle 20; // Region-wise refinement // ~~~~~~~~~~~~~~~~~~~~~~ refinementRegions { refinementBox { mode inside; levels ((1E15 1)); } carBody.stl { mode distance; levels ((0.1 3) (1 2)); } } // Mesh selection // ~~~~~~~~~~~~~~ locationInMesh (-2.001 -1.001 0.001); allowFreeStandingZoneFaces true; } // Settings for the snapping. snapControls { //- Number of patch smoothing iterations before finding correspondence // to surface nSmoothPatch 3; //- Relative distance for points to be attracted by surface feature point // or edge. True distance is this factor times local // maximum edge length. tolerance 2.0; //- Number of mesh displacement relaxation iterations. nSolveIter 500; //- Maximum number of snapping relaxation iterations. Should stop // before upon reaching a correct mesh. nRelaxIter 5; // Feature snapping //- Number of feature edge snapping iterations. // Leave out altogether to disable. nFeatureSnapIter 10; //- Detect (geometric only) features by sampling the surface // (default=false). implicitFeatureSnap false; //- Use castellatedMeshControls::features (default = true) explicitFeatureSnap true; //- Detect points on multiple surfaces (only for explicitFeatureSnap) multiRegionFeatureSnap false; } addLayersControls { relativeSizes true; // Per final patch (so not geometry!) the layer information layers { "(carBody).*" { nSurfaceLayers 2; } } expansionRatio 1.3; finalLayerThickness 0.1; minThickness 0.01; nGrow 0; featureAngle 60; slipFeatureAngle 30; nRelaxIter 3; nSmoothSurfaceNormals 2; nSmoothNormals 3; nSmoothThickness 10; maxFaceThicknessRatio 0.5; maxThicknessToMedialRatio 0.3; minMedianAxisAngle 90; nBufferCellsNoExtrude 0; nLayerIter 50; } meshQualityControls { #include "meshQualityDict" nSmoothScale 5; errorReduction 0.75; } // Advanced writeFlags ( scalarLevels layerSets layerFields // write volScalarField for layer coverage ); // Merge tolerance. Is fraction of overall bounding box of initial mesh. // Note: the write tolerance needs to be higher than this. mergeTolerance 1e-6; // ************************************************************************* // |
|
July 7, 2017, 06:54 |
|
#2 |
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 12 |
After lots of try and error, I have found out that there are a some very small blocks of mesh that are created during the castellatedMesh process of snappyHexMesh. The size of these blocks are a lot smaller than the specify mesh level.
When the mesh refinement level or the base mesh size is changed, they may disappear or change location. These blocks usually appear next to sharp concave edge. Does anyone experience similar problem and how to solve it? Here is the photo for a group only isolated regions https://drive.google.com/file/d/0BwX...ew?usp=sharing Thank you very much |
|
August 23, 2017, 18:17 |
You're not crazy
|
#3 |
Member
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 50
Rep Power: 17 |
Yes, I have started seeing the exact same problem in the most recent version of Foam. I haven't had the time to create a simple case in order to report a bug.
As a work-around, to delete all those extraneous regions, I've used Code:
splitMesh -largestOnly -overwrite |
|
August 24, 2017, 13:48 |
|
#4 |
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 12 |
I have found that the problem can be solved by activating the minVolCollapseRatio parameter. It seems to me this is a known problem and this parameter is designed to due with it.
|
|
December 30, 2021, 08:40 |
Problem with symmetry plane
|
#5 |
New Member
Aaron Endres
Join Date: Jun 2016
Posts: 13
Rep Power: 10 |
For me, this problem occured at the symmetry plane of a half model wind tunnel. The hint by roth to execute
Code:
splitMeshRegions -largestOnly For my specific problem at the symmetry plane, the issue was fixed by changing the patch type to 'patch' instead of 'symmetryPlane' during meshing. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
how to set periodic boundary conditions | Ganesh | FLUENT | 15 | November 18, 2020 07:09 |
[snappyHexMesh] multiple regions | Tobi | OpenFOAM Meshing & Mesh Conversion | 56 | March 29, 2020 05:53 |
[CAD formats] Clean / Repair STL file with multiple regions on command line | matthiasd | OpenFOAM Meshing & Mesh Conversion | 6 | May 24, 2016 07:51 |
[snappyHexMesh] Using snappyHexMesh for multiple enclosed regions | richard_vega | OpenFOAM Meshing & Mesh Conversion | 0 | November 13, 2014 15:28 |
OpenFOAM static build on Cray XT5 | asaijo | OpenFOAM Installation | 9 | April 6, 2011 13:21 |