[petsc-users] Periodic BC in petsc DMPlex / firedrake

Matthew Knepley knepley at gmail.com
Wed Oct 24 05:49:50 CDT 2018


On Wed, Oct 24, 2018 at 6:29 AM Lawrence Mitchell <wence at gmx.li> wrote:

> Hi Max,
>
> (I'm cc'ing in the petsc-users mailing list which may have more advice, if
> you are using PETSc you should definitely subscribe!
>
> > On 24 Oct 2018, at 09:27, Maximilian Hartig <imilian.hartig at gmail.com>
> wrote:
> >
> > Hello Lawrence,
> >
> > sorry to message you out of the blue. My name is Max and I found your
> post on GitHub (https://github.com/firedrakeproject/firedrake/issues/1246
> ) on DMPlex being able to read periodic gmsh files. I am currently trying
> to do just that (creating a periodic DMPlex mesh with gmsh) in the context
> of my PhD work. So far I haven’ t found any documentation on the periodic
> BC’s with DMPlex and gmsh in the official petsc documentation.
> > I was wondering whether you’d be so kind as to point me in a general
> direction concerning how to achieve this. You seem experienced in using
> petsc and I would greatly appreciate your help.
>
>
> I think the answer is "it depends". If you're just using DMPlex directly
> and all the of the functionality with PetscDS, then I /think/ that reading
> periodic meshes via gmsh (assuming you're using the appropriate gmsh mesh
> format [v2]) "just works".
>

There are two phases here: topological and geometric. DMPlex represents the
periodic topological entity directly. For example,  a circle is just a
segment with one end hooked to the other. Vertices are not duplicated, or
mapped to each other. This makes topology simple and easy to implement.
However, then geometry is more complicated. What Plex does is allow
coordinates to be represented by a discontinuous field taking values on
cells, in addition to vertices. In our circle example, each cells near the
cut will have 2 coordinates, one for each vertex, but they will not agree
across the cut. If you define a periodic domain, then Plex can construct
this coordinate field automatically using DMPlexLocalize(). These DG
coordinates are then used by the integration routines.


> From my side, the issue is to do with mapping that coordinate field into
> one that I understand (within Firedrake). You may not have this problem.
>

Firedrake uses its own coordinate mapping and integration routines, so they
must manage the second part independently. I hope to get change this
slightly soon by making the Firedrake representation a DMField, so that it
looks the same to Plex.

  Thanks,

    Matt


> Thanks,
>
> Lawrence



-- 
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/20181024/f8c6ab4d/attachment.html>


More information about the petsc-users mailing list