3D meshing -- How is "Maximum element size" determined?

The attached model was meshed with Mecway's internal mesher. The specified maximum element size was 8 mm.

However, on the sides of the model the largest element edges are almost 10 mm.




In the following image, the largest element edge is 19 mm. (From the top view of the model, use a cutting plane at 65%.)




I assume that "Maximum element size" refers to the longest edge of an element. If so then why are the generated elements larger than the specified maximum element size?

Mecway 16.0

Thanks,
Don C.

Comments

  • edited August 2022
    I'm not sure, sorry. I just treat the max. and min. element sizes as approximate. 70% error in the worst case seems normal.
  • Upon further investigation it appears that this problem is associated with the meshing "Size grading" slider. My original post had the slider set at 7 from the bottom. If the slider is increased to 10 from the bottom (most aggressive) then the maximum length of an element edge increases to 31 mm for the given cutting plane (top view, 65%). This is 3x greater than the specified 8 mm max element size.





    However, the surface mesh remains approximately the same but with somewhat fewer elements.



    I also tried Netgen 6 but with about the same results.

    Thus, it appears that the max element size refers only to the surface mesh, not the interior mesh. If so then perhaps the menu prompt should be changed from "Maximum element size" to something like "Maximum surface edge length" and/or add some popup information. Some related information in the manual would also be helpful.

    Is there a way to determine the max edge length for all elements of a component or, alternately, of the entire model? (Could probably be done by coding the liml but is there an easier way?)

    Is there any way to force the mesher to only generate elements whose edge lengths are <= "Maximum element size", even for elements in the interior?
  • @dculp in Salome, there are several mesh quality parameters that you can check, and edge lenght was one of them.
  • @dculp, that's certainly a problem of it not respecting maximum element size properly. I never knew it behaved like that. I see Gmsh seems to also but without the size grading, it's hard to be sure. I may just rename it to work around the problem.

    You do global refinement by using a point refinement with a radius that encompasses the whole model. But there's a limit on how big the radius can be which wouldn't fit a fine mesh on a slender shape.
  • Victor --

    Perhaps the following is a partial explanation -

    "Also note that in 3D only the Delaunay algorithm will respect the prescribed mesh size field. The frontal algorithm based on Netgen does not: it will only do its best to propagate the mesh size information from the boundaries."
    (https://gmsh.geuz.narkive.com/AQWYWtiL/characteristic-length)
  • Thanks. I guess that explains both Netgen and Gmsh which defaults to Delaunay and doesn't seem to show increase in size away from the surface after-all:


  • HI dculp,

    ¿Could you give it a try to the following custom gmsh commands? I have try some models and it respects the edge lenght in the inside volume with a pretty mesh too.

    You will need to

    -Install gmsh and point to gmsh.exe in tools>options>gmsh. I'm using gmsh-4.10.5 .
    -Dissable generate gmsh custom commands in Meshing parameters.
    -Copy and paste the following in the Gmsh custom commands window.

    Mesh.MaxNumThreads2D = 8;
    Mesh.MaxNumThreads3D = 8;
    Mesh.Algorithm = 6;
    Mesh.Algorithm3D = 7;
    Mesh.CharacteristicLengthMax = 8;
    Mesh.CharacteristicLengthMin = 8;
    Mesh.CharacteristicLengthFactor = .5;
    Mesh.ElementOrder=2;
    Mesh 3;

    -Not sure why it works but I suspect CharacteristicLengthMax=Mesh.CharacteristicLengthMin and lenghtFactor



    Let me know if it works for you.
    Regards
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!