-
Notifications
You must be signed in to change notification settings - Fork 398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Structure-exploiting adjoint sensitivities in Integrator #3047
Comments
Temporary addition. This option will eventually be replaced by oracle_.reverse(nadj_)
To avoid additional failure modes during refactoring
Before gradually removing backwards IO from oracle_
…e, Integrator::get_reverse_rdae
Now solved internally as forward-over-adjoint
The backward problem is now always standard reverse differentiation of forward problem
The backward Jacobian is now constructed from the forward problem. The backward linear solver has yet to be removed
Now excludes multiple adjoint right-hand-sides.
The adjoint seeds/sensitivities are now placed in different columns, not in different rows.
Inputs are now ordered x0, z0, p, u, adj_xf, adj_zf, adj_qf
Outputs are now ordered xf, zf, qf, adj_x0, adj_z0, adj_p, adj_u
In can therefore be set to zero in jtimesB
No longer grows with number of adjoint sensitivities
Work complete. This change removes the "backward states" from the public API. Instead, backward states are now always related to the forward DAE with the Relevant user changes include:
|
The
Integrator
class is now exploiting forward sensitivity structure throughout thanks to #2823. In the same way, the structure of adjoint sensitivities can be exploited. This will enable much more efficient second order derivative information to be calculated and give a more maintainable interface.The text was updated successfully, but these errors were encountered: