[petsc-users] TSBDF prr-load higher order solution

Alfredo J Duarte Gomez aduarteg at utexas.edu
Thu Mar 10 10:05:01 CST 2022


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 <hongzhang at anl.gov> 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 <jed at jedbrown.org> 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 <aduarteg at utexas.edu> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20220310/c821a6e4/attachment.html>


More information about the petsc-users mailing list