2
$\begingroup$

I am trying to code a scalable parallel AMR for unstructured grid. There seems to be three approaches for this

a) Store some global grid info on each processor and partition with parmetis (The easiest approach I am pursuing). I have never used ParMetis before (just metis) so I do not know how one would be able to read a given mesh file in parallel for partitioning, and then later on store the file in a format readable in parallel.

b) Store global grid on rank=0, use Metis and then scatter. I don't like this approach because it is more involved than (a), and you still need one node that is able to store the whole grid anyway.

c) Use an approach like p4est, which only works for structured quads/hexes. I am not sure how much global information is stored on each processor but it seems pretty scalable. Can the techniques used for the mesh encoding in p4est be used for unstructured grids as well. It seems to me even if one stores only one integer, say to indicate to which processor an element belongs, sooner or later scalability will be limited due to not being able to store that information one a node. What I think is done in p4est is to partition a coarse grid (able to be stored on each node), and do refinement after partitioning, but this approach can not be used for unstructured AMR, right ?

Thanks for any input.

$\endgroup$
  • 2
    $\begingroup$ Your comment about p4est is not entirely correct: It stores the entire coarse mesh on each processor, but the final, refined mesh is completely distributed. Furthermore, the coarse mesh can be an unstructured quad/hex mesh. It just needs to be small enough to fit onto each processor, which in practice means that the coarse mesh ought to have less than, say, 100,000 cells. $\endgroup$ – Wolfgang Bangerth Apr 16 '17 at 23:58
  • $\begingroup$ Thanks, I meant to say p4est can not handle unstructured grid with a mix of elements (tets, tri, quads, hexs) in the same grid. So what I am interested in is if p4est's encoding techniques can be used when the amr involves a general type of tree (not necessarily quad- or oct- tree), and still be highly scalable. $\endgroup$ – danny Apr 17 '17 at 18:36
  • $\begingroup$ I bet it is possible to write something like p4est that is as highly scalable. I just don't know that anyone would have the time or interest to do so. $\endgroup$ – Wolfgang Bangerth Apr 18 '17 at 3:15
  • $\begingroup$ But I do know that Carsten Burstedde, one of the authors of p4est, is working on a tet version of it. $\endgroup$ – Wolfgang Bangerth Apr 18 '17 at 3:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.