Hi Barry, "Why do you need a cuboidal domain decomposition?"
I gave it some thought. I don't always need a cuboidal decomposition. But I would need something that essentially minimized the surface area of the faces of each decomposition. Is there a way to get this? Could you please direct me to a reference a reference where I can read about the domain decomposition strategies used in petsc dmplex. Sincerely, Swarnava On Mon, Nov 25, 2019 at 9:02 PM Smith, Barry F. <[email protected]> wrote: > > "No, I have an unstructured mesh that increases in resolution away from > the center of the cuboid. See Figure: 5 in the ArXiv paper > https://arxiv.org/pdf/1907.02604.pdf for a slice through the midplane of > the cuboid. Given this type of mesh, will dmplex do a cuboidal domain > decomposition?" > > No definitely not. Why do you need a cuboidal domain decomposition? > > Barry > > > > On Nov 25, 2019, at 10:45 PM, Swarnava Ghosh <[email protected]> > wrote: > > > > Hi Matt, > > > > > > https://arxiv.org/pdf/1907.02604.pdf > > > > On Mon, Nov 25, 2019 at 7:54 PM Matthew Knepley <[email protected]> > wrote: > > On Mon, Nov 25, 2019 at 6:25 PM Swarnava Ghosh <[email protected]> > wrote: > > Dear PETSc users and developers, > > > > I am working with dmplex to distribute a 3D unstructured mesh made of > tetrahedrons in a cuboidal domain. I had a few queries: > > 1) Is there any way of ensuring load balancing based on the number of > vertices per MPI process. > > > > You can now call DMPlexRebalanceSharedPoints() to try and get better > balance of vertices. > > > > Thank you for pointing out this function! > > > > 2) As the global domain is cuboidal, is the resulting domain > decomposition also cuboidal on every MPI process? If not, is there a way to > ensure this? For example in DMDA, the default domain decomposition for a > cuboidal domain is cuboidal. > > > > It sounds like you do not want something that is actually unstructured. > Rather, it seems like you want to > > take a DMDA type thing and split it into tets. You can get a cuboidal > decomposition of a hex mesh easily. > > Call DMPlexCreateBoxMesh() with one cell for every process, distribute, > and then uniformly refine. This > > will not quite work for tets since the mesh partitioner will tend to > violate that constraint. You could: > > > > No, I have an unstructured mesh that increases in resolution away from > the center of the cuboid. See Figure: 5 in the ArXiv paper > https://arxiv.org/pdf/1907.02604.pdf for a slice through the midplane of > the cuboid. Given this type of mesh, will dmplex do a cuboidal domain > decomposition? > > > > Sincerely, > > SG > > > > a) Prescribe the distribution yourself using the Shell partitioner type > > > > or > > > > b) Write a refiner that turns hexes into tets > > > > We already have a refiner that turns tets into hexes, but we never wrote > the other direction because it was not clear > > that it was useful. > > > > Thanks, > > > > Matt > > > > Sincerely, > > SG > > > > > > -- > > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > > -- Norbert Wiener > > > > https://www.cse.buffalo.edu/~knepley/ > >
