On Sun, Dec 24, 2017 at 3:43 AM, Mohammad Hassan Baghaei <
[email protected]> wrote:

> Hello
>
> I am using the DMPlex interface for the solving PDEs.
>

Great. What discretization are you using?


> A  part of mesh, considering, is staggered grid, at the location of middle
> of each edge.
>

So you would like to put variables at each edge midpoint?


> After generation of main grid points, I find it hard to have the staggered
> grid at the prescribed location.
>

In Plex, the topology is specified by the DMPlex, but the dof layout is
specified by a PetscSection. To put
variables on edges, you could use:

DMGetDefaultSection(dm, &s);
DMPlexGetDepthStratum(dm, 1, &eStart, &eEnd);
for (e = eStart; e < eEnd; ++e) {
  PetscSectionAddDof(s, e, 1);
}

and of course any other dofs you are using.


> I want to know how to deal with the staggered besides of main grid. Is it
> better to have another DM for the staggered?
>

Another option is to use several DMDA. This has its own drawbacks.


> Is it possible to extend the DMChart and inserting the points.
>

If the chart does not have edges, it is because it has not been
interpolated. Either pass the PETSC_TRUE, or call


http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMPLEX/DMPlexInterpolate.html

  Thanks,

      Matt


> I would really appreciate for your time.
>
> Amir
>



-- 
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.caam.rice.edu/~mk51/>

Reply via email to