hydromodpy.solver.boussinesq.runtimes.picard.picard#

Picard/VI cycles and strict VI obstacle assembly.

Functions

accept_failed_vi_cycle_candidate(*, ...)

Return True when a failed VI candidate is acceptable for the current cycle.

assemble_strict_steady_residual(mesh, head_m, *)

Assemble the strict steady residual with no artificial thickness floor.

bounded_picard_vi_cycles(inputs, *[, ...])

Alternate strict Picard blocks and strict VI correction attempts.

cycle_record(*, mesh, cycle, start_residual, ...)

Return a PicardViCycleRecord for one cycle.

cycle_summary(*, mesh, result, options, ...)

Return a JSON-friendly summary of the Picard/VI cycle run.

runtime_result_from_raw_assembly(*, mesh, ...)

Reconstruct an obstacle-aware runtime result from a raw residual assembly.

solve_strict_vi_obstacle(inputs, *, ...[, ...])

Run a strict PETSc SNESVI check with physical bounds and strict residual.

strict_drainage_conductance(mesh, *, ...)

Return only explicitly positive drainage conductance values.

strict_drainage_flux(mesh, head_m, *, ...)

Return the drainage flux for cells whose head exceeds z_top.

strict_jacobian_triplets(mesh, head_m, *, ...)

Build COO triplets for the strict steady Jacobian.

strict_result_for_head(inputs, head_m, *, ...)

Build a strict-residual runtime result starting from a clipped head guess.

strict_snes_diagnostics(snes, *, ...)

Return SNES diagnostics for the strict PETSc VI obstacle check.

strict_thickness_and_derivative(mesh, head_m)

Return clipped saturated thickness and the indicator derivative.