Hello,

I'm trying to solve an adjoint problem for a linear system without first
solving the forward system. libMesh is giving me an adjoint solution which
results in a grossly non-zero residual (calculated using system.matrix and
system.get_adjoint_rhs, since the Jacobian is symmetric for now) , O(e-4)
in L2. However, the final residual output given by adjoint_solve() is
O(e-11). This occurred on two separate computers, so I don't believe it is
a product of my particular petsc installation.

If I use the debugging options to print out the jacobian and adjoint rhs,
copy them into Matlab and calculate the adjoint solution there, I get a
solution for which the manually calculated residual (calculated in libMesh
by reading in the Matlab solution from a text file) is much smaller
(O(e-15)).

If I implement the adjoint system as the forward problem and solve it using
system.solve(), I get a solution that agrees with that produced by Matlab.

It seems that the adjoint is not being solved to the user specified
accuracy. Shrinking solver->initial_linear_tolerance (currently at e-10)
did not help. I can send my code if needed.

Thanks,
Harriet
------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to