[petsc-users] Structured grid in DMPlex?

Justin Chang jychang48 at gmail.com
Fri May 8 08:08:23 CDT 2015


Matt,

Creating structured meshes on rank 0 is no problem. The issue I am having
is the amount of time it takes to distribute the mesh across multiple
processes. If I know the grid has a structured format, then wouldn't it be
much faster to have each process create its local portion of the DMPlex
chart instead of calling a graph partitioner? As long as we know the global
number of cells/points in each spatial direction, the desired local
organization of cells/points for each rank, and where the ghost nodes
reside, I imagine this should be (almost) entirely local and scalable. I
would think the only real work that goes into this is to determine a prior
an algorithm that evenly distributes the mesh points and to create the SF
associate with each local portion of the DM?

Thanks,
Justin

On Fri, May 8, 2015 at 7:40 AM, Matthew Knepley <knepley at gmail.com> wrote:

> On Thu, May 7, 2015 at 10:31 PM, Justin Chang <jychang48 at gmail.com> wrote:
>
>> Hello everyone,
>>
>> If I know for a fact that I will be using structured grids AND still want
>> the DMPlex data structure, what's the best/fastest way of achieving this?
>> Should I:
>>
>> a) Invoke DMDACreate2d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE,
>> DM_BOUNDARY_NONE,DMDA_STENCIL_BOX,-3,-3,PETSC_DECIDE,PETSC_DECIDE,1,1,NULL,NULL,&da);
>> to get the parallel cell-vertex layout and (somehow) translate this into a
>> DMPlex?
>>
>> b) Manually set the local DMPlex chart/DAG and assign the SF along the
>> appropriate processors?
>>
>> c) Invoke some DMDA/DMPlex function or set of functions that already
>> exist for this purpose?
>>
>
> It was supposed to work the same way as DMPlex in that you create the DM
> and a DS, and then
> the Section is created automatically. However, there is so much DA
> specific stuff coded and no
> one really wanted to use it, so its not maintained or consistent.
>
>
>> d) Something else?
>>
>
> RIght now, I think the best thing to do is use DMPlexCreateHexBoxMesh(),
> which gives you a structured mesh. Get
> everything in your code working. Then, if you really feel limited by the
> mesh structure, we can make the DMDA code
> work.
>
>   Thanks,
>
>      Matt
>
>
>> I know I could just input or create a coarse DAG and invoke -dm_refine,
>> but I was wondering if there is an alternative to this method.
>>
>> Thanks,
>> Justin
>>
>
>
>
> --
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150508/94eee3b5/attachment.html>


More information about the petsc-users mailing list