Skip to content

TransverseIsotropicFlowModel: consistent (Newton) tangent inconsistent with the residual when anisotropy is active #457

Description

@lmoresi

Evidence (PETSc -snes_test_jacobian, native essential-BC path — no rotated machinery involved)

Annulus, power-law background (eta_0 = eps_II^(1/3-1)), localised weak-plane band (eta_1 = eta_0*(1-0.99*band), radial director), consistent_jacobian=True. Checker run at bounded curvature (regularisation 1e-4 inside the sqrt) so the finite-difference reference is valid:

state ViscousFlowModel (control) TI isotropic limit TI with anisotropy
rest / first iterate 1.4e-10 1.4e-10 1.4e-10
early 9.2e-7 9.2e-7 9.2e-7
developed flow 4–5e-6 (FD-limited) 1.8e-3 → 4.5e-3

The isotropic power-law tangent is correct (FD-limited). The defect appears only when eta_1 != eta_0 — the anisotropy part of the consistent tangent (the dC/d(eps_II) director-coupled terms, C(eps_II) = eta_0*I + (eta_0-eta_1)*[n-projector terms]) is missing or wrong. The band is localised, so the global Frobenius mismatch is small (~0.2–0.5% of ||J||) while being locally O(1) — which matches the observed behaviour: TI solves under consistent_jacobian=True converge at Picard pace (24 iterations on the #438 TI smoke vs ~11 for the isotropic power-law), and early trajectories are near-identical to the frozen tangent.

Methodological note (matters for anyone re-running this)

With the customary 1e-12 strain-rate regularisation the checker is invalid for shear-thinning rheology: the viscosity curvature at the floor (~eps_II^(-8/3)) breaks the FD reference, and every model — including the known-good isotropic Newton tangent — reads ||J-Jfd||/||J|| ~ 0.013–0.17 identically. Bound the curvature (regularisation ~1e-4 in the sqrt) before trusting the numbers.

Impact

  • TI + consistent_jacobian=True silently runs at (roughly) Picard convergence rates; no wrong answers observed (the residual is the true one), just lost Newton performance exactly where fault/anisotropy physics needs it.
  • Blocks trusting Newton-rate claims for TI in the free-surface/fault programme (workstream C inherits TI rheology in 3D).
  • The rotated free-slip machinery is exonerated: the defect reproduces on the native path, and the isotropic Newton tangent is superlinear through the rotated loop.

Reproduce

Harness: ~/+Simulations/FreeSurface/annulus_fs_convection/b_snes_datum_acceptance/ti_tangent_check.py (parts native/rotated, -iso 1 control); bounded-curvature logs ti_tangent_bounded_aniso.log alongside. Found during the #438 workstream-B session (hypothesis: Louis, 2026-07-28); TODO(BUG) marker on the class points here.

Underworld development team with AI support from Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions