Mesh quality issues with multiregion mesh

Hello everyone,

I’m working on a multi-region mesh in Salome (for conjugate heat transfer) where I’m using structured elements for the fluid domain and unstructured elements for the solid domain. I previously used the Netgen algorithm successfully on a smaller model, but it’s too slow for my full-scale geometry.

To reduce meshing time, I’ve switched to Gmsh for the solid region. However, I’m now running into some mesh quality issues — specifically, I’m getting high aspect ratio cells. I’ve attempted to resolve this by increasing the number of smoothing iterations, which helped somewhat, but unfortunately, I’m still left with one particularly problematic cell with an extremely high aspect ratio (on the order of 7.8e6!).

Here’s what I’ve tried so far:

  1. Increased the thickness of the solid wall in the affected region to provide more room for mesh refinement.
  2. Tested different meshing algorithms in Gmsh — switching from Delaunay to Advancing Front — but the issue persists.

To help with troubleshooting, I’ve also attached the .hdf file containing the mesh in question. Also see a picture of the mesh below

The reason I am using a combination of quads and tet meshing is because extrusion 3D is much faster for the square channel flow geometries. And because extrusion 3D cannot be used for the solid domain, I have to go for an unstructured mesh.

I’m now at a bit of a loss on how to eliminate this final bad cell.
Any suggestions or advice from the community would be greatly appreciated — whether that involves local refinement strategies, geometry tweaks, or meshing setup tips.

link to the file:
fullscale_meshed_GMSH_smoothedRev2.hdf

Thanks in advance!

My answer does not answer your question completly but from the image i see, you are not having a structured meshing in the small rectangles, I imagine that it is quasi struc quad combined with extrusion. on the other side, gmsh, is still quite in development (3D meshing with gmsh compatible with 2D from created directly from salome, has been added in the last version, I imagine that it comes from that. but at the same time, you are doing a quite demanding unstructured mesh, as you have quads and reeeeally small gaps that will be filled with pyramids and then tetras, i imagine that it will strougle at least at this kind of refinement where you have one or two elements in some gaps.
once that has been said, why not going with a fully hexa structured mesh you need to decompose your domain. some scripting would make this quite easy…
08

1 Like

Hi Franco,

many thanks for your reply. You are right, I might be pushing it with the gmsh algorithm. Regarding your comment about domain decomposition and scripting, I actually started with periodic cells. This large domain is a 10x 10 fullscale domain of smaller cells. Do you mean I could split this into box subdomains and then do a structured mesh? In that case would I be exporting the geometry from salome into gmsh and use .geo scripting for this?

personally I prefere salome for scripting, I am really not a big fan of gmsh (but it is only a personal opinion! it is a great soft). in any case, you can easily do the blocking by creating the top view with all the projected edes, and then extrude it vertically and cut it with a few planes to make the divisions in the vertical direction. then in salome you can do structured meshing, by using hexahedron (i,j,k) +quadrangulation+number of elements (i suggest to use the propagation groups, ie., that all the parallel edges that should share the same number of elements are in a group (in geom is easy) and then give a sub mesh for each group, so you can set the specific number of elemetns separatly. in your geometry, the final number of blocks as I mentioned is 5355 blocks, and 77 propagation groups, so you have 77 degrees of freedom to set your mesh (obviously there are several that might be spected to have the same values/refinement as there are all same channels, so you can reduce this number of groups (in case that you do same refinement for each channel).
here is a tutorial https://www.youtube.com/watch?v=9csvCst58pc