Hello No for example: ./ex5 -ksp_monitor_true_residual -snes_monitor This problem is not reproduced.
My apologies for taking your time for stupid error, I called explicitly ierr = SNESGetKSP(snes,&ksp); CHKERRQ(ierr); ierr = KSPSetFromOptions(ksp); CHKERRQ(ierr); ierr = SNESSetFromOptions(snes);CHKERRQ(ierr); As an excuse I tell that reading manual I take impression that KSP should be set up independently, and it was ok until I start to look at true residual norm. I should not call KSPSetFromOptions(). Regards, Lukasz On 28 Oct 2009, at 21:07, Matthew Knepley wrote: > On Wed, Oct 28, 2009 at 3:32 PM, Lukasz Kaczmarczyk <likask at > civil.gla.ac.uk > > wrote: > > I will switch off monitor after first linear solution phase using > KSPMonitorCancel. SNESSetFromOptions should set up it once again > Unfortunately this is not working. > > Can you reproduce this with an example, like SNES ex5? > > Matt > > On 28 Oct 2009, at 16:40, Barry Smith <bsmith at mcs.anl.gov> wrote: > > > You are calling SNESSetFromOptions() or KSPSetFromOptions() twice. > If you call it once the problem won't appear. > > There is an extremely ugly hack that is implemented for the default > monitor, but not other monitors, to prevent this double printing. > Whoever wrote this ugly hack should have done it properly. > > Barry > > On Oct 28, 2009, at 2:39 AM, Lukasz Kaczmarczyk wrote: > > Hi Matt > > I add monitor from options only. > > Pleas note that for default KSP monitor a norm of preconditioned > residual is printed only once. Problem exists when I monitor true > residuals. > > Regards, > Lukasz > > On 27 Oct 2009, at 23:23, Matthew Knepley <knepley at gmail.com> wrote: > > It is possible to add the monitor twice. Are you sure this did not > happen? > > Thanks, > > Matt > > On Tue, Oct 27, 2009 at 6:19 PM, Lukasz Kaczmarczyk <likask at > civil.gla.ac.uk > > wrote: > Hello, > > I have noticed minor problem, potentially bug. For nonlinear > analysis with SNES and option -ksp_monitor_true_residual I get > 0 Norm Res_strain 9.36e-12 Norm Res_stress 1.43e-05 Internal its 1 > 0 SNES Function norm 1.428489691212e-05 > 0 KSP preconditioned resid norm 7.213823259362e-04 true resid norm > 1.428489691212e-05 ||Ae||/||Ax|| 1.000000000000e+00 > 0 KSP preconditioned resid norm 7.213823259362e-04 true resid norm > 1.428489691212e-05 ||Ae||/||Ax|| 1.000000000000e+00 > 1 KSP preconditioned resid norm 4.903423697449e-04 true resid norm > 9.339595309685e-06 ||Ae||/||Ax|| 6.538090801174e-01 > 1 KSP preconditioned resid norm 4.903423697449e-04 true resid norm > 9.339595309685e-06 ||Ae||/||Ax|| 6.538090801174e-01 > > It look that function KSPMonitorTrueResidualNorm is evaluated twice, > whereas for default KSP monitor only once. I use petsc-3.0.0-p7. > > Kind regards, > Lukasz > > -- > 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 > > -- > 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
