Strategy to snap the boundary of a triangulation to a manifold

32 views
Skip to first unread message

Bruno Blais

unread,
Jun 8, 2020, 12:22:08 PM6/8/20
to deal.II User Group
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?


Wolfgang Bangerth

unread,
Jun 8, 2020, 4:49:25 PM6/8/20
to dea...@googlegroups.com
On 6/8/20 10:22 AM, Bruno Blais wrote:
>
>
> Would any of you have a suggestion on how best to achieve the deformation of
> the nodes to match the manifold?

I suspect that this depends a lot on how exactly your manifold is given. You
need some projection onto the manifold. If you used IGES CAD files, such
projections are built-in with OpenCASCADE. For constructive solid geometry
cases, it may be possible to build the project from known normal vectors. I
expect that the situation becomes complicated in the "creases" where two
boundary patches come together.

Best
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

heena patel

unread,
Jun 9, 2020, 3:33:34 AM6/9/20
to dea...@googlegroups.com
Dear Bruno,
                           I am not expert, but OpenFoam has Snappyhex mesh feature that might help you. Check the link below.

Regards,
Heena

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
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 dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/8d966870-4e33-4915-ad6c-2342018d82c3o%40googlegroups.com.

Doug Shi-Dong

unread,
Jun 9, 2020, 5:47:49 PM6/9/20
to deal.II User Group
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 described:
  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/j.jcp.2012.08.051}.
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. 

I'd love to hear an update when you succeed

Doug
Reply all
Reply to author
Forward
0 new messages