Boussinesq PETSc Validation Results#

This page records the current analytical-validation status after routing the solver = "boussinesq" analytical cases through the PETSc Boussinesq runtime.

The public validation label remains boussinesq. Internally, steady analytical Boussinesq cases now use a pure steady PETSc SNESVI solve with flow.runtime_backend = "petsc" and flow.surface_interaction_model = "vi_obstacle". Transient analytical Boussinesq cases now use PETSc TS with SNESVI through flow.surface_interaction_model = "ts_vi_obstacle".

Latest Automated Results#

The following commands were run on 2026-05-06 in the WSL PETSc environment through install/enter_wsl_dev.sh --headless.

Check

Command

Result

Duration

Pytest PETSc analytical validation suite

python -m pytest tests/validation/analytical -m petsc -q --tb=short

26 passed, 66 deselected

158.92 s

Documentation validation batch for solver=boussinesq

python -m validation_cases.run_cases --solver boussinesq --regime both --no-show --stop-on-error --report-json validation_cases/reports/latest/boussinesq_both.json --timeout 1800

21/21 cases passed

659.8 s

The committed report consumed by the validation gallery is: validation_cases/reports/latest/boussinesq_both.json. It was generated at 2026-05-06T07:41:24.118686+00:00 and records failed_case_count = 0.

Case Coverage#

These 21 analytical validation cases use the PETSc-backed Boussinesq route in the latest batch report.

Regime

Documentation page

Method

Steady

Boussinesq Circular-Island Piecewise-K 2D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Divide-Fixed-Head Piecewise-K 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Fixed-Head Piecewise-K 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Hillslope Interception 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Sloping-Substratum Constant-Thickness 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Sloping-Substratum Fixed-Head 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Sloping-Substratum Uniform-Recharge 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Boussinesq Uniform-Recharge Piecewise-K 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Dupuit Circular-Island Ocean 2D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Dupuit Divide-River 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Dupuit Fixed-Head 1D

PETSc SNESVI, pure steady, vi_obstacle

Steady

Dupuit Uniform-Recharge 1D

PETSc SNESVI, pure steady, vi_obstacle

Transient

Boussinesq Hillslope Recharge-Step Interception 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Brutsaert Recession Boussinesq Thin 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Brutsaert Recession Linearized Deep 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Late-Time Unconfined Pumping 2D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Linearized Unconfined Boundary Piecewise 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Linearized Unconfined Boundary Step 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Linearized Unconfined Recharge Periodic 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Linearized Unconfined Recharge Step 1D

PETSc TS + SNESVI, ts_vi_obstacle

Transient

Linearized Unconfined Recharge Step Deep 1D

PETSc TS + SNESVI, ts_vi_obstacle

Hillslope Interception Diagnostic#

The migration is mostly a runtime substitution. The main exception remains the steady hillslope interception case. The PETSc VI solve is numerically clean, but the interception position differs from the historical no-drain analytical intersection.

Quantity

Current value

Interpretation

Analytical interception x

244.776 m

Historical no-drain Boussinesq profile intersected with topography.

PETSc VI numerical interception x

285.000 m

Contact front from the hard obstacle solve.

Interception x error

40.224 m

Below the current 45 m acceptance threshold.

Cross-row head spread

8.88e-16 m

Quasi-1D uniformity is preserved.

Topography overshoot

0.0 m in the PETSc diagnostic run

The obstacle constraint is respected.

This offset is not interpreted as a nonlinear convergence failure. The analytical reference solves a no-drain profile and then intersects it with the topography, while the PETSc VI method solves a constrained obstacle problem with an active surface-contact zone and surface reaction.