<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
It is clear to me now. You need TSBDFGetStepVecs(TS ts, PetscInt *num_steps, const PetscReal **times, const Vec *vecs) as Jed suggested so that you can access the work vectors for TSBDF. In addition, you need to save the step size and the current order to jumpstart
 BDF (without starting from BDF-1). Setting the step size is straightforward with TSSetTimeStep(). To access/recover the order, you need something like TSBDF{Set|Get}CurrentOrder(TS ts, PetscInt **order). 
<div class="">
<div><br class="">
</div>
<div>Thanks,</div>
<div>Hong (Mr.)</div>
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Mar 10, 2022, at 11:35 AM, Alfredo J Duarte Gomez <<a href="mailto:aduarteg@utexas.edu" class="">aduarteg@utexas.edu</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div class="">Hello,</div>
<div class=""><br class="">
</div>
<div class="">The solutions y_n and y_n-1 are the same ones as those saved internally for the BDF-2.</div>
<div class=""><br class="">
</div>
<div class="">The practical problem is for example: run a simulation with a BDF-2 for 10 hrs, see that everything looks good and decide that this simulation is worth continuing for another 10 hrs. Except now when I start from that last solution, the TSBDF starts
 from a single solution and steps its way up to the BDF-2 (numerical noise appears), instead of simply being able to load the last two solutions from my HDF5 output file and continue as if it had not stopped.</div>
<div class=""><br class="">
</div>
<div class="">Maybe I confused you by referencing the TSBDF_Restart, instead of the "starting" procedure for higher order BDFs, I thought they were the same but maybe not.</div>
<div class=""><br class="">
</div>
<div class="">Thank you,</div>
<div class=""><br class="">
</div>
<div class="">-Alfredo<br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Mar 10, 2022 at 11:04 AM Zhang, Hong <<a href="mailto:hongzhang@anl.gov" class="">hongzhang@anl.gov</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div style="overflow-wrap: break-word;" class=""><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Mar 10, 2022, at 10:05 AM, Alfredo J Duarte Gomez <<a href="mailto:aduarteg@utexas.edu" target="_blank" class="">aduarteg@utexas.edu</a>> wrote:</div>
<br class="">
<div class="">
<div dir="ltr" class="">
<div class="">Hello Zhang and Hong,</div>
<div class=""><br class="">
</div>
<div class="">Thank you for your reply.</div>
<div class=""><br class="">
</div>
<div class="">As I described, I simply wanted to be able to restart a higher order BDF from a previous solution.
<br class="">
</div>
<div class=""><br class="">
</div>
<div class="">For example, if I want to restart a BDF-2 solution I can simply load times (n is current time step ) t_n-1, t_n, load solutions y_n, and yn-1 from a restart file and continue integration with a BDF-2 formula as if it never stopped.</div>
</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">Are y_n and yn-1 from the restart file different from the states saved internally for BDF-2? Are you trying to modify these states yourself? A restart is needed typically when you have discontinuities in the system, so the solutions before the
 discontinuity point have to be discarded. If you simply want to modify the states, there should be better ways than using checkpoint-restart.</div>
<div class=""><br class="">
</div>
<div class="">Hong (Mr.)</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">This would replace the current default approach, which starts from a single time tn, solution yn and uses lower order BDF steps as you build up to the selected order.</div>
<div class=""><br class="">
</div>
<div class="">I am not sure why, but an abrupt change in integration order or time step leads to unwanted numerical noise in my solution, which I blame on the high nonlinearity of the system (I have tested extensively to rule out bugs).<br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Thank you and let me know if you have any questions,</div>
<div class=""><br class="">
</div>
<div class="">-Alfredo<br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Mar 9, 2022 at 4:49 PM Zhang, Hong <<a href="mailto:hongzhang@anl.gov" target="_blank" class="">hongzhang@anl.gov</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
TSTrajectory supports checkpointing for multistage methods and can certainly be extended to multistep methods. But I doubt it is the best solution to Alfredo’s problem. Alfredo, can you elaborate a bit on what you would like to do? TSBDF_Restart is already
 using the previous solution to restart the integration with first-order BDF.<br class="">
<br class="">
Hong(Mr.)<br class="">
<br class="">
> On Mar 9, 2022, at 4:24 PM, Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank" class="">jed@jedbrown.org</a>> wrote:<br class="">
> <br class="">
> Can you restart using small low-order steps?<br class="">
> <br class="">
> Hong, does (or should) your trajectory stuff support an exact checkpointing scheme for BDF?<br class="">
> <br class="">
> I think we could add an interface to access the stored steps, but there are few things other than checkpointing that would make sense mathematically. Would you be up for making a merge request to add TSBDFGetStepVecs(TS ts, PetscInt *num_steps, const PetscReal
 **times, const Vec *vecs) and the respective setter? <br class="">
> <br class="">
> Alfredo J Duarte Gomez <<a href="mailto:aduarteg@utexas.edu" target="_blank" class="">aduarteg@utexas.edu</a>> writes:<br class="">
> <br class="">
>> Good morning PETSC team,<br class="">
>> <br class="">
>> I am currently using a TSBDF object, which is working very well.<br class="">
>> <br class="">
>> However, I am running into trouble restarting higher order BDF methods.<br class="">
>> <br class="">
>> My problem is highly nonlinear, and when restarted for higher order BDF<br class="">
>> methods (using the TSBDF_Restart function), wiggles appear in a specific<br class="">
>> region of the solution.<br class="">
>> <br class="">
>> Is there any way I can initialize the higher order BDF restart loading<br class="">
>> previous solutions from a data file? I took a look at the code, but there<br class="">
>> is no obvious way to do this.<br class="">
>> <br class="">
>> Thanks,<br class="">
>> <br class="">
>> -Alfredo<br class="">
>> <br class="">
>> -- <br class="">
>> Alfredo Duarte<br class="">
>> Graduate Research Assistant<br class="">
>> The University of Texas at Austin<br class="">
<br class="">
</blockquote>
</div>
<br clear="all" class="">
<br class="">
-- <br class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class=""><font face="arial, sans-serif" class="">Alfredo Duarte</font>
<div class=""><font face="arial, sans-serif" class="">Graduate Research Assistant</font></div>
<div class=""><font face="arial, sans-serif" class="">The University of Texas at Austin</font></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
</div>
<br clear="all" class="">
<br class="">
-- <br class="">
<div dir="ltr" class="gmail_signature">
<div dir="ltr" class="">
<div class="">
<div dir="ltr" class=""><font face="arial, sans-serif" class="">Alfredo Duarte</font>
<div class=""><font face="arial, sans-serif" class="">Graduate Research Assistant</font></div>
<div class=""><font face="arial, sans-serif" class="">The University of Texas at Austin</font></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>