Skip to content

Conversation

@JHopeCollins
Copy link
Contributor

@JHopeCollins JHopeCollins commented Jul 1, 2025

This PR introduces a ReducedFunctionalMat, which is a Python type PETSc.Mat which applies the action of a ReducedFunctional.

By default it applies the action of the Hessian, which is needed for TAO's Newton optimiser.
If Jhat.functional is not a scalar then it can also apply the action of the TLM or adjoint models. Examples of when these would be needed include 1) constructing saddle point formulations of an optimisation problem, 2) constructing preconditioners for the Hessian with a certain structure, 3) calculating the eigendecomposition of a reduced functional (firedrakeproject/firedrake#4529).

Firedrake tests: firedrakeproject/firedrake#4669

@JHopeCollins JHopeCollins self-assigned this Jul 1, 2025
@JHopeCollins JHopeCollins added the enhancement New feature or request label Jul 1, 2025
@JHopeCollins JHopeCollins changed the base branch from JHopeCollins/tlm to dham/abstract_reduced_functional July 25, 2025 08:51
@JHopeCollins JHopeCollins changed the base branch from dham/abstract_reduced_functional to master October 14, 2025 12:54
@JHopeCollins JHopeCollins marked this pull request as ready for review October 14, 2025 13:50
dham
dham previously requested changes Oct 21, 2025
@JHopeCollins
Copy link
Contributor Author

Review comments from Firedrake meeting addressed.

@JHopeCollins JHopeCollins dismissed dham’s stale review October 29, 2025 16:28

Changes implemented.

@JHopeCollins JHopeCollins requested review from connorjward and removed request for connorjward October 31, 2025 16:58
Copy link
Contributor

@connorjward connorjward left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@JHopeCollins JHopeCollins merged commit 6361740 into master Oct 31, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants