Skip to content

Add cubic and RBF interpolation for adjoint inversion#462

Draft
cpjordan wants to merge 1 commit into
mainfrom
headland_inversion/other_interpolators
Draft

Add cubic and RBF interpolation for adjoint inversion#462
cpjordan wants to merge 1 commit into
mainfrom
headland_inversion/other_interpolators

Conversation

@cpjordan

Copy link
Copy Markdown
Contributor

Adds adjoint-safe independent-point interpolation options for the headland inversion example.

Changes

  • Added IndependentPointControlMapping and IndependentPointInterpolator to thetis.inversion_tools.
  • Supports independent-point mappings with:
    • linear
    • cubic via SciPy CloughTocher2DInterpolator
    • rbf via SciPy RBFInterpolator
  • Uses Firedrake external operators for non-UFL interpolation so pyadjoint can propagate gradients.
  • For cubic interpolation, uses a value-dependent finite-difference vector-Jacobian product because precomputed identity basis masks do not exactly reproduce SciPy Clough-Tocher interpolation on the headland mesh.
  • Updated examples/headland_inversion/inverse_problem.py to expose:
    • --ip-interpolation {linear,cubic,rbf}
    • --ip-rbf-kernel
    • --ip-rbf-smoothing
  • Updated the headland Makefile with:
    • IP_INTERPOLATION
    • IP_RBF_KERNEL
    • IP_RBF_SMOOTHING
  • Updated plotting script to use matching output directories for cubic/RBF runs.
  • Updated README documentation for the new independent-point interpolation options.
  • Added adjoint regression tests for linear, cubic, and RBF independent-point mappings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant