Hi Matt, all,
On 14 Dec 2018, at 19:54, Matthew Knepley <[email protected]> wrote:
On Fri, Jul 20, 2018 at 5:34 AM Lawrence Mitchell <[email protected]> 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