[petsc-users] Extracting parts of DMPLEX mesh

Matthew Knepley knepley at gmail.com
Wed Jun 19 02:36:05 CDT 2019


On Mon, Jun 17, 2019 at 9:49 PM Swarnava Ghosh <swarnava89 at gmail.com> wrote:

> Hi Matthew,
>
> I am primarily trying to interpolate fields which are defined on vertices.
> For a process, the point at which the interpolation to be carried out can
> be in an element that is owned by another process. My initial plan while
> writing the earlier email was to create local dmplexes in each rank which
> contains all the elements that are required for interpolation. However on
> second thoughts, this is too cumbersome.
>

Thanks. This is much clearer to me now.


> What might be potentially better approach (ofcourse you will be an expert
> to judge) is to simply extend the ghost region to include the elements of
> the neighbor processes. In this way the points to interpolate at lie in the
> ghost region of the process. Is there a way I could extend the ghost region
> if I know the neighbor ranks?
>

I see at least two cases:

  1) Only a few points, anywhere in the domain

      If you have a few points that can be anywhere in the domain, I would
use


https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/DMInterpolationCreate.html#DMInterpolationCreate

  2) Lots of points, close to boundaries

     If you have lots of points, but off-process points are close to
boundaries, then I would use


https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexDistributeOverlap.html

    to get a new, overlapping Plex which you can then use the purely local
point location and interpolation functions.

  Thanks,

     Matt


> Sincerely,
> Swarnava
>
>
> On Mon, Jun 17, 2019 at 3:13 PM Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Mon, Jun 17, 2019 at 6:09 PM Swarnava Ghosh via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>>
>>> Hi PETSc,
>>>
>>> I am trying to extract parts of a distributed dmplex mesh in each MPI
>>> process. For each process, the mesh to extract is the part of the mesh
>>> owned by that process and the parts of the mesh owned by a few neighbor
>>> processes, and the extracted mesh is stored locally to that process. For
>>> each process, I know what the ranks of the neighbor processes are.
>>>
>>> Would you please share any ideas on how to go about this?
>>>
>>
>> It might be better to start by telling us what you want to do.
>>
>>   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/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
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/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190619/3c9d20ce/attachment.html>


More information about the petsc-users mailing list