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 <[email protected]> wrote: > On Thu, May 7, 2015 at 10:31 PM, Justin Chang <[email protected]> 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 >
