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

[snappyHexMesh] Acute angle snapping

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 13, 2023, 10:50
Default Acute angle snapping
  #1
Senior Member
 
Julio Pieri
Join Date: Sep 2017
Posts: 107
Rep Power: 9
JulioPieri is on a distinguished road
Hi all!

I consider myself an experienced OF/SHM user, but I never had this much trouble with meshing. I'm familiar with all of snappy's commands and options, but I'm struggling with an acute corner.

Attached you can see the problem that I'm facing. Castellated phase seem to cut out "too much" elements, and the snapping phase can't reach the correct surface. The final elements are terrible. In the picture you can see the stl surface (shaded) and the eMesh file.

I've tried changing every single Snap parameter, iterations, tolerance, number of elements, etc - without success. The elements do get a little better, but hardly usable.

My procedure is to cut the inside of the STL (containing just the tubes and the steam-drum) out of the domain - I've made a background mesh of the furnace and I'm just removing the tubes from it. This guarantees good elements on all other corners, avoiding snappying surfaces that could be created straight from the background. Alternatively, I could have made the usual "sculpt the whole confined fluid domain out of a big blockMesh".

1) How do you guys snap this kind of sharp corner?
2) I'm using meshQuality as default. Maybe changing it could help?
3) I'm suspecting that my eMesh is also not very good. I generated it with surfaceFeatureExtract from the main STL, and with angle of 150. Is that how you guys do it? Could the problem be here?

Basic info:
v2212, Background mesh generated in Salome,
Watertight stl created in FreeCAD and re-triangulated in Blender (uniform and small triangles).
The STL is bigger than the background mesh (pic) - which leads to success when snapping corners of tubes that are 90deg with mesh.
Other corners are ok - for instance, when the tube crosses a vertical side of the mesh.

My (simplified) snappy-dict is:

Code:
castellatedMesh true;
snap            true;
addLayers       false;


// Geometry. Definition of all surfaces. All surfaces are of class
// searchableSurface.
// Surfaces are used
// - to specify refinement for any mesh cell intersecting it
// - to specify refinement for any mesh cell inside/outside/near
// - to 'snap' the mesh boundary to the surface
geometry
{
    mesh.stl
    {
        type triSurfaceMesh;
        name mesh;
    }

}
castellatedMeshControls
{

    maxLocalCells 10000000;


    maxGlobalCells 20000000;

    minRefinementCells 10;


    maxLoadUnbalance 0.10;


    nCellsBetweenLevels 4;

    features
    (
        {
            file "mesh.eMesh";
            level 0;
        }
    );



    refinementSurfaces
    {
        mesh
        {
            level (3 3);
            patchInfo
            {
                type wall;
            }
        }
    }

    // Resolve sharp angles
    resolveFeatureAngle 54;


    refinementRegions
    {
    }


 
    locationInMesh (0.861 0.001 8.711);

    allowFreeStandingZoneFaces false;
}

snapControls
{

    nSmoothPatch 3; // tried 4, 5 and 8

    tolerance 1; // tried 0.8, 1.5 and 3

    nSolveIter 300; // tried 150

    nRelaxIter 12; // tried 4

    // Feature snapping

        nFeatureSnapIter 4; // tried 6, 8, 12 and 24

        implicitFeatureSnap true; // tried false, although implicit usually works better for me
        explicitFeatureSnap false;

        multiRegionFeatureSnap false;

}
Any advice? Thanks!
Attached Images
File Type: jpg castellated-edge-surface.jpg (128.4 KB, 32 views)
File Type: jpg snap.jpg (145.8 KB, 34 views)
File Type: jpg stl-outside-domain.jpg (89.6 KB, 27 views)
File Type: jpg background.jpg (92.4 KB, 22 views)
JulioPieri is offline   Reply With Quote

Old   December 14, 2023, 03:11
Default
  #2
Senior Member
 
M
Join Date: Dec 2017
Posts: 698
Rep Power: 12
AtoHM is on a distinguished road
Since you are doing the blocking manually already, you could try to make the background mesh align with the end "face" of these tubes?
Also one more level of edge refinement for the edges of the tubes might help alot.
AtoHM is offline   Reply With Quote

Old   December 14, 2023, 11:44
Default
  #3
Senior Member
 
Julio Pieri
Join Date: Sep 2017
Posts: 107
Rep Power: 9
JulioPieri is on a distinguished road
Quote:
Originally Posted by AtoHM View Post
Since you are doing the blocking manually already, you could try to make the background mesh align with the end "face" of these tubes?
Also one more level of edge refinement for the edges of the tubes might help alot.
Thank you for your reply.

It's a good idea. However, the inclined surface you see on the picture (the steam drum) is also cut out in snappy.
In order to make those elements aligned with the tube, I'd have to have cut that inclined surface in Salome as well, which would imply complex blocking (subdivisions of 4 sides) to keep it quadrangle. I'd end up with elements radially aligned with the steam drum, instead of vertically aligned with the tubes. Unless... I carefully place the quadrangles to guarantee that alignment. I'll try that!

In the mean time, I noticed that using nSmoothPatch of 2 significantly increased the quality of the elements, though not yet very good. Some very tiny/flat/deformed elements started to show up.
Refining the edge helped as well, but there are still some poor elements in the same spots.
JulioPieri is offline   Reply With Quote

Old   December 15, 2023, 02:29
Default
  #4
Senior Member
 
M
Join Date: Dec 2017
Posts: 698
Rep Power: 12
AtoHM is on a distinguished road
Can you share the geometry? I have a tool to build the blockMesh visually - I cannot make it public at the moment - but I could give it a try.
AtoHM is offline   Reply With Quote

Old   December 15, 2023, 09:12
Default
  #5
Senior Member
 
Julio Pieri
Join Date: Sep 2017
Posts: 107
Rep Power: 9
JulioPieri is on a distinguished road
That would be great. Please let's talk via email, if that's ok? I can't publicly share the whole geometry (here).
JulioPieri is offline   Reply With Quote

Reply

Tags
acute angle, corner, sharp angle, snap, snappyhexmesh


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
Fluent UDF Mesh Motion Issue: Blade Pitch w/ Respect to Azimuth Angle recmvp Fluent UDF and Scheme Programming 0 July 30, 2023 16:50
[snappyHexMesh] SHM not snapping to edge features after adding layers stefano.garbin OpenFOAM Meshing & Mesh Conversion 1 March 10, 2022 04:17
Dynamic contact angle issue: fluent UDF couldn't set the correct contact angle FelixJJ FLUENT 2 October 20, 2021 03:39
[Netgen] Import netgen mesh to OpenFOAM hsieh OpenFOAM Meshing & Mesh Conversion 32 September 13, 2011 06:50
Normal vector, slope and aspect angle g_niro Main CFD Forum 0 February 2, 2011 18:24


All times are GMT -4. The time now is 22:35.