[petsc-users] infinite loop with NEWTONTR?
Norihiro Watanabe
norihiro.w at gmail.com
Tue Apr 29 10:45:13 CDT 2014
Barry, thank you for the tips. Besides the trust region method, I have also
tested line search methods. -snes_linesearch_type cp worked robustly. Other
line search types didn't converge, except for basic. I'll spend some more
time to check if my Jacobian is wrong or if -snes_mf_operator has some
problem for my problem.
On Tue, Apr 29, 2014 at 5:02 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> On Apr 29, 2014, at 9:19 AM, Norihiro Watanabe <norihiro.w at gmail.com>
> wrote:
>
> > Hi Barry,
> >
> > Is it possible that -snes_mf_operator makes convergence of linear solves
> slower if unknowns are poorly scaled for multiphysics problems? I gave up
> to check Jacobian for the large problem because it takes too long time.
> Instead I tested it with several different small size problems and noticed
> scaling of my unknowns makes a difference in FD Jacobian. My unknowns are
> two kinds: pressure (1e7) and temperature (1e3).
>
> This is not really a huge difference in scaling. In fact it seems
> pretty minor to me.
>
> > I scaled pressure by 1e-5 and got the following different results from
> -snes_type test
>
> Having a good scaling is always a good idea.
> >
> > without scaling
> > Norm of matrix ratio 3.81371e-05 difference 6.42349e+06 (user-defined
> state)
> >
> > with scaling
> > Norm of matrix ratio 8.69182e-09 difference 1463.98 (user-defined state)
> >
> > which may suggest that a differentiate parameter h is not properly set
> if unknowns are poorly scaled. I also tested the scaling for the large
> problem with keeping fluid properties constant and got the following
> different convergence behaviours:
> >
> > without -snes_mf_operator
> > 0 SNES Function norm 4.425457683773e+04
> > 0 KSP Residual norm 44254.6
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 2
> > 1 KSP Residual norm 0.000168321
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 2
> > 2 KSP Residual norm 8.18977e-06
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 2
> > 3 KSP Residual norm 4.75882e-07
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 4 KSP Residual norm 4.06286e-08
> > Linear solve converged due to CONVERGED_RTOL iterations 4
> > 1 SNES Function norm 2.229156139237e+05
>
> I don’t like this. Your SNES function norm has increased. I would avoid
> using a line search of basic and want to see some real decrease in the
> residual norm.
>
> Have you thought about doing some grid sequencing or some other
> continuation method to solve the nonlinear system?
>
> You could also try running with quad precision (./configure
> —with-precision=__float128 and gnu compilers)
>
> In my experience most failures of Newton do not come from “difficult
> physics” but rather from some error in the model (making it crazy), or the
> function or Jacobian evaluation.
>
> Barry
>
> >
> > with -snes_mf_operator
> > 0 SNES Function norm 4.425457683883e+04
> > 0 KSP Residual norm 44254.6
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 2
> > 1 KSP Residual norm 5255.66
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 2 KSP Residual norm 1646.58
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 3 KSP Residual norm 1518.05
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > ...
> > 42 KSP Residual norm 0.656962
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 43 KSP Residual norm 0.462202
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> >
> > with -snes_mf_operator and scaling of pressure by 1e-5
> > 0 SNES Function norm 4.425457683773e+04
> > 0 KSP Residual norm 44254.6
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 2
> > 1 KSP Residual norm 1883.94
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 2 KSP Residual norm 893.88
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > ...
> > 42 KSP Residual norm 6.66081e-08
> > Linear solve converged due to CONVERGED_ITS iterations 1
> > Linear solve converged due to CONVERGED_RTOL iterations 1
> > 43 KSP Residual norm 2.17062e-08
> > Linear solve converged due to CONVERGED_RTOL iterations 43
> > 1 SNES Function norm 2.200867439822e+05
> >
> >
> >
> >
> >
> >
> >
> >
> > On Mon, Apr 28, 2014 at 5:59 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > It will take a very long time
> >
> > On Apr 28, 2014, at 9:14 AM, Norihiro Watanabe <norihiro.w at gmail.com>
> wrote:
> >
> > > I cannot surely say my Jacobian for this particular problem is
> correct, as I have not checked it. For a smaller problem, I've already
> checked its correctness using -snes_type test or -snes_compare_explicit
> (but linear solve and nonlinear solve with FD one need a few more
> iterations than with my Jacobian). To make it sure, now I started
> -snes_type test for the problem and will update you once it finished. By
> the way, I'm waiting the calculation for more than three hours now. Is it
> usual for a large problem (>1e6 dof) or is there something wrong?
> > >
> > >
> > >
> > >
> > >
> > > On Mon, Apr 28, 2014 at 6:34 AM, Barry Smith <bsmith at mcs.anl.gov>
> wrote:
> > >
> > > I have run your code. I changed to use -snes_type newtonls and also
> -snes_mf_operator there is something wrong with your Jacobian:
> > >
> > > Without -snes_mf_operator
> > > 0 SNES Function norm 1.821611413735e+03
> > > 0 KSP Residual norm 1821.61
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 1 KSP Residual norm 0.000167024
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 2 KSP Residual norm 7.66595e-06
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 3 KSP Residual norm 4.4581e-07
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 4 KSP Residual norm 3.77537e-08
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 5 KSP Residual norm 2.20453e-09
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 6 KSP Residual norm 1.711e-10
> > > Linear solve converged due to CONVERGED_RTOL iterations 6
> > >
> > > with -snes_mf_operator
> > >
> > > 0 SNES Function norm 1.821611413735e+03
> > > 0 KSP Residual norm 1821.61
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 1 KSP Residual norm 1796.39
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 2 KSP Residual norm 1786.2
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 3 KSP Residual norm 1741.11
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 4 KSP Residual norm 1733.92
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 5 KSP Residual norm 1726.57
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 6 KSP Residual norm 1725.35
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 7 KSP Residual norm 1723.89
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 8 KSP Residual norm 1715.41
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 9 KSP Residual norm 1713.72
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > Linear solve converged due to CONVERGED_RTOL iterations 1
> > > 10 KSP Residual norm 1702.84
> > > Linear solve converged due to CONVERGED_ITS iterations 1
> > >
> > > …
> > >
> > > This means your Jacobian is wrong. Your first order of business is
> to fix your Jacobian. I noticed in previous emails your discussion with Jed
> about switching to MatGetLocalSubMatrix() and using -snes_type test YOU
> NEED TO DO THIS. You will get no where with an incorrect Jacobian. You need
> to fix your Jacobian before you do anything else! No amount of other
> options or methods will help you with a wrong Jacobian! Once you have a
> correct Jacobian if you still have convergence problems let us know and we
> can make further suggestions.
> > >
> > > Barry
> > >
> > > On Apr 25, 2014, at 7:31 AM, Norihiro Watanabe <norihiro.w at gmail.com>
> wrote:
> > >
> > > > Hi,
> > > >
> > > > In my simulation, nonlinear solve with the trust regtion method got
> stagnent after linear solve (see output below). Is it possible that the
> method goes to inifite loop? Is there any parameter to avoid this situation?
> > > >
> > > > 0 SNES Function norm 1.828728087153e+03
> > > > 0 KSP Residual norm 91.2735
> > > > Linear solve converged due to CONVERGED_ITS iterations 1
> > > > Linear solve converged due to CONVERGED_RTOL iterations 3
> > > > 1 KSP Residual norm 3.42223
> > > > Linear solve converged due to CONVERGED_STEP_LENGTH iterations 1
> > > >
> > > >
> > > > Thank you in advance,
> > > > Nori
> > >
> > >
> > >
> > >
> > > --
> > > Norihiro Watanabe
> >
> >
> >
> >
> > --
> > Norihiro Watanabe
>
>
--
Norihiro Watanabe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140429/97a054c3/attachment-0001.html>
More information about the petsc-users
mailing list