> On Jan 12, 2016, at 7:14 AM, Gideon Simpson <[email protected]> wrote: > > That seems to to allow for me to cook up a convergence test in terms of the 2 > norm.
No, why just the two norm? You can put whatever tests you want into your convergence test, including looking at F_i/|x_i| if you want. You need to call SNESGetSolution() and SNESGetFunction() from within your test routine to get the vectors you want to look at. Barry > What I’m really looking for is the ability to change things to be something > like the 2 norm of the vector with elements > > F_i/|x_i| > > where I am looking for a root of F(x). I can just build that scaling into > the form function, but is there a way to do it without rewriting that piece > of the code? > > > -gideon > >> On Jan 12, 2016, at 12:14 AM, Barry Smith <[email protected]> wrote: >> >> >> You can use SNESSetConvergenceTest() to use whatever test you want to >> decide on convergence. >> >> Barry >> >>> On Jan 11, 2016, at 3:26 PM, Gideon Simpson <[email protected]> >>> wrote: >>> >>> I’m solving nonlinear problem for a complex valued function which is >>> decomposed into real and imaginary parts, Q = u + i v. What I’m finding is >>> that where |Q| is small, the numerical phase errors tend to be larger. I >>> suspect this is because it’s using the 2-norm for convergence in the SNES, >>> so, where the solution is already, the phase errors are seen as small too. >>> Is there a way to use something more like an infinity norm with SNES, to >>> get more point wise control? >>> >>> -gideon >>> >> >
