[petsc-users] Accessing the adjoint in TSSetRHSJacobianP

Zhang, Hong hongzhang at anl.gov
Fri Jul 31 09:23:12 CDT 2020


Yes, you can use a matrix-free approach on this matrix just like what you would do on the IJacobian matrix. Only the multTranspose operation needs to be overloaded for the adjoint.

Hong

On Jul 30, 2020, at 6:52 PM, Salazar De Troya, Miguel via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:

Hi,

The jacobian of the RHS w.r.t. the parameter P is a matrix that will be multiplied by the adjoint solution within TSAdjoint(). I am interested in having access to that adjoint so I can calculate shape derivatives with firedrake_adjoint. I will have to use that adjoint function, apply it to the residual and calculate the shape derivative from the resulting 0-form to obtain my RHSJacobianP*adjoint. This is the workaround done in pyadjoint: https://github.com/dolfin-adjoint/pyadjoint/blob/e6fbd13f8ac63290804852fa2f27307c44bdc9e3/dolfin_adjoint_common/blocks/solving.py#L204 Is there another alternative within PETSc? Maybe using a matrix free approach?

Thanks
Miguel

Miguel A. Salazar de Troya
Postdoctoral Researcher, Lawrence Livermore National Laboratory
B141
Rm: 1085-5
Ph: 1(925) 422-6411

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200731/27d13e34/attachment.html>


More information about the petsc-users mailing list