hydromodpy.solver.boussinesq.runtimes.petsc_vi_obstacle#
Experimental PETSc SNESVI runtime for a head-only obstacle formulation.
This backend is intentionally separate from petsc_mixed. It does not put
q_ex or q_dry in the PETSc state vector and it does not use
Fischer-Burmeister residuals. PETSc solves only for h with explicit bounds
z_bottom <= h <= z_top by default; after convergence the remaining
groundwater balance residual on active bounds is reconstructed as a surface or
bottom reaction. With an explicit positive Cauchy drainage conductance, the
upper obstacle is relaxed and the drainage flux term carries the top exchange.
This module is the public facade for the petsc_vi sub-package, which
splits the runtime in three concerns:
petsc_vi.petsc: pure PETSc utility helpers (SNES configuration, diagnostics).petsc_vi.obstacle: obstacle-specific math (clipping, reactions, projected residual).petsc_vi.vi: VI orchestration (substeps, diagnostics, top-level SNESVI).
Functions
|
Solve one steady balance as a PETSc bounded VI in head only. |
|
Solve one transient implicit step as a PETSc bounded VI in head only. |