CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

[snappyHexMesh] Unkown multiple regions in checkMesh

Register Blogs Community New Posts Updated Threads Search

Like Tree7Likes
  • 2 Post By roth
  • 4 Post By hokhay
  • 1 Post By aendres

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 2, 2017, 14:22
Default Unkown multiple regions in checkMesh
  #1
Member
 
Join Date: Nov 2014
Posts: 92
Rep Power: 11
hokhay is on a distinguished road
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
snappyMeshDict
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;


// ************************************************************************* //
hokhay is offline   Reply With Quote

Old   July 7, 2017, 05:54
Default
  #2
Member
 
Join Date: Nov 2014
Posts: 92
Rep Power: 11
hokhay is on a distinguished road
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
hokhay is offline   Reply With Quote

Old   August 23, 2017, 17:17
Default You're not crazy
  #3
Member
 
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 50
Rep Power: 17
roth is on a distinguished road
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
Your mileage may vary.
aendres and Ship Designer like this.
roth is offline   Reply With Quote

Old   August 24, 2017, 12:48
Default
  #4
Member
 
Join Date: Nov 2014
Posts: 92
Rep Power: 11
hokhay is on a distinguished road
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.
hokhay is offline   Reply With Quote

Old   December 30, 2021, 07:40
Default Problem with symmetry plane
  #5
New Member
 
Aaron Endres
Join Date: Jun 2016
Posts: 12
Rep Power: 9
aendres is on a distinguished road
For me, this problem occured at the symmetry plane of a half model wind tunnel. The hint by roth to execute
Code:
splitMeshRegions -largestOnly
after meshing works, but is a time consuming workaround.

For my specific problem at the symmetry plane, the issue was fixed by changing the patch type to 'patch' instead of 'symmetryPlane' during meshing.
Richal Sun likes this.
aendres is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to set periodic boundary conditions Ganesh FLUENT 15 November 18, 2020 06:09
[snappyHexMesh] multiple regions Tobi OpenFOAM Meshing & Mesh Conversion 56 March 29, 2020 04:53
[CAD formats] Clean / Repair STL file with multiple regions on command line matthiasd OpenFOAM Meshing & Mesh Conversion 6 May 24, 2016 06:51
[snappyHexMesh] Using snappyHexMesh for multiple enclosed regions richard_vega OpenFOAM Meshing & Mesh Conversion 0 November 13, 2014 14:28
OpenFOAM static build on Cray XT5 asaijo OpenFOAM Installation 9 April 6, 2011 12:21


All times are GMT -4. The time now is 23:00.