You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Transport and particle code writes through the flat .data property where the Charter mandates .array #722
Style Charter §7 says variable data in new code goes through array with the
three-index shapes, and gives the flat .data property exactly one sanctioned
use: a raw variable-to-variable copy inside the non-dimensionalisation
boundary. docs/developer/subsystems/data-access.md, the governing document,
sanctions vec for solver internals — not .data.
The transport and particle work added ~20 flat-.data sites. Roughly half are
the sanctioned raw copy. The rest read, compute and write values, so they are
neither the user-facing array path nor the solver-internal vec path:
Sanctioned and correct, listed so the line is visibly drawn rather than
guessed at: ddt.py:1945, 1953, 4435, 4472, 4488 and #720ddt.py:4567 are
raw variable-to-variable copies.
Why it matters beyond style
The flat .data bypasses units evaluation and re-packing. Where the value
being written has been through _to_nondim_ndarray or arithmetic, whether that
bypass is correct depends on the caller, and nothing in the code says which it
is. .array makes it not a question.
Note on §2
Charter §2 is explicit that surrounding code is not authority. ddt.py uses
flat .data throughout, which is why the new lines match it; that is the drift
the clause exists to stop.
Underworld development team with AI support from Claude Code
Relabelled enhancement: this is a conformance chore, not a defect. Charter §7 is normative and the ~20 flat-.data sites really are outside it, but nothing computes a wrong answer today — .data and .array reach the same memory. Keeping it so the cleanup is tracked; it will not be closed by a probe, it will be closed by doing it.
Checked in the untouched-issue triage (27 days, no activity).
Activity
lmoresi commentedon Oct 7, 2026
Relabelled
enhancement: this is a conformance chore, not a defect. Charter §7 is normative and the ~20 flat-.datasites really are outside it, but nothing computes a wrong answer today —.dataand.arrayreach the same memory. Keeping it so the cleanup is tracked; it will not be closed by a probe, it will be closed by doing it.Checked in the untouched-issue triage (27 days, no activity).