Note that BDF has the same issue. I think the correct way to handle this is to support storing/loading these extra vectors via TSView()/TSLoad(). How are you currently restarting the simulation?
Il giorno gio 2 gen 2025 alle ore 19:25 David Kamensky via petsc-users < petsc-users@mcs.anl.gov> ha scritto: > Hi, > > I've recently been helping some co-workers with restarting PETSc time > integrators from saved solution data. > > It looks like the only supported path for restarting the generalized-alpha > integrator for 2nd-order-in-time systems (`TSALPHA2`) is to follow the same > procedure as initialization, in which two first-order-accurate half-steps > are used to estimate an acceleration from the given displacement and > velocity. However, the resulting acceleration is not exactly equivalent to > the intermediate one that would have been used by the integrator if the > integration simply proceeded without restarting. This prevents exact > reproducibility of computations from saved intermediate results. (An > analogous issue would also affect `TSALPHA` for first-order-in-time > problems, where velocity is estimated on initialization/restart.) > > Am I misunderstanding this, or missing a better method of restarting the > 2nd-order generalized-alpha integrator? If not, would there be interest in > adding an alternate initialization/restart option to the `TSALPHA2` > integrator that takes a user-provided `Vec` for the initial/intermediate > acceleration, and skips over the half-step estimation procedure? > > Thanks, David > -- Stefano