jorgensd / dolfinx_mpc

Extension for dolfinx to handle multi-point constraints.
https://jorgensd.github.io/dolfinx_mpc/
MIT License
32 stars 12 forks source link

Handling hanging nodes #135

Open frlacf opened 1 month ago

frlacf commented 1 month ago

Hi @jorgensd,

Very cool work with the mpc. I appreciate the contribution. It's not really an issue, more an open discussion. I was wondering if dolfinx_mpc could be used to handle hanging nodes? It doesn't seem too far from what is currently implemented.

I plan on using t8code to manage mesh refinement within dolfinx. While I know it's possible to create transitional elements to avoid hanging nodes, and there is currently a pull request to implement this in t8code:

https://elib.dlr.de/187499/1/RemovingHangingFacesFromTreeBasedAMR.pdf

I feel like it adds a lot of complexity to the mesh management strategy as it must be done in post-processing.

I was curious about your thoughts on this and whether or not dolfinx_mpc is a good tool to manage hanging nodes.

Thank you,

Francis Lacombe

jorgensd commented 1 month ago

I think it should be possible to handle. I've thought about this for a while, and insertion of hanging nodes would be something one could do during the refinement process, where a facet splits in 2. One would then have to propagate the information about the facet splits to the MPC constructor, that could handle the appropriate constraint.

As of now, it is not a trivial thing to implement, but a long term goal

holke commented 1 month ago

Hi, we from the t8code community would welcome an integration with dolphinx. Feel free to contact us with any questions. We also have experience with handling nodes numerically and may be able to help.

frlacf commented 1 month ago

Hello @jorgensd,

Thank you for your reply, as I suspected, it doesn't look trivial to accomplish. At the end, the "no hanging node" approach is probably the best answer. Hanging nodes don't add any information to the solution. I believe there is a plan to add mixed topologies mesh (tetra, hex, pyramids) in the 0.10 version of Dolfinx? This could be useful with t8code in transition regions.

Thank you @holke, I am currently trying to familiarize with t8code to see how I could implement a wrapper to import/export meshes between t8code and dolfinx. I will probably contact you in the near future.

Francis Lacombe