Skip to content

R1: three approaches in order, and say what the note leaves out - #24

Open
lmoresi wants to merge 5 commits into
mainfrom
docs/r1-scope
Open

R1: three approaches in order, and say what the note leaves out#24
lmoresi wants to merge 5 commits into
mainfrom
docs/r1-scope

Conversation

@lmoresi

@lmoresi lmoresi commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Follows the rescope of R1 to Boundary conditions on non-planar boundaries.

Direct penalty and Nitsche were one bullet. They differ in the way that decides the note's structure: a direct penalty is consistent only in the limit, so closing the leak means conditioning the operator badly, whereas Nitsche carries the boundary traction terms and is consistent for any stabilisation above a threshold — optimal order, no conditioning price, still a weak imposition that leaks.

That gives the note a spine rather than a list. Each approach answers the previous one's weakness:

enforces leak
direct penalty weakly, consistent only in the limit set by the parameter; closing it wrecks the conditioning
Nitsche weakly, consistent above a threshold order 1e-3 in what we have measured
rotated DOFs strongly machine precision

The leak numbers are the argument for that ordering, so the note should measure them rather than assert them.

Also records what the note deliberately excludes: solving in spherical or cylindrical components, where the wall normal becomes a coordinate direction again and the constraint goes back to holding one component. That is a real answer for a sphere or an annulus, and no answer at all for topography, a deformed mesh, or a tilted internal surface — which is the general case the note is about. Stated once, so its absence reads as a choice rather than an oversight.

Opened as a PR rather than pushed to main: the previous plan update went in directly and bypassed this repo's branch protection, which it should not have.

Underworld development team with AI support from Claude Code

Direct penalty and Nitsche were one bullet. They are different in the way that
matters: a direct penalty is consistent only in the limit, so closing the leak
means conditioning the operator badly, while Nitsche carries the boundary
traction terms and is consistent for any stabilisation above a threshold. That
difference is the reason the note has an order to it -- each approach answers
the previous one's weakness, ending at the strong rotated constraint.

Also records what the note deliberately does not cover: solving in spherical or
cylindrical components, where the normal is a coordinate direction again. It is
a real answer for a sphere and no answer at all for topography or a moved mesh,
so it is excluded on purpose and the note should say so rather than leave the
gap looking accidental.

Underworld development team with AI support from Claude Code
…bliography

This note cannot be carried by measurements the way the recent ones have been.
The three approaches differ in their weak forms and those differences are the
argument, so the entry now records what has to be written out: where the
boundary term comes from, that free slip is two conditions and the tangential
one is natural, the penalty perturbation, Nitsche's consistency and
adjoint-consistency terms with gamma's threshold, the rotation and its
reaction, and the derivation of the facet-measure normal.

Three references verified rather than recalled. Engelman, Sani & Gresho (1982)
is the classic statement of rotated degrees of freedom — our approach is that
idea and the note should say so. Behr (2004) is the 'which normal' question on
a curved boundary; its details are confirmed but it has not been read, and
whether it reaches the same measure-weighted normal decides whether #560 was a
rediscovery. Nitsche (1971) for the original.

Underworld development team with AI support from Claude Code
The difficulty with this note is that the three approaches usually agree. A
1e-3 leak in the normal velocity is invisible to anything that consumes the
velocity field, which is most of a model, and a comparison staged on a problem
where the methods agree is worth nothing.

So the note is organised around the case where they separate: surface stress.
When the wall-normal traction is the answer rather than a by-product, a penalty
or Nitsche condition hands you a traction recovered from a constraint that was
only approximately satisfied, whereas the rotated constraint's reaction is
sigma_nn itself — already computed, not post-processed. That contrast is the
worked example and it should be measured against a known answer rather than
described.

Also records the secondary discriminators (deformed boundaries, transverse
isotropy, conditioning) and, said early, that a model which only consumes the
velocity should use the simplest thing that works. A note is more useful if it
tells the reader when to stop reading.

Underworld development team with AI support from Claude Code
The rotated boundary conditions were not built to tidy up free slip on an
annulus. They were built because a free surface evolves under the traction it
carries, so the wall-normal stress stops being a diagnostic and becomes the
thing driving the model — which is the strongest case there is for a constraint
whose reaction is sigma_nn exactly rather than recovered from a condition that
was only approximately satisfied.

R1 should lead with that rather than arrive at it, and the free-surface entries
now record the dependency from their side. It runs one way: R1 is the
machinery, S1 and S2 are what it was for, so R1 goes first or they go together.

M1 and G1 are noted there as the cautionary example — meant to publish
together, went four days apart, and now owe a v2 for a cross-link that could
have been in v1.

Underworld development team with AI support from Claude Code
Two corrections to the entry's framing.

Rotating the degrees of freedom is not a new idea. It is in the early
finite-element texts and Engelman, Sani & Gresho were reviewing the
alternatives in 1982, so the note should present it as the textbook method
recovered and then answer the obvious question: why is the least accurate
option still the common one.

The answer is structural rather than numerical. A per-node rotation leaves the
discrete vector in a mixed basis — interior nodes in Cartesian components,
constrained nodes in normal/tangential — and every piece of machinery
downstream has to know which is which. Ours pays for it in specific places: the
multigrid prolongation has to be rotated, so the rotated path cannot use the
DM-coupled hierarchy and needs custom-P transfers; the rotated solve builds its
own KSP under a per-solve prefix, so the solver's own options object does not
reach it; the Schur block and preconditioner both needed revisiting.

And a coordinate-system formulation is not a fourth approach to be excluded —
it is the same rotation applied globally, which is why it is attractive (no
mixed basis, none of the structural cost) and why it fails as soon as the
boundary stops lying along a coordinate surface. Recorded as the third
approach's special case.

Underworld development team with AI support from Claude Code
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