Roy Stogner <royst...@ices.utexas.edu> writes:

> On Thu, 8 Jan 2015, Jed Brown wrote:
>
>> Can you provide output with -ksp_monitor_true_residual?  Are you
>> comparing a preconditioned residual to an unpreconditioned residual?
>
> Yes, and yes:
>
>    0 KSP preconditioned resid norm 5.893300515271e-01 true resid norm 
> 1.137340546775e-01 ||r(i)||/||b|| 1.000000000000e+00
>    1 KSP preconditioned resid norm 1.323095860276e-01 true resid norm 
> 1.854948903571e-02 ||r(i)||/||b|| 1.630952935627e-01
>    2 KSP preconditioned resid norm 2.957976209084e-03 true resid norm 
> 9.076848423484e-04 ||r(i)||/||b|| 7.980765698734e-03
>    3 KSP preconditioned resid norm 4.630654713249e-04 true resid norm 
> 3.394455698647e-04 ||r(i)||/||b|| 2.984555248884e-03
>    4 KSP preconditioned resid norm 1.042927953583e-05 true resid norm 
> 3.082072165862e-04 ||r(i)||/||b|| 2.709893861255e-03
>    5 KSP preconditioned resid norm 7.161971654746e-07 true resid norm 
> 3.084038310662e-04 ||r(i)||/||b|| 2.711622582529e-03
>    6 KSP preconditioned resid norm 3.126650757674e-08 true resid norm 
> 3.084036219553e-04 ||r(i)||/||b|| 2.711620743934e-03
>    7 KSP preconditioned resid norm 1.102895578517e-09 true resid norm 
> 3.084021853448e-04 ||r(i)||/||b|| 2.711608112620e-03
>    8 KSP preconditioned resid norm 5.540930099957e-11 true resid norm 
> 3.084021840854e-04 ||r(i)||/||b|| 2.711608101548e-03
>    9 KSP preconditioned resid norm 2.937449992531e-12 true resid norm 
> 3.084021825944e-04 ||r(i)||/||b|| 2.711608088437e-03
>   10 KSP preconditioned resid norm 1.580464771307e-13 true resid norm 
> 3.084021824157e-04 ||r(i)||/||b|| 2.711608086867e-03
> number of iterations to solve adjoint: 10 final residual of adjoint solve: 
> 1.58046e-13

This is usually caused by a singular preconditioner.

http://mid.mail-archive.com/87y6iyzl73.fsf@59A2.org

> It still seems like we've got to be doing something wrong in
> PetscLinearSolver::adjoint_solve().  I haven't tried this myself, but
> I'm told that setting up the transpose linearized problem here and
> using a straight solve() works fine.

What solver configuration is being used?  Can you show
-ksp_monitor_true_residual output for the original forward solve and the
explicitly transposed solve?

>> Note that penalty boundary conditions render unpreconditioned residuals
>> nearly useless.
>
> Agreed; fortunately she's using DirichletBoundary constraints.  For
> this tiny boiled down version of the problem the norm of the matrix is
> only 32.
> ---
> Roy

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
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-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to