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

[snappyHexMesh] SnappyHexMesh breaks nonCouple connections when using layers

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 7, 2023, 14:00
Default SnappyHexMesh breaks nonCouple connections when using layers
  #1
Member
 
Eduardo Firvida
Join Date: Dec 2010
Posts: 53
Rep Power: 15
efirvida is on a distinguished road
Dear Foamers

I donīt know if this is a bug, or if I'm doing something wrong I will attach my test case for those who want to test. the STL file an be found here

This is not a perfect SHM configuration or case setup, (I still working on it) but it will clarify my point.

I'm using OpenFOAM 10 to work with the new mesh coupling method Non-Conformal Coupling (NCC)

this is my snappyHexMeshDict from now on, I will just activate or deactivate the addLayers feature, which I detect is causing the simulation to explore, with simpleFoam and also with pimpleFoam.

Code:
castellatedMesh true;
snap            true;
addLayers       true;

geometry
{
    innerCylinder
    {
        type searchableCylinder;
        point1      (-0.8 0 0);
        point2      ( 0.2 0 0);
        radius      2;
    }        
    
    rotor
    {
        type        triSurfaceMesh;
        file        "rotor.stl";
    }   
};

castellatedMeshControls
{
    maxLocalCells 100000;
    maxGlobalCells 20000000;
    minRefinementCells 0;
    maxLoadUnbalance 0.05;
    nCellsBetweenLevels 1;
    features
    (
        {
            file        "rotor.eMesh";
            level       5;
        }
    );

    refinementSurfaces
    {
        innerCylinder
        {
            level           (4 4);
            cellZone        innerCylinder;
            faceZone        innerCylinder;
            cellZoneInside  inside;
        }
        rotor
        {
            level           (6 6);
        }
    }

    refinementRegions
    {
        innerCylinder
        {
            mode        inside;
            levels      ((1E15 4));
        }        
        rotor
        {
            mode        distance;
            levels      (
                            (0.015 7)
                            (0.045 5)
                        );
        }
    }

    resolveFeatureAngle          45;
    locationInMesh               (4 0 0);
    allowFreeStandingZoneFaces   false;
}

snapControls
{
    nSmoothPatch                    3;
    tolerance                       2.0;
    nSolveIter                     30;
    nRelaxIter                      5;
        nFeatureSnapIter           30;
        implicitFeatureSnap        false;
        explicitFeatureSnap        true;
        multiRegionFeatureSnap     true;
}

addLayersControls
{
    relativeSizes no;
    layers
    {
        rotor
         {
            nSurfaceLayers 8;
        }
    }
    expansionRatio               1.15;
    thickness                    0.0026;
    //firstLayerThickness        0.00027;
    minThickness                 0.00027;
    nGrow                        0;

    nLayerIter                 200;
    nRelaxIter                   3;

    nSmoothSurfaceNormals        1;
    nSmoothThickness            10;
    nSmoothNormals              10;

    featureAngle                150;
    mergePatchFacesAngle         90;
    maxFaceThicknessRatio         0.5;

    maxThicknessToMedialRatio     0.3;
    nMedialAxisIter              10;
    nSmoothDisplacement          45;
    detectExtrusionIsland      true;

    minMedianAxisAngle          90;

    nBufferCellsNoExtrude        0;
}

meshQualityControls
{
    maxNonOrtho              50;
    maxBoundarySkewness       4;
    maxInternalSkewness       2;
    maxConcave               80;
    minVol                -1E30;
    minTetQuality         1E-30;
    minArea                  -1;
    minTwist               0.01;
    minDeterminant         0.01;
    minFaceWeight          0.05;
    minVolRatio            0.01;
    minTriangleTwist         -1;
    nSmoothScale              4;
    errorReduction         0.75;
    relaxed
    {
        maxNonOrtho          50;
    }
}

mergeTolerance 1e-6;
After the meshing process with addLayers I get this checkMesh result:

Code:
...

Checking basic patch addressing...
                   Patch    Faces   Points
          externalDomain     7560     7895
                   floor     2520     2671
                   inlet     1764     1849
                  outlet     1764     1849
                   rotor   136794   148215
              nonCouple1    94800    97993
              nonCouple2    94800    97991
    nonConformalCyclic_on_nonCouple1        0        0
    nonConformalCyclic_on_nonCouple2        0        0
    nonConformalError_on_nonCouple1        0        0
    nonConformalError_on_nonCouple2        0        0

Checking geometry...
    Overall domain bounding box (-10 -7 -7) (10 7 7)
    Mesh has 3 geometric (non-empty/wedge) directions (1 1 1)
    Mesh has 3 solution (non-empty) directions (1 1 1)
    Boundary openness (8.37944e-17 -9.93776e-18 2.88248e-17) OK.
    Max cell openness = 4.54606e-16 OK.
    Max aspect ratio = 17.7266 OK.
    Minimum face area = 2.28786e-07. Maximum face area = 0.111982.  Face area magnitudes OK.
    Min volume = 4.283e-10. Max volume = 0.0373099.  Total volume = 3919.99.  Cell volumes OK.
    Mesh non-orthogonality Max: 49.5951 average: 6.6127
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.8277 OK.
    Coupled point location match (average 0) OK.

Mesh OK.

End
As you can notice the bonCopule patches have slightly different numbers of points, which didn't occur if I mesh without the layers, as you can notice here in the other checkMesh result after meshing without layer addition:

Code:
...

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
   *Number of regions: 2
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "constant/cellToRegion"
  <<Writing region 0 with 2473395 cells to cellSet region0
  <<Writing region 1 with 326748 cells to cellSet region1

Checking basic patch addressing...
                   Patch    Faces   Points
          externalDomain     7560     7747
                   floor     2520     2623
                   inlet     1764     1849
                  outlet     1764     1849
                   rotor   138310   149323
              nonCouple1    94800    97922
              nonCouple2    94800    97922
    nonConformalCyclic_on_nonCouple1        0        0
    nonConformalCyclic_on_nonCouple2        0        0
    nonConformalError_on_nonCouple1        0        0
    nonConformalError_on_nonCouple2        0        0

Checking geometry...
    Overall domain bounding box (-10 -7 -7) (10 7 7)
    Mesh has 3 geometric (non-empty/wedge) directions (1 1 1)
    Mesh has 3 solution (non-empty) directions (1 1 1)
    Boundary openness (4.04474e-18 1.16983e-17 -6.35165e-17) OK.
    Max cell openness = 3.13835e-16 OK.
    Max aspect ratio = 6.43264 OK.
    Minimum face area = 3.73057e-07. Maximum face area = 0.11197.  Face area magnitudes OK.
    Min volume = 2.04163e-09. Max volume = 0.0373087.  Total volume = 3919.99.  Cell volumes OK.
    Mesh non-orthogonality Max: 48.1571 average: 6.48066
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 3.72748 OK.
    Coupled point location match (average 0) OK.

Mesh OK.

End

So if Run the pimpleFoam I get, the following errors every time that I use SHM with layers and nonCouple patches with different numbers of points.

Code:
Create time
Create mesh for time = 0

patchToPatch: Calculating couplings between 94800 source faces and 94800 target faces
    Source min/average/max coverage = 1/1/1
    Target min/average/max coverage = 1/1/1
    Source average openness/error/depth/angle = 7.3383e-17/4.88935e-15/1.8353e-15/1.2387e-07
    Source max openness/error/depth/angle = 5.09752e-16/5.38361e-14/2.3632e-14/1.70755e-06
    196512 couplings calculated in 4.79937s
fvMeshStitcher: Connecting
    9/5 small couplings removed/added to nonConformalCyclic_on_nonCouple1
    Cell min/avg/max openness = 0/5.04361e-17/3.15049e-15
Selecting fvMeshMover motionSolver
Selecting motion solver: solidBody
Selecting solid-body motion function rotatingMotion
Applying solid body motion to cellZone innerCylinder

PIMPLE: No convergence criteria found


PIMPLE: Corrector convergence criteria found
        "(U|p)": tolerance 1e-05, relTol 0
        Calculations will do 2 corrections if the convergence criteria are not met


PIMPLE: Operating solver in transient mode with 2 outer correctors


Reading field p

Reading field U

Reading/calculating face flux field phi

Selecting viscosity model constant
Selecting turbulence model type RAS
Selecting RAS turbulence model kOmegaSST
Selecting patchDistMethod meshWave
RAS
{
    model           kOmegaSST;
    turbulence      on;
    printCoeffs     on;
    alphaK1         0.85;
    alphaK2         1;
    alphaOmega1     0.5;
    alphaOmega2     0.856;
    gamma1          0.555556;
    gamma2          0.44;
    beta1           0.075;
    beta2           0.0828;
    betaStar        0.09;
    a1              0.31;
    b1              1;
    c1              10;
    F3              false;
}

No MRF models present

No fvModels present
No fvConstraints present
Constructing face velocity Uf

Courant Number mean: 0.000160286 max: 0.571237

Starting time loop

forces forces:
    Not including porosity effects
forces forces write:
    sum of forces:
        pressure : (0 0 0)
        viscous  : (0.00344544 0.00140939 0.00354055)
        porous   : (0 0 0)
    sum of moments:
        pressure : (0 0 0)
        viscous  : (-0.00122158 0.000314107 -0.000430482)
        porous   : (0 0 0)

Courant Number mean: 0.000160286 max: 0.571237
fvMeshStitcher: Disconnecting
    Cell min/avg/max openness = 0/4.86921e-17/2.84231e-16
Time = 5e-06s

PIMPLE: Iteration 1
patchToPatch: Calculating couplings between 94800 source faces and 94800 target faces
    Source min/average/max coverage = 0.992612/0.999979/1
    Target min/average/max coverage = 0.992987/0.999979/1
    Source average openness/error/depth/angle = 1.16439e-16/1.87615e-06/0.000106821/0.0127039
    Source max openness/error/depth/angle = 8.26571e-16/0.00267606/0.00265116/0.322249
    805944 couplings calculated in 1.61243s
fvMeshStitcher: Connecting
munmap_chunk(): invalid pointer
[Naboo:21796] *** Process received signal ***
[Naboo:21796] Signal: Aborted (6)
[Naboo:21796] Signal code:  (-6)
[Naboo:21796] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fc7f8242520]
[Naboo:21796] [ 1] /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7fc7f8296a7c]
[Naboo:21796] [ 2] /lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7fc7f8242476]
[Naboo:21796] [ 3] /lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7fc7f82287f3]
[Naboo:21796] [ 4] /lib/x86_64-linux-gnu/libc.so.6(+0x896f6)[0x7fc7f82896f6]
[Naboo:21796] [ 5] /lib/x86_64-linux-gnu/libc.so.6(+0xa0d7c)[0x7fc7f82a0d7c]
[Naboo:21796] [ 6] /lib/x86_64-linux-gnu/libc.so.6(+0xa105c)[0x7fc7f82a105c]
[Naboo:21796] [ 7] /lib/x86_64-linux-gnu/libc.so.6(free+0xba)[0x7fc7f82a551a]
[Naboo:21796] [ 8] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(+0x2e88b)[0x7fc7ef86a88b]
[Naboo:21796] [ 9] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(+0x2e988)[0x7fc7ef86a988]
[Naboo:21796] [10] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(_ZN4Foam15fvMeshStitchers6moving26internalFaceCorrectMeshPhiERNS_14GeometricFieldIdNS_13fvsPatchFieldENS_11surfaceMeshEEE+0x880)[0x7fc7ef872520]
[Naboo:21796] [11] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(_ZN4Foam15fvMeshStitchers6moving14correctMeshPhiERKNS_22GeometricBoundaryFieldIiNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14GeometricFieldINS_6VectorIdEES3_S4_EESC_+0x2d8)[0x7fc7ef875698]
[Naboo:21796] [12] [6] #0  Foam::error::printStack(Foam::Ostream&)/home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam14fvMeshStitcher7connectEbbb+0x2a5)[0x7fc7fa888095]
[Naboo:21796] [13] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam6fvMesh4moveEv+0x5a)[0x7fc7fa75512a]
[Naboo:21796] [14] pimpleFoam[0x42c6a2]
[Naboo:21796] [15] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7fc7f8229d90]
[Naboo:21796] [16] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7fc7f8229e40]
[Naboo:21796] [17] pimpleFoam[0x430a15]
[Naboo:21796] *** End of error message ***
 at ??:?
[6] #1  Foam::sigSegv::sigHandler(int) at ??:?
[6] #2  ? in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #3  free in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #4  ? at fvMeshStitchersMoving.C:?
[6] #5  ? at fvMeshStitchersMoving.C:?
[6] #6  Foam::fvMeshStitchers::moving::internalFaceCorrectMeshPhi(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>&) at ??:?
[6] #7  Foam::fvMeshStitchers::moving::correctMeshPhi(Foam::GeometricBoundaryField<int, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::GeometricField<Foam::Vector<double>, Foam::fvsPatchField, Foam::surfaceMesh>&) at ??:?
[6] #8  Foam::fvMeshStitcher::connect(bool, bool, bool) at ??:?
[6] #9  Foam::fvMesh::move() at ??:?
[6] #10  --------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
? at ??:?
[6] #11  ? in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #12  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
[6] #13  ? at ??:?
[Naboo:21794:0:21794] Caught signal 11 (Segmentation fault: tkill(2) or tgkill(2) at address 0x3e800005522)
==== backtrace (tid:  21794) ====
 0 0x0000000000042520 __GI___sigaction()  :0
 1 0x0000000000096a7c __pthread_kill_implementation()  ./nptl/pthread_kill.c:43
 2 0x0000000000096a7c __pthread_kill_internal()  ./nptl/pthread_kill.c:78
 3 0x0000000000096a7c __GI___pthread_kill()  ./nptl/pthread_kill.c:89
 4 0x0000000000042476 __GI_raise()  ./signal/../sysdeps/posix/raise.c:26
 5 0x0000000000042520 __GI___sigaction()  :0
 6 0x00000000000a54c9 arena_for_chunk()  ./malloc/arena.c:162
 7 0x00000000000a54c9 arena_for_chunk()  ./malloc/arena.c:160
 8 0x00000000000a54c9 __GI___libc_free()  ./malloc/malloc.c:3390
 9 0x000000000002e88b Foam::Pstream::gather<Foam::List<double>, Foam::ListOp<Foam::sumOp<double> > >()  fvMeshStitchersMoving.C:0
10 0x000000000002e988 Foam::reduce<Foam::List<double>, Foam::ListOp<Foam::sumOp<double> > >()  fvMeshStitchersMoving.C:0
11 0x0000000000036520 Foam::fvMeshStitchers::moving::internalFaceCorrectMeshPhi()  ???:0
12 0x0000000000039698 Foam::fvMeshStitchers::moving::correctMeshPhi()  ???:0
13 0x0000000000888095 Foam::fvMeshStitcher::connect()  ???:0
14 0x000000000075512a Foam::fvMesh::move()  ???:0
15 0x000000000042c6a2 main()  ???:0
16 0x0000000000029d90 __libc_start_call_main()  ./csu/../sysdeps/nptl/libc_start_call_main.h:58
17 0x0000000000029e40 __libc_start_main_impl()  ./csu/../csu/libc-start.c:392
18 0x0000000000029e40 __libc_start_main_impl()  ./csu/../csu/libc-start.c:379
19 0x0000000000430a15 _start()  ???:0
=================================
[Naboo:21794] *** Process received signal ***
[Naboo:21794] Signal: Segmentation fault (11)
[Naboo:21794] Signal code:  (-6)
[Naboo:21794] Failing at address: 0x3e800005522
[Naboo:21794] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f2fae842520]
[Naboo:21794] [ 1] /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7f2fae896a7c]
[Naboo:21794] [ 2] /lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7f2fae842476]
[Naboo:21794] [ 3] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f2fae842520]
[Naboo:21794] [ 4] /lib/x86_64-linux-gnu/libc.so.6(free+0x69)[0x7f2fae8a54c9]
[Naboo:21794] [ 5] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(+0x2e88b)[0x7f2fa806588b]
[Naboo:21794] [ 6] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(+0x2e988)[0x7f2fa8065988]
[Naboo:21794] [ 7] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(_ZN4Foam15fvMeshStitchers6moving26internalFaceCorrectMeshPhiERNS_14GeometricFieldIdNS_13fvsPatchFieldENS_11surfaceMeshEEE+0x880)[0x7f2fa806d520]
[Naboo:21794] [ 8] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfvMeshStitchers.so(_ZN4Foam15fvMeshStitchers6moving14correctMeshPhiERKNS_22GeometricBoundaryFieldIiNS_13fvsPatchFieldENS_11surfaceMeshEEERNS_14GeometricFieldINS_6VectorIdEES3_S4_EESC_+0x2d8)[0x7f2fa8070698]
[Naboo:21794] [ 9] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam14fvMeshStitcher7connectEbbb+0x2a5)[0x7f2fb0e88095]
[Naboo:21794] [10] /home/efirvida/.local/easybuild/software/OpenFOAM/10-foss-2022a/OpenFOAM-10/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam6fvMesh4moveEv+0x5a)[0x7f2fb0d5512a]
[Naboo:21794] [11] pimpleFoam[0x42c6a2]
[Naboo:21794] [12] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7f2fae829d90]
[Naboo:21794] [13] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7f2fae829e40]
[Naboo:21794] [14] pimpleFoam[0x430a15]
[Naboo:21794] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 8 with PID 0 on node Naboo exited on signal 6 (Aborted).
--------------------------------------------------------------------------
Attached Files
File Type: zip rotor.zip (12.9 KB, 4 views)
efirvida is offline   Reply With Quote

Reply

Tags
layer addition, problem mesh, shm


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
[snappyHexMesh] Triangular elements in boundary layers generated by snappyHexMesh mike.franky OpenFOAM Meshing & Mesh Conversion 0 June 3, 2018 10:46
[snappyHexMesh] SnappyHexMesh no layers and no decent mesh for complex geometry pizzaspinate OpenFOAM Meshing & Mesh Conversion 1 February 25, 2015 08:05
[snappyHexMesh] 2D snappyHexMesh with layers grjmell OpenFOAM Meshing & Mesh Conversion 2 May 27, 2013 13:00
[snappyHexMesh] Adding layers goes wrong with SnappyHexMesh Elise OpenFOAM Meshing & Mesh Conversion 1 April 22, 2013 03:32
[snappyHexMesh] SnappyHexMesh doesn't succeed in adding several layers eti0123456789 OpenFOAM Meshing & Mesh Conversion 5 April 9, 2013 03:36


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