I am in the process of adding support for time-dependent adjoints. The adjoint problem is linear, so as long as the formulation is adjoint-consistent, assembly of the adjoint stiffness matrix is fairly straightforward. The adjoint RHS is a bit trickier. In addition to the usual QoI derivatives, the user will also have to assemble an adjoint mass residual component. For implicit methods, this adjoint mass residual will depend on the 'previous' adjoint timestep.

Currently, we only have interior_value and side_value functions for the forward problem. The cleanest way to move forward would be to implement similar functions for the adjoint solution(s). A logical way to do this would be to allow users to specify which system vectors they want DiffContext to localize to element Dense vectors. We were wondering if anyone has any issues/suggestions regarding this matter. 

Vikram Garg
Postdoctoral Associate
Center for Computational Engineering
Massachusetts Institute of Technology