[petsc-dev] Checkpoint-restart with DMPlex objects
Lawrence Mitchell
wence at gmx.li
Mon Dec 17 10:54:10 CST 2018
Hi Matt, all,
> On 14 Dec 2018, at 19:54, Matthew Knepley <knepley at gmail.com> wrote:
>
> On Fri, Jul 20, 2018 at 5:34 AM Lawrence Mitchell <wence at gmx.li> wrote:
> Dear petsc-dev,
>
> I'm once again revisiting doing "proper" checkpoint-restart cycles. I would like to leverage the existing PETSc stuff for this as much as possible, but I am a bit lost as to what is implemented, and what is missing.
>
> I have:
>
> - A (distributed) DMPlex defining the topology
>
> - Some number of fields defined on this topology, each described by:
>
> - a Section (with a point permutation set)
> - a Vec of coefficients
> - Some extra information that describes what the coefficients mean, but let's assume I know how to handle that.
>
> (Aside, for Vecs with a block size > 1, I actually have a section that indexes the blocks, which probably means I need to unroll into an unblocked version first).
>
> Sections usually are {point --> {dofs}}. Not sure how it uses blocks instead of points
Note that I use sections to construct a function space numbering, but I don't use them directly in any assembly. So I have some extra information that the Section doesn't have.
IOW, I map {point -> {# nodes}} and then separately say "there are 3 dofs at each node".
Hence the section for P1 and Vector(P1) that I get from PETSc are identical. We can argue about whether or not this is the right choice, but it's easy to unroll.
[...] Elided, local or global numbering for Sections/DMPlex objects.
> Hmm, I have to think a little bit more. Where are you at with this now?
Exactly where I was in July when I wrote the email (which I had forgotten I wrote!).
Thanks,
Lawrence
More information about the petsc-dev
mailing list