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