Skip to content

DO NOT MERGE! test merged solve block refactor branches#5239

Draft
angus-g wants to merge 8 commits into
mainfrom
angus-g/solver-working
Draft

DO NOT MERGE! test merged solve block refactor branches#5239
angus-g wants to merge 8 commits into
mainfrom
angus-g/solver-working

Conversation

@angus-g

@angus-g angus-g commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Description

CI run with merge of #5188 and #5226 to see where things stand (since they fail individually)

angus-g and others added 8 commits July 13, 2026 12:35
A bit of a doubling up on the already-present adj_sol on
solver blocks.
* reduce nlvs adjoint test size

* nlvs adjoint caching - bundle up recompute objects
* Remove linearity checks from adjoint evaluation

* Cache J and Jp from NLVP on forward solver

Co-authored-by: Josh Hope-Collins <jth113@ic.ac.uk>
We remove the explicit adjoint annotation on the bare solve() call,
relying on the path through the NLVS as the single source of
annotation. This simplifies and unifies the code paths, and will
ideally allow us to remove the specialised solve blocks.

Add CachedSolverBlock to get_solve_blocks check

I don't think this affects anything, but should be there as a
convenience function (referenced in the "extract adjoint solutions"
notebook).

Remove SolveLinearSystemBlock

This is redundant now that it gets routed through the usual
cached solver path.
Push subtraction out of derivative

For whatever reason, derivative(-F, m, dm) has very different behaviour
when passed through the adjoint -> action -> expand_derivatives chain
compared to the non-negated variant. We just push subtraction to the
dFdm_adj and dFdm_adj2 forms instead.
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.

2 participants