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

Reply via email to