Skip to content

Target Head Well (String) Control points #63

@Huite

Description

@Huite

Related to one of the suggestions noted in #60 (area of control points for TargetHeadWellString), here are some thoughts.

A potentially user-friendly approach is to let users define a set of control points inside their excavation / building pit footprint. This could reduce some of the current trial-and-error that might be involved with picking points and target heads.

There are (at least) two reasonable formulations:

1) Least-squares head objective (equality / soft targets)

Use a weighted least-squares objective that tries to match a target head z at the control points:

$$ \min_q \ \tfrac12|h(q)-z|_R^2 + \tfrac12 q^\top W q $$

In confined linear AEM, head is linear in discharge, so this reduces to a single linear system. This objective is symmetric: it penalizes both “too wet” and “too dry”. That may actually be desirable, since “too dry” typically implies over-pumping. (As with the current target-head elements, without explicitly enforcing q >= 0 the solution could in principle include injection.)

2) Dryness constraints (inequality / “keep the pit dry”)

More directly, enforce “dryness” at each control point as an inequality:

$$ h(q) \le z $$

This is naturally a convex quadratic programming exercise once we add an objective to pick a unique solution, e.g. a smooth “least pumping” objective:

$$ \min_q \ \tfrac12 q^\top W q \quad \text{s.t.}\quad h(q) \le z \quad (\text{optionally } q\ge0) $$

Because constraints become active/inactive depending on whether a control point is still wet, this can't be solved with a single linear solve, so an active-set / KKT approach is appropriate.

Fortunately, I think this can be implemented efficiently because if the expensive part is evaluating influence functions, not the dense linear solve:

  • Precompute/cache head influence rows at the control points (and known-head contributions).
  • Solve the KKT system for the current active set (dense solve; active set is typically small).
  • Evaluate heads at control points (dot products using cached rows), update active set, repeat.

A good warm-start is to first do the least-squares solve so the discharges are already near the “just dry enough” regime before enforcing the inequalities.

(The inequality formulation guarantees feasibility (“dry everywhere at the chosen points”), while least-squares provides a simple one-shot approximation that may leave small wet spots unless weights/targets are adjusted.)

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