Artificial cells on large imported meshes during parallel::distributed

41 views
Skip to first unread message

Alex Quinlan

unread,
Dec 13, 2023, 10:58:03 AM12/13/23
to deal.II User Group
Dear Deal.ii Community,

I have been reading the "Parallel computing with multiple processors using distributed memory" module and I'd like to clarify something about the artificial cells shown in the picture below.

parallel_dist.png

I understand from the module that each processor will hold onto it's local portion of cells, along with the "ghost cells" on the border with other processors.  It also includes the dark blue artificial cells, which "ensure that each processor has a mesh that has all the coarse level cells and that respects the invariant that neighboring cells can not differ by more than one level of refinement."

I believe I understand how this works for a problem that begins with a coarse mesh and then undergoes a series of mesh refinements.  In this case, a processor stores it's local refined mesh plus a coarser mesh for non-relevant cells.

However, I'm unclear about how this works if I were to import a fully refined mesh.  Each processor would have it's local mesh, but would it also be storing the artificial cells at the same refinement level as the imported mesh?  Or is there some method of coarsening the mesh on the artificial cells?

So, for example, if I were to import this mesh:meshfine.png

will my processor be stuck with a mesh of artificial cells like this? 

CASE 1)
fine-partition.png

Or is there a way that the mesh will auto-coarsen the artificial cells to something preferred like this?

CASE 2)
coarse-partition.png
(note: I realize that the ghost cells are not represented properly in case 2, and that they should be the same as case 1. )


I am concerned that CASE 1 will cause memory problems when I have very large imported meshes. Can you enlighten me on this issue?

Best regards,
Alex

Daniel Arndt

unread,
Dec 13, 2023, 11:27:41 AM12/13/23
to dea...@googlegroups.com
Alex,

in this case, the triangulation is copied for all processes when using parallel::distributed::Triangulation. You might want to look into using parallel::fullydistributed::Triangulation if your unrefined mesh is very fine.

Best,
Daniel

--
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/b7dc13e7-7b99-4be3-8e23-d1450862cecfn%40googlegroups.com.

Alex Quinlan

unread,
Dec 14, 2023, 10:25:23 AM12/14/23
to deal.II User Group
Thanks, Daniel.  

I will look into parallel::fullydistributed.  It appears that there are no step-## tutorials with parallel::fully distributed, and there's less documentation compared to parallel::distributed. 

I found this repo that looks like it has some good examples about parallel::fullydistributed, so I will start here:  https://github.com/peterrum/dealii-pft


Best regards,
Alex
Reply all
Reply to author
Forward
0 new messages