On Tue, Sep 8, 2015 at 10:00 PM, Gideon Simpson <[email protected]> wrote:
> Ok, again, I’m ignorant, where do I put the VecView command to get it to > save at some particular iterate? Also, what do you mean by “halves”? > Well, you should be able to just give -snes_monitor_residual, but it does not take arguments nicely (ugh). I can fix that, but in the meantime you can just put VecViewFromOptions(v, NULL, "-res_vec_view") in a custom monitor. By halves I meant the two different problems. I want to see the residual norms for both parts of the combined problem. Matt > -gideon > > On Sep 8, 2015, at 10:53 PM, Matthew Knepley <[email protected]> wrote: > > On Tue, Sep 8, 2015 at 9:48 PM, Gideon Simpson <[email protected]> > wrote: > >> Your comment about the different pieces scaling different made me think >> of something, and I made a slight modification. It still fails, but the >> conditioning looks much better, no? >> > > This is great. Now its clear that the nonlinear convergence is crappy. > > Lets start with looking at the distribution of residuals. Take iterate 50, > which is as converged as you get and save the residual (VecView with > binary). Then we can load it up and play with it. I recommend > > a) Norms for both halves > > b) Plot of the big half > > What usually happens is that some small part is screwing up, but you > have to iterate the whole system, and finding the descent direction is > hard. If you select the problem variables, Newton will converge, and then > the big system will converge once the problem is removed. This is the > classic > "coarse basis selection" problem in the nonlinear regime. > > Matt > > > -- 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
