<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 30, 2017 at 6:05 AM, Buesing, Henrik <span dir="ltr"><<a href="mailto:hbuesing@eonerc.rwth-aachen.de" target="_blank">hbuesing@eonerc.rwth-aachen.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear Barry,<br>
<br>
I am using a pressure-enthalpy formulation, which is valid across all phase states, i.e. no variable switching. Nevertheless, I have<br>
<br>
1) a truncate function defined with SNESLineSearchSetPreCheck, which keeps pressure and enthalpy values in physical bounds.<br></blockquote><div><br></div><div>You should be able to replace this using</div><div><br></div><div>  <a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESVISetVariableBounds.html">http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESVISetVariableBounds.html</a></div><div><br></div><div>and use the SNESVI solver.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
2) I have if statements in my FormFunction and FormJacobian. These test the current enthalpy vs. saturated water and gas enthalpies and determine the state.<br></blockquote><div><br></div><div>It sounds like the residual function you are using could be non-smooth here. This could give you problems if the</div><div>solution is near the switch, however sometimes it will still converge but linearly instead of quadratically.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I could discard the SNESLineSearchSetPreCheck. Would this be better for Newton's method?<br>
<br>
Thank you!<br>
<br>
Henrik<br>
<br>
<br>
--<br>
Dipl.-Math. Henrik Büsing<br>
Institute for Applied Geophysics and Geothermal Energy<br>
E.ON Energy Research Center<br>
RWTH Aachen University<br>
------------------------------<wbr>------------------------<br>
Mathieustr. 10            |    Tel <a href="tel:%2B49%20%280%29241%2080%2049907" value="+492418049907">+49 (0)241 80 49907</a><br>
52074 Aachen, Germany     |    Fax <a href="tel:%2B49%20%280%29241%2080%2049889" value="+492418049889">+49 (0)241 80 49889</a><br>
------------------------------<wbr>------------------------<br>
<a href="http://www.eonerc.rwth-aachen.de/GGE" rel="noreferrer" target="_blank">http://www.eonerc.rwth-aachen.<wbr>de/GGE</a><br>
<a href="mailto:hbuesing@eonerc.rwth-aachen.de">hbuesing@eonerc.rwth-aachen.de</a><br>
------------------------------<wbr>------------------------<br>
<br>
> -----Ursprüngliche Nachricht-----<br>
> Von: Smith, Barry F. [mailto:<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>]<br>
> Gesendet: 10 November 2017 05:09<br>
> An: Buesing, Henrik <<a href="mailto:hbuesing@eonerc.rwth-aachen.de">hbuesing@eonerc.rwth-aachen.<wbr>de</a>><br>
> Cc: petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>><br>
> Betreff: Re: [petsc-users] Newton methods that converge all the time<br>
><br>
><br>
>   Henrik,<br>
><br>
>    Please describe in some detail how you are handling phase change. If<br>
> you have if () tests of any sort in your FormFunction() or<br>
> FormJacobian() this can kill Newton's method. If you are using "variable<br>
> switching" this WILL kill Newtons' method. Are you monkeying with phase<br>
> definitions in TSPostStep or with SNESLineSearchSetPostCheck(). This<br>
> will also kill Newton's method.<br>
><br>
>   Barry<br>
><br>
><br>
> > On Nov 7, 2017, at 3:19 AM, Buesing, Henrik <HBuesing@eonerc.rwth-<br>
> <a href="http://aachen.de" rel="noreferrer" target="_blank">aachen.de</a>> wrote:<br>
> ><br>
> > Dear all,<br>
> ><br>
> > I am solving a system of nonlinear, transient PDEs. I am using<br>
> Newton’s method in every time step to solve the nonlinear algebraic<br>
> equations. Of course, Newton’s method only converges if the initial<br>
> guess is sufficiently close to the solution.<br>
> ><br>
> > This is often not the case and Newton’s method diverges. Then, I<br>
> reduce the time step and try again. This can become prohibitively<br>
> costly, if the time steps get very small. I am thus looking for variants<br>
> of Newton’s method, which have a bigger convergence radius or ideally<br>
> converge all the time.<br>
> ><br>
> > I tried out the pseudo-timestepping described in<br>
> <a href="http://www.mcs.anl.gov/petsc/petsc-" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>petsc-</a><br>
> current/src/ts/examples/<wbr>tutorials/ex1f.F.html.<br>
> ><br>
> > However, this does converge even worse. I am seeing breakdown when I<br>
> have phase changes (e.g. liquid to two-phase).<br>
> ><br>
> > I was under the impression that pseudo-timestepping should converge<br>
> better. Thus, my question:<br>
> ><br>
> > Am I doing something wrong or is it possible that Newton’s method<br>
> converges and pseudo-timestepping does not?<br>
> ><br>
> > Thank you for any insight on this.<br>
> ><br>
> > Henrik<br>
> ><br>
> ><br>
> ><br>
> ><br>
> > --<br>
> > Dipl.-Math. Henrik Büsing<br>
> > Institute for Applied Geophysics and Geothermal Energy E.ON Energy<br>
> > Research Center RWTH Aachen University<br>
> > ------------------------------<wbr>------------------------<br>
> > Mathieustr. 10            |    Tel <a href="tel:%2B49%20%280%29241%2080%2049907" value="+492418049907">+49 (0)241 80 49907</a><br>
> > 52074 Aachen, Germany     |    Fax <a href="tel:%2B49%20%280%29241%2080%2049889" value="+492418049889">+49 (0)241 80 49889</a><br>
> > ------------------------------<wbr>------------------------<br>
> > <a href="http://www.eonerc.rwth-aachen.de/GGE" rel="noreferrer" target="_blank">http://www.eonerc.rwth-aachen.<wbr>de/GGE</a><br>
> > <a href="mailto:hbuesing@eonerc.rwth-aachen.de">hbuesing@eonerc.rwth-aachen.de</a><br>
> > ------------------------------<wbr>------------------------<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>