Automated Hex Mesh - Part Check & Mesh (Loop)

I would like to propose a feature that would make the meshing effort of many parts which need an extruded (or sweep) hex and prism elements a lot easier.

In a case where we have CAD geometry with many flat bars and plates (naturally all 6 sided geometry), and we wish to instruct the mesher to mesh as many as possible with the extruded hex + prism elements. The software could quickly check each part to assess whether ‘extrude’ is possible and mesh with hexhahedral elements, otherwise just mesh it with tetrahedral elements. The function is already within PPM, because it already checks every time we pick a part for extruded meshing, so this would be an automation step to ‘check & mesh’ and ‘move to next’. Something automated and similar to the way PPM searches and applies ‘Contact Pairs’.

This would save the user a lot of time and not have to individually pick each part and assign the extrude function, as it is currently.

Some commercial software have this feature, I think Ansys calls it “Multizone”. It first checks the individual part and assigns meshing priorities e.g. hex, prism, tet, pyramid, cartesian, etc.

PS. I realise that we could convert the CAD geometry to misdurfaces and mesh with shell elements. However, this takes a lot of effort to clean the geometry and extend/trim surfaces, which in any case would be extruded to solid elements (single element thick) in Calculix.

What are your thoughts ?

The 3DEXPERIENCE platform (cloud interface for Abaqus and other DS tools) has such a tool named Partition Hex Mesh. It uses the Structured (like Gmsh’s Transfinite) or Sweep technique to generate hex/wedge elements wherever possible and meshes the rest with tetrahedrons. Compatibility between these meshes is provided by automatically generated tie constraints. Alternatively, pyramid elements can be used.

This tool also colors the volumes according to their meshability (Abaqus/CAE does the same):

  • green - structured
  • yellow - sweepable
  • orange - non-hex meshable

That’s something I would really appreciate in PrePoMax as you could easily determine which parts meet the hex meshing criteria and which don’t.

1 Like

multizone in Ansys maintain number of mesh division of neighbor parts sharing common edges. A quick test by given uniform mesh size with odd values in maximum can achieve this requirement.

Here’s the aforementioned color coding in Abaqus:

It’s very helpful, especially since it updates live during partitioning.

PrePoMax is already know if the part is capable to extrude/sweep or not, but in manual definition a user needs to select surface as base. Maybe by trial seeking possibility for all face of solid parts can be detected and grouped.

Yeah, but there’s also transfinite meshing applied to volumes. That should be easier though, as it would only require checking whether a given part/volume meets the criteria for the number of faces and their edges.

Extrusion, revolution and sweep would indeed require iterating over all faces, but those algorithms are not applicable to compound parts so they would just have to check part by part.

Perhaps a macro for FreeCAD would be a good idea as well - one could keep partitioning and check the criteria on the go.

1 Like

extrusion of compound part is allowed in Salome, but i did not know how it’s really work and maintaining edge division of neighbor solid body to keep the same and merge at final results.

My vision for the next step in PrePoMax meshing is to get closer to what Abaqus does, where seepable regions are automatically determined with their directions and common faces across compounds. For that, a lot of work is needed, but I hope we can get there at some point.

Currently, extrude and sweep mesh are very sensitive to topology, and I think I need to integrate the tools to change the topology first.

1 Like