Add/remove some cells "one by one"

40 views
Skip to first unread message

Olivier Jamond

unread,
Aug 26, 2022, 8:36:13 AM8/26/22
to deal.II User Group
I am working at the french "Alternative Energies and Atomic Energy Commission" on a quite generic library which deals with finite-elements/finite-volumes/discontinuous-galerkin/... in a large field of applications in a HPC framework.

In this library, we use external libraries to deal with distributed meshes, and we already have 2 "mesh backends'' (based on moab (https://sigma.mcs.anl.gov/moab-library/) and pumi (https://scorec.rpi.edu/pumi/)). We would like to enable non-conrforming AMR functionalities, but none of these 2 backends handle non-conforming meshes... So we are thinking about using the "Triangulation" module of dealii as a new mesh backend which handles non-corforming mesh refinement.

A rather important aspect of our software design is that we can "migrate" cells between processes, either deleting the cells on the source process (for load balancing for instance), or letting them on the source process and importing them as "ghost cells" on the destination process (even if they are not located "near" the boundary of the destination subdomain).

But after a first insight, I feel that it may be not straightforward to add/remove some cells or vertices (on the coarse mesh) "one by one" with dealii's "Triangulations". We mainly use these functionalities within our "migration" processes. I assume that there is an equivalent migration process within dealii to deal with load balancing, and maybe we could use them out of the box. But our "migration as ghosts" process, in which a subdomain can import any cell from the other process as a ghost cell, seems to be less common...

Will it be possible with dealii's "Triangulation" module to:
- either add/remove some cells "one by one",
- or doing such a "migration as ghost" out of the box ?

Thank for helping,
Best regards,
Olivier Jamond

Bruno Turcksin

unread,
Aug 26, 2022, 1:12:25 PM8/26/22
to deal.II User Group
Olivier,

I don't think what you want to do is possible. deal.II delegates the load balancing and the re-distribution to p4est. My understanding is that p4est cannot do what you ask and therefore deal.II can't do it either.

Best,

Bruno

Marc Fehling

unread,
Aug 26, 2022, 1:26:45 PM8/26/22
to deal.II User Group
Olivier,

we offer weighted load balancing through the p4est library. This allows you to change load balancing dynamically upon a criterion that you choose. However this does not (necessarily) mean that you can do it on a cell-by-cell level. Are you willing to compromise? :-)

Marc

Wolfgang Bangerth

unread,
Aug 26, 2022, 4:13:30 PM8/26/22
to dea...@googlegroups.com
On 8/26/22 06:36, Olivier Jamond wrote:
>
> Will it be possible with dealii's "Triangulation" module to:
> - either add/remove some cells "one by one",
> - or doing such a "migration as ghost" out of the box ?

We have classes called SolutionTransfer that transfer data during
re-partitioning. Data transfer is separate from partitioning in deal.II.

Best
W.

--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/
Reply all
Reply to author
Forward
0 new messages