This seems completely reasonable. We should have a simple mechanism for multi-step methods to save the appropriate multisteps after an integration and to load them into a TS before a new integration.
Barry > On Mar 10, 2022, at 11:05 AM, Alfredo J Duarte Gomez <[email protected]> > wrote: > > Hello Zhang and Hong, > > Thank you for your reply. > > As I described, I simply wanted to be able to restart a higher order BDF from > a previous solution. > > 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. > > 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. > > 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). > > Thank you and let me know if you have any questions, > > -Alfredo > > On Wed, Mar 9, 2022 at 4:49 PM Zhang, Hong <[email protected] > <mailto:[email protected]>> wrote: > 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. > > Hong(Mr.) > > > On Mar 9, 2022, at 4:24 PM, Jed Brown <[email protected] > > <mailto:[email protected]>> wrote: > > > > Can you restart using small low-order steps? > > > > Hong, does (or should) your trajectory stuff support an exact checkpointing > > scheme for BDF? > > > > 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? > > > > Alfredo J Duarte Gomez <[email protected] <mailto:[email protected]>> > > writes: > > > >> Good morning PETSC team, > >> > >> I am currently using a TSBDF object, which is working very well. > >> > >> However, I am running into trouble restarting higher order BDF methods. > >> > >> My problem is highly nonlinear, and when restarted for higher order BDF > >> methods (using the TSBDF_Restart function), wiggles appear in a specific > >> region of the solution. > >> > >> Is there any way I can initialize the higher order BDF restart loading > >> previous solutions from a data file? I took a look at the code, but there > >> is no obvious way to do this. > >> > >> Thanks, > >> > >> -Alfredo > >> > >> -- > >> Alfredo Duarte > >> Graduate Research Assistant > >> The University of Texas at Austin > > > > -- > Alfredo Duarte > Graduate Research Assistant > The University of Texas at Austin
