I am trying to implement the adjoint state method. To do this I have to solve
A^T \lambda = f
where \lambda, and f are vectors and A^T is the transpose of the matrix A, which comes from
Originally I did this by using
import dolfin dolfin.assemble(dolfin.adjoint(a))
but for the specific bilinear form I have, the assembly takes nearly 20X longer than assembling its adjoint!
I have tried assembling a simple bilinear form a, and its adjoint and the assembly times are basically the same, so I’m super confused why it takes longer for my case.
Does anyone know of a way to do this without assembling the adjoint of the form, or how to speed up assembly of the adjoint of a form? I’m trying to extract a MWE on my case but I’m not sure the exact part of it that’s making assembly of the adjoint slow.
I am using the version of FEniCS installed through Anaconda.