On Dec 14, 2011, at 4:53 PM, Matthew Knepley wrote:

> On Wed, Dec 14, 2011 at 3:50 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
> On Dec 14, 2011, at 3:13 PM, Mark F. Adams wrote:
> 
> >
> > On Dec 14, 2011, at 3:44 PM, Barry Smith wrote:
> >
> >>
> >> On Dec 14, 2011, at 12:45 PM, Mark F. Adams wrote:
> >>
> >>> I have a nonlinear problem and am finding the the convergence test for 
> >>> the interior PETSc linear solver is apparently testing against the norm 
> >>> of the first linear solve (see appended).
> >>
> >>  No it is || r = b - Ax ||/|| b||   with a B in there if left 
> >> preconditioned
> >>
> >>  It has nothing to do with the "first linear solve". Each linear solve is 
> >> self contained and it does not use anything from a previous linear solve 
> >> to determine convergence of a later linear solve.
> >>
> >
> > Matts suggestion -ksp_converged_use_initial_residual_norm did the trick.
> >
> >>> This is clearly not what anyone would want,
> >>
> >>   Why not?
> >>
> >
> > OK, I should say I don't know why anyone would want this and if you pop a 
> > KSP into a nonlinear loop, which is a very common thing to do obviously, 
> > then you get behavior that is probably not what you want.  Namely, an 
> > approximate Newton where the outer nonlinear tolerance is much smaller than 
> > the inner linear tolerance.
> 
>   I would think you would want exactly that. Why oversolve the linear system 
> since it is "wrong" anyways"?
> 
>   Actually with Newton it should really be setting the linear tolerances 
> based on the progress of the Newton method, this is done via -snes_ksp_ew   I 
> would like to make that the default but this scheme is not robust and 
> occasionally strange things might happen. I'd like it if someone could 
> investigate using EW by default.
> 
> I spent a ton of time on EW (Eisenstat-Walker) for my thesis. You are right 
> that its just not robust, but version 2 is more
> robust than version 1 in my tests. EW is just two possible implementations 
> for the Dembo-Eisenstat-Steihaug theory. I
> think Trond has some additional ones that are stuck down deep inside his 
> bizarre optimization code. I would love to turn on
> version 2 by default, but we need a better nonlinear test set to see what 
> happens. Maybe some fluids thing?
> 

I've used EW and have had some difficulties.  They are a bunch of heuristics 
and I recently found that my users problems were finding a "hole" and under 
solving the problems for months, Argh!! 

I am now more partial to simply using a fixed tolerance: its simple, less error 
prone and probably with a factor of say 2x of the perfect algorithm.

Mark

>    Matt
>  
> 
>   Barry
> 
> 
> 
> 
> > Just my perspective.
> >
> > Mark
> >
> >>  Barry
> >>
> >>
> >>> is this the intended semantics?
> >>
> >>
> >>> Is there perhaps a method to reset rtol?
> >>>
> >>> Mark
> >>>
> >>> Picard iteration 0 max(resid) = 781020
> >>> 0 KSP Residual norm 2.499264167662e+07
> >>> 1 KSP Residual norm 6.330915810095e+06
> >>> 2 KSP Residual norm 1.856999435466e+06
> >>> 3 KSP Residual norm 3.967325725053e+05
> >>> 4 KSP Residual norm 9.037332775808e+04
> >>> 5 KSP Residual norm 1.826960320400e+04
> >>> Linear solve converged due to CONVERGED_RTOL iterations 5
> >>> Picard iteration 1 max(resid) = 727577 ------- Rate = 1.07345
> >>> 0 KSP Residual norm 6.885328126772e+06
> >>> 1 KSP Residual norm 2.150319244570e+06
> >>> 2 KSP Residual norm 2.297759417371e+05
> >>> 3 KSP Residual norm 3.321819214451e+04
> >>> 4 KSP Residual norm 4.155970071625e+03
> >>> Linear solve converged due to CONVERGED_RTOL iterations 4
> >>> Picard iteration 2 max(resid) = 486788 ------- Rate = 1.49465
> >>> 0 KSP Residual norm 2.987417661953e+06
> >>> 1 KSP Residual norm 5.046119985008e+05
> >>> 2 KSP Residual norm 3.882757664605e+04
> >>> 3 KSP Residual norm 4.106091678345e+03
> >>> Linear solve converged due to CONVERGED_RTOL iterations 3
> >>> Picard iteration 3 max(resid) = 137348 ------- Rate = 3.54418
> >>> 0 KSP Residual norm 7.285359985607e+05
> >>> 1 KSP Residual norm 9.132700545850e+04
> >>> 2 KSP Residual norm 6.834608381922e+03
> >>> Linear solve converged due to CONVERGED_RTOL iterations 2
> >>> Picard iteration 4 max(resid) = 25082.7 ------- Rate = 5.47582
> >>> 0 KSP Residual norm 1.207523847817e+05
> >>> 1 KSP Residual norm 1.286174706329e+04
> >>> Linear solve converged due to CONVERGED_RTOL iterations 1
> >>> Picard iteration 5 max(resid) = 5723.21 ------- Rate = 4.38264
> >>> 0 KSP Residual norm 2.211945822133e+04
> >>> Linear solve converged due to CONVERGED_RTOL iterations 0
> >>>
> >>
> >>
> >
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments 
> is infinitely more interesting than any results to which their experiments 
> lead.
> -- Norbert Wiener

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111214/df783d43/attachment.html>

Reply via email to