<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 1, 2017 at 8:30 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Mark Adams <<a href="mailto:mfadams@lbl.gov">mfadams@lbl.gov</a>> writes:<br>
<br>
>><br>
>><br>
>><br>
>> The last relevant output you've shown me is SNES failing a bunch of<br>
>> times as the adaptive controller attempts to shrink the step size and<br>
>> retry.  If you fixed that problem, you need to tell me.  If not, THAT is<br>
>> the problem you need to fix.<br>
>><br>
><br>
> That is the problem I am trying to fix.<br>
<br>
</span>The solution to that isn't on the outside.<br></blockquote><div><br></div><div>Does the "inside" exist or is there simply not a proof that it does not exist?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> Note, I am also adapting the time step when the solver converges but<br>
> talks a lot of iterations. Thus, no need for recovery.<br>
<br>
</span>You can encapsulate that in an adaptive controller or put the logic (to<br>
get the SNES iteration number and decided whether to TSSetTimeStep) in<br>
the TS PostStep function.<br></blockquote><div><br></div><div>That is what I do, and it is fine. It works well enough, I now am trying to deal with TS failure.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> It is the SNES failure, recover, cut time step, try again, that I am<br>
> working in now.<br>
<br>
</span>That is already running in the TSAdapt.  Your failure is a result of<br>
something else.  Use -ts_adapt_monitor for more diagnostics about the<br>
controller's decisions.<br></blockquote><div><br></div><div>I looked at TSAdapt for the first problem, of adapting when this look bad but work. It failed because its algo was not quite right for this problem. So I put a simple algo in a post step method.</div><div><br></div><div>Can TSAdapt deal with a SNES failure, recover, cut time step, and rerun the step?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
><br>
>><br>
>> Did you read about -ts_error_if_step_fails on the man page<br>
><br>
><br>
> Google, and found the command line args<br>
><br>
><br>
>> for the<br>
>> functional interface I just cited?<br>
>><br>
>><br>
> Sorry, I missed this cite and used 'git grep' to see that it was there<br>
> (Matt sent me the SNES version today so I knew what to look for).<br>
><br>
><br>
>> >> but all the logic you're talking about is already in TS and<br>
>> >> jury-rigging it on the outside is counterproductive.  So get back to<br>
>> >> the root of the problem and debug why SNES is failing.<br>
>> >><br>
>><br>
</div></div></blockquote></div><br></div></div>