CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] Multi region spliting doesn't result in desired boundaries (https://www.cfd-online.com/Forums/openfoam-meshing/244068-multi-region-spliting-doesnt-result-desired-boundaries.html)

Hr_kules July 20, 2022 08:17

Multi region spliting doesn't result in desired boundaries
 
Hey everyone,


i am still stuck with my mutliregion meshin problem. After i figured that closed stls are necessary for desired results. I am currently creating my stls with a python script. The first test worked like a charm, however if i make some changes to the geometry the same procedure doesn't work anymore and i got patches split between the regions. I have made a surfaceCheck for both stls describing the whole region. The first check of the working example delivers following:
Code:

/*---------------------------------------------------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  9
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
Build  : 9-b456138dc4bc
Exec  : surfaceCheck RegionP0.stl
Date  : Jul 20 2022
Time  : 15:49:26
Host  : "nico-Tower"
PID    : 102498
I/O    : uncollated
Case  : /home/nico/Spyder/toOpenfoam
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "RegionP0.stl" ...

Statistics:
Triangles    : 84
Vertices    : 44
Bounding Box : (-0.25 -0.3086 -0.055) (0.25 0.055 0.03)

Region    Size
------    ----
wallplate.stl    24
wallfluidhot.stl    26
inlethot.stl    2
outlethot.stl    2
outletcold.stl    2
inletcold.stl    2
wallfluidcold.stl    26


Surface has no illegal triangles.

Triangle quality (equilateral=1, collapsed=0):
    0 .. 0.05  : 0.0714286
    0.05 .. 0.1  : 0.285714
    0.1 .. 0.15  : 0.047619
    0.15 .. 0.2  : 0
    0.2 .. 0.25  : 0.047619
    0.25 .. 0.3  : 0.190476
    0.3 .. 0.35  : 0.047619
    0.35 .. 0.4  : 0.047619
    0.4 .. 0.45  : 0
    0.45 .. 0.5  : 0
    0.5 .. 0.55  : 0
    0.55 .. 0.6  : 0
    0.6 .. 0.65  : 0.0952381
    0.65 .. 0.7  : 0
    0.7 .. 0.75  : 0.0952381
    0.75 .. 0.8  : 0.0238095
    0.8 .. 0.85  : 0.0238095
    0.85 .. 0.9  : 0
    0.9 .. 0.95  : 0.0238095
    0.95 .. 1  : 0

    min 0.00155657 for triangle 61
    max 0.932917 for triangle 59

Edges:
    min 0.005 for edge 19 points (-0.25 -0.1443 -0.01)(-0.25 -0.1443 -0.015)
    max 0.500899 for edge 85 points (-0.25 -0.3086 0.03)(0.25 -0.3086 0)

Checking for points less than 1e-6 of bounding box ((0.5 0.3636 0.085) metre) apart.
Found 0 nearby points.

Surface is closed. All edges connected to two faces.

Number of unconnected parts : 1

Number of zones (connected area with consistent normal) : 36
More than one normal orientation.


End

the second not working example:
Code:

/*---------------------------------------------------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  9
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
Build  : 9-b456138dc4bc
Exec  : surfaceCheck RegionP1.stl
Date  : Jul 20 2022
Time  : 15:49:33
Host  : "nico-Tower"
PID    : 102504
I/O    : uncollated
Case  : /home/nico/Spyder/toOpenfoam
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Reading surface from "RegionP1.stl" ...

Statistics:
Triangles    : 140
Vertices    : 72
Bounding Box : (-0.25 -0.3086 -0.055) (0.25 0.09 0.03)

Region    Size
------    ----
wallplate.stl    40
wallfluidhot.stl    46
inlethot.stl    2
outlethot.stl    2
outletcold.stl    2
inletcold.stl    2
wallfluidcold.stl    46


Surface has no illegal triangles.

Triangle quality (equilateral=1, collapsed=0):
    0 .. 0.05  : 0.0428571
    0.05 .. 0.1  : 0.257143
    0.1 .. 0.15  : 0.0571429
    0.15 .. 0.2  : 0
    0.2 .. 0.25  : 0.0285714
    0.25 .. 0.3  : 0.114286
    0.3 .. 0.35  : 0.0285714
    0.35 .. 0.4  : 0.0571429
    0.4 .. 0.45  : 0
    0.45 .. 0.5  : 0.0285714
    0.5 .. 0.55  : 0
    0.55 .. 0.6  : 0
    0.6 .. 0.65  : 0.171429
    0.65 .. 0.7  : 0
    0.7 .. 0.75  : 0.171429
    0.75 .. 0.8  : 0
    0.8 .. 0.85  : 0.0142857
    0.85 .. 0.9  : 0.0142857
    0.9 .. 0.95  : 0.0142857
    0.95 .. 1  : 0

    min 0.00155657 for triangle 106
    max 0.932917 for triangle 96

Edges:
    min 0.005 for edge 20 points (-0.25 -0.0893 -0.015)(-0.25 -0.0893 -0.01)
    max 0.500899 for edge 143 points (-0.25 -0.3086 0.03)(0.25 -0.3086 0)

Checking for points less than 1e-6 of bounding box ((0.5 0.3986 0.085) metre) apart.
Found 0 nearby points.

Surface is closed. All edges connected to two faces.

Number of unconnected parts : 1

Number of zones (connected area with consistent normal) : 62
More than one normal orientation.


End

And this is the snappyhexmeshdict i am using:
Code:

/*--------------------------------*- C++ -*----------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  9
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class      dictionary;
    object      snappyHexMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg"

castellatedMesh true;
snap            true;
addLayers      false;

geometry
{
    heatexchanger
    {
        type triSurfaceMesh;
        file "Region.stl";
   
        regions
        {
            wallfluidhot.stl        {name wallfluidhot;}
            inlethot.stl        {name Inlethot;}
            outlethot.stl        {name Outlethot;}
            wallplate.stl        {name wallplate;}
            wallfluidcold.stl        {name wallfluidcold;}
            inletcold.stl        {name Inletcold;}
            outletcold.stl        {name Outletcold;}                                   
        }
       
       
    }

    fluidhotToPlate
    {
        type triSurfaceMesh;
        file "upperInterface.stl";
    }

    fluidcoldToPlate
    {
        type triSurfaceMesh;
        file "lowerInterface.stl";
    }
};

castellatedMeshControls
{
    features
    (
        {         

            file        "Region.eMesh";
            level      2;

            file        "upperInterface.eMesh";
            level      2;   
           
            file        "lowerInterface.eMesh";
            level      2;   
        }                             
    );
   
    refinementSurfaces
    {
        heatexchanger
        {
            level (0 0);
           
            regions
            {
                Inletcold        { level (2 2); patchInfo { type patch;} }
                Outletcold      { level (2 2); patchInfo { type patch;} }
                wallfluidcold    { level (3 3); patchInfo { type wall; } }
                Inlethot        { level (2 2); patchInfo { type patch;} }
                Outlethot        { level (2 2); patchInfo { type patch;} }
                wallfluidhot    { level (3 3); patchInfo { type wall; } }
                wallplate        { level (3 3); patchInfo { type wall; } }                               
            }
           
           
            //cellZone    plate;
            //mode        insidePoint;
            //insidePoint (0 -0.305 -0.003);
           
        }

        fluidhotToPlate
        {
            level (2 2);
            faceZone    fluidhotToPlate;
            cellZone    fluidhot;
            mode        insidePoint;
            insidePoint (0 -0.28 0.01);
        }

        fluidcoldToPlate
        {
            level (2 2);
            faceZone    fluidcoldToPlate;
            cellZone    fluidcold;
            mode        insidePoint;
            insidePoint (0 -0.28 -0.03);
        }
    }

    nCellsBetweenLevels 1;

    locationInMesh (0 -0.28 -0.01);
}

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


addLayersControls
{
    relativeSizes      true;
    minThickness        1;
    finalLayerThickness 1;
    expansionRatio      1;
    layers
    {}
}

// ************************************************************************* //

Is there anything fundamentally wrong? I can't understand why the splitting of the meshing fails if the surface is closed. Additionally: I use the interfaces and the other parts of the stls to test each desired region before meshing wether they are closed or not and for every run, they were closed. I thought having closed stls would finally solve my problem, but i can't seem to solve it alone.


If any additional information is required, i will provide it.


Kind regards and stay safe.

Hr_kules July 20, 2022 08:33

3 Attachment(s)
I figured it would make sense to show the triangulation of the area, so i have attached two images the first one the working example, thew second one the already not working case. As well as an example how a single region is supposed to look like at the end.


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