[petsc-dev] Proposed changes to TS API
jed at jedbrown.org
Sat May 12 13:04:52 CDT 2018
"Zhang, Hong" <hongzhang at anl.gov> writes:
> 4. Reshifting the Jacobian is unnecessarily expensive and sometimes buggy.
> Why is "reshifting" needed? After a step is rejected and when the step
> size changes for a linear constant operator?
> It doesn't not have to be a linear constant operator. Reusing Jacobian across stages or even time steps for nonlinear problems is not uncommon.
I think the other points were addressed elsewhere in the thread, but
* If the time step does not change, nothing needs to be recomputed.
* If the time step does change, the preconditioner needs to be rebuilt.
* There are several options for lagging operators and/or preconditioners
in nonlinear solvers. Sundials chooses one (always MFFD; recompute
preconditioner any time step sizes changes or based on a measure of
staleness that is unaware of the cost to recompute).
* Adaptivity in step size is usually triggered by evolving
nonlinearities, in which case they coincide with wanting to rebuild
The premise of the above requires that the Jacobian be expensive to
assemble, the preconditioner be cheap, residual evaluation be
significantly more expensive than application of the assembled matrix,
and the problem have only slowly evolving nonlinearities (compared to
the step size) while still requiring rapid time step adaptivity. Unless
presented with convincing evidence to the contrary, I think this is a
niche scenario that should not form the basis for an interface redesign.
More information about the petsc-dev