|
[Sponsors] | |||||
[snappyHexMesh] Unkown multiple regions in checkMesh |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|
|
#1 |
|
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 13 ![]() |
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;
// ************************************************************************* //
|
|
|
|
|
|
|
|
|
#2 |
|
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 13 ![]() |
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 Thank you very much |
|
|
|
|
|
|
|
|
#3 |
|
Member
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 50
Rep Power: 18 ![]() |
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 |
|
|
|
|
|
|
|
|
#4 |
|
Member
Join Date: Nov 2014
Posts: 92
Rep Power: 13 ![]() |
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.
|
|
|
|
|
|
|
|
|
#5 |
|
New Member
Aaron Endres
Join Date: Jun 2016
Posts: 13
Rep Power: 11 ![]() |
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. |
|
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| [snappyHexMesh] multiple regions | Tobi | OpenFOAM Meshing & Mesh Conversion | 57 | November 20, 2025 08:29 |
| how to set periodic boundary conditions | Ganesh | FLUENT | 15 | November 18, 2020 07:09 |
| [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 |