Skip to content

Design doc: multi-patch water redistribution - #565

Draft
dfalster wants to merge 2 commits into
developfrom
feature/multipatch-water-proposal
Draft

Design doc: multi-patch water redistribution#565
dfalster wants to merge 2 commits into
developfrom
feature/multipatch-water-proposal

Conversation

@dfalster

@dfalster dfalster commented Jul 11, 2026

Copy link
Copy Markdown
Member

Adds notes/427-multipatch-water.md, a design doc with no implementation, for
the water-flow arm of the multi-patch epic.

It separates three water processes — event-time surface redistribution,
within-patch vertical buckets, donor-controlled subsurface flux — toggled by
climate and soil rather than by a hand switch; puts N patches and their
topographic and soil attributes in a Landscape container that leaves Patch
and Environment largely untouched; and uses donor control to make the
cross-patch Jacobian triangular, so a single downslope sweep replaces a stiff
coupled ODE. It also records the soil-vs-redistribution identifiability hazard
and a sequencing that covers the Mulga target in its first two steps.

Refs #427. Draft, for circulation rather than merge.

Architecture proposal for the water-flow arm of the multi-patch epic
(#427): three separable water processes (event-time surface redistribution,
within-patch vertical bucket, donor-controlled subsurface flux), a
Landscape/MetaPatch container, and a two-level stepper mirroring the existing
outer/inner SCM loops. Design only, no implementation. Wires up dependencies
on #522 (events queue), #424 (TF24 hydraulics), #529 (per-patch stiffness).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@dfalster

Copy link
Copy Markdown
Member Author

Closing — keeping this as a planning doc on the branch feature/multipatch-water-proposal, no PR for now.

@dfalster

Copy link
Copy Markdown
Member Author

Hi @itowers1 @yangsophieee -- some initial thoughts on a multipatch setup capturing upslope-downslope dynamics in semi-arid, but in a way that also generalises to wet environments.

Also identifies/link to some dependencies that need to be sorted first.

No immediate need to do anything. Just wanted to document things rumbling around in my head, so you can start thinking about it whenever suits

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@itowers1

Copy link
Copy Markdown
Collaborator

Looking at this now!

@dfalster

dfalster commented Aug 5, 2026

Copy link
Copy Markdown
Member Author

Working detail, moved off the PR description so it does not land in git log. Under squash merge the description becomes the commit message verbatim; this comment is just as permanent and is linked from the squashed subject. See the family guideline.

Original description, unchanged:


Adds notes/427-multipatch-water.md — a design/planning doc (no implementation) for the water-flow arm of the multi-patch epic #427, following the existing notes/ convention (517-nsc-seed.md, plan-tf24-scenario-framework.md).

What it covers

  • Three separable water processes: event-time surface redistribution (drylands), within-patch vertical N-layer bucket (always on), donor-controlled subsurface flux (wet systems) — toggled by climate/soil, not a hand switch.
  • Landscape/MetaPatch container holding N patches + topographic/soil static attributes, leaving Patch/Environment largely untouched.
  • Donor-control → triangular Jacobian → single downslope sweep, avoiding a stiff coupled cross-patch ODE (consistent with the "design out stiffness" philosophy, [speed] [acclimation] Tame TF24f fast-relaxation stiffness locally (IMEX / operator-split / exponential-Newton substep) — not a global implicit solver #529).
  • Two-level stepper mirroring the existing outer (node refinement) / inner (adaptive time-stepping) SCM loops at the landscape level.
  • Topographically covarying soil (catena) + the soil-vs-redistribution identifiability hazard.
  • Sequencing (semi-arid steps 1–2 are cheap and cover the Mulga target; wet-region 3–4 can wait), validation ladder, and open questions.

Issue wiring

Open for discussion

Includes the newly-raised design question extend existing SCM vs build a separate multi-patch SCM (doc leans toward a composition layer), plus patch-graph construction from a DEM, where the rainfall schedule lives, and the fitness/asymmetry interaction.

Draft — opening to capture and circulate the architecture; not for merge until the direction is agreed.

🤖 Generated with Claude Code

@dfalster dfalster changed the title Design doc: multi-patch water redistribution architecture (#427) Design doc: multi-patch water redistribution Aug 5, 2026
dfalster added a commit that referenced this pull request Aug 26, 2026
theta_sat is already a barrier in the exact vector field, and error
control already rejects the overshooting steps. The excursions to
theta = 1.7 are explicit overshoot triggered by the step size a leg
inherits, not a water-balance defect.

Two faults instead: odelia accepts a NaN error estimate (odelia#52),
and a throw inside a stage evaluation preempts rejection entirely.
Capacity limiting is measured to cost stiffness for no benefit.

Design doc plus standalone scripts; no package code changes.
Refs #522, #599, #565.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.

2 participants