Prof. Blais,

Bonjour fellow Montreal-er (McGill), land of the bagel and poutine.

I have also given some thoughts to robustly generate our meshes with GMSH.

I think it's great to see that we've concluded to similar steps as you 

   1. Provide GMSH some CAD/NURBS parametrization from which can generate a 
   hex mesh (or tets which you manually subdivide).
   2. Read the mesh with linear elements into the Triangulation as well as 
   the NURBS parametrization as the Manifold.
   3. Represent the entire mesh as with a high-order polynomial-base by 
   associating the Triangulation with a MappingFEField with 
   FESystem<dim>(FE_Q(order)), where the DoF represent vertices locations. 
   (optional I guess)
   4. Use Manifold<dim,spacedim>::project_to_manifold() as referred by 
   Prof. Bangerth to obtain displacements of the surface mesh. Surface points 
   already on the Manifold will have 0 displacements.
   5. Use elasticity equations just like in doi = {10.2514/6.2009-949} to 
   robustly displace the volume mesh, or use the optimization-based method 
   from the actual GMSH group doi = {10.1016/}.

A student in our group is tackling some of those steps later on. 

>From your previous post, it seemed that you have completed step 1 and 2. 
Step 4 really seems to be the missing ingredient.

I currently have step 3 and 5 for shape optimization, where the initial 
mesh is generated within deal.II and displacements in Step 4 are given by 
an optimizer. 
(ugly code:

I'd love to hear an update when you succeed


On Monday, June 8, 2020 at 12:22:08 PM UTC-4, Bruno Blais wrote:
> Dear all,
> I hope you are doing well.
> In my endless quest for robust mesh generation of hex meshes using GMSH, I 
> have managed to come up with a very robust strategy to generate hex-only 
> meshes
> My only issue (which is a major one) is that this implies that my 
> decomposition from tet to hex adds nodes that are not "snapped" to the 
> boundary, but that are only linear interpolation of the other node on the 
> triangular faces.
> Consequently, my quest remains unfulfilled.
> Meshing through high-order and snapping the additional node to a 
> high-order mesh from within GMSH is very troublesome and not very robust 
> (and also very time consuming). However, an idea came to mind.
> I was wondering if there could be an easy way to "snap" my faces to the 
> manifold to which they belong.
> My problem is thus the following:
> - Given a triangulation and a manifold
> - Some nodes are exactly on the manifolds (the original nodes of the tets) 
> and some are not (the added nodes in the subdivision)
> - What would be the best way to deform mesh so that the non-conforming 
> node get deformed to the position which would be implied by the manifold? I 
> think I could also make the process more robust by solving an additional 
> elasticity equation during the deformation to deform the entire mesh 
> instead of just the nodes close to the manifold.
> Would any of you have a suggestion on how best to achieve the deformation 
> of the nodes to match the manifold?

The deal.II project is located at
For mailing list/forum options, see
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
To view this discussion on the web visit

Reply via email to