Skip to content

docs(CLAUDE.md): record the free-slip BC preference#300

Merged
lmoresi merged 1 commit into
developmentfrom
docs/rotated-freeslip-bc-guidance
Jul 3, 2026
Merged

docs(CLAUDE.md): record the free-slip BC preference#300
lmoresi merged 1 commit into
developmentfrom
docs/rotated-freeslip-bc-guidance

Conversation

@lmoresi

@lmoresi lmoresi commented Jul 3, 2026

Copy link
Copy Markdown
Member

Adds a short Boundary Conditions: Free-slip section to CLAUDE.md so future
sessions pick the right enforcement without re-deriving it:

  • Prefer rotated strong free-slip (add_rotated_freeslip_bc) — machine-exact
    v·n̂ = 0, correct on curved/tilted/deformed boundaries (per-node normal), works
    inside the nonlinear SNES + geometric FMG (honours consistent_jacobian), and its
    constraint reaction is the boundary normal traction σ_nn.
  • Reserve Nitsche / penalty for BCs that must evolve in time (Dirichlet→Neumann
    / traction ramps) — a hard rotated constraint cannot morph.

Docs-only; no code change. Complements #298 (which makes rotated free-slip work inside
the nonlinear solve).

Underworld development team with AI support from Claude Code

…ree-slip)

Add a "Boundary Conditions: Free-slip" section so future sessions reach for the
right enforcement: prefer rotated strong free-slip (machine-exact v_n=0, correct
on curved/tilted/deformed boundaries, works inside the nonlinear SNES + geometric
FMG, honours consistent_jacobian, and its reaction is sigma_nn); reserve
Nitsche/penalty for BCs that must evolve in time. Points at
utilities/rotated_bc.py.

Underworld development team with AI support from Claude Code
Copilot AI review requested due to automatic review settings July 3, 2026 02:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds guidance to CLAUDE.md documenting the project’s preferred approach for free-slip boundary conditions, to help future sessions consistently choose rotated strong free-slip vs. Nitsche/penalty approaches.

Changes:

  • Document preference for solver.add_rotated_freeslip_bc(...) for machine-precision v·n̂ = 0 on general (curved/tilted/deformed) boundaries.
  • Clarify when to use Nitsche/penalty (time-evolving boundary conditions).
  • Point readers to the relevant implementation locations in the codebase.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CLAUDE.md
Comment on lines +334 to +336
- The constraint **reaction** is the boundary normal traction σ_nn
(`solver.boundary_normal_traction(boundary)` / `solver.dynamic_topography(...)`) — no
augmented-Lagrangian splitting.
Comment thread CLAUDE.md
Comment on lines +338 to +339
**Reserve Nitsche / penalty** (`add_nitsche_bc`) for BCs that must **evolve in time**
(e.g. a Dirichlet→Neumann / traction ramp) — a hard rotated constraint cannot morph.
@lmoresi lmoresi merged commit edcf13f into development Jul 3, 2026
2 checks passed
@lmoresi lmoresi deleted the docs/rotated-freeslip-bc-guidance branch July 3, 2026 04:22
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