Skip to content

archive-format: record that time and space may be nested the wrong way round - #19

Merged
cekees merged 1 commit into
mainfrom
archive-format-nesting-note
Oct 23, 2026
Merged

cekees merged 1 commit into
mainfrom
archive-format-nesting-note

Conversation

@cekees

@cekees cekees commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

Documentation only. One commit, 53 lines, no code.

The archive has one temporal collection per function space, each with its
own list of instants — XDMF's shape, where a Temporal GridCollection
belongs to a grid type. This records the case for the transpose: one time
collection with the spaces nested inside each instant.

The objection is operator splitting, and it does not hold. A fractional-step
calculation has synchronization points where every space is known, and those
are the logical archive points anyway; where it does not, there are rational
ways to write every space at the finest-grained step. More to the point the
archiving step is a separate choice from the numerical step
— writing every
space at every step it was approximated at is not usually affordable — so the
archive already samples at instants, which is exactly what the transposed
shape describes.

It would also simplify the append path this repository just gained. append_step
has to name a collection in every record only because collections appear
lazily, as models first archive. One record per instant needs no names, so
#18's naming scheme is partly a workaround for the nesting rather than a
design to keep.

Costs a format version, both ends of reader and writer, and a transpose in
ymf2xmf. Not scheduled — written down so the decision is made deliberately
rather than inherited. It belongs to proteus's C27 (ymf semantics) as much as
to C1.

Separated from #18 because it was committed after that PR merged, which left
it stranded on a merged branch.

🤖 Generated with Claude Code

The document has one temporal collection per function space, each with its
own list of instants, which is XDMF's shape: a Temporal GridCollection
belongs to a grid type. The transpose -- one time collection with the
spaces inside each instant -- is likely the better model.

The objection is operator splitting, and cekees's answer is that it does
not hold: a fractional-step calculation has synchronization points where
every space is known, which are the logical archive points anyway, and
where it does not there are rational ways to write every space at the
finest-grained step. More to the point the archiving step is a separate
choice from the numerical step -- writing every space at every step it was
approximated at is not usually affordable -- so the archive already
samples at instants, which is what the transposed shape describes.

Noted rather than done: it is a format version, it changes both ends of
the reader and writer, and ymf2xmf would transpose on the way out.

Worth recording now because append_step, added in this branch, has to name
a collection in every record precisely because collections appear lazily
as models first archive. Under the transposed shape that problem does not
exist -- one record per instant, no names needed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cekees
cekees merged commit 0a2d55d into main Oct 23, 2026
7 checks passed
@cekees
cekees deleted the archive-format-nesting-note branch October 23, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant