Adaptive TimestepControl

19 views
Skip to first unread message

Reza Rastak

unread,
Sep 4, 2019, 8:13:14 PM9/4/19
to deal.II User Group
Hi,

I recently learned about the class Algorithms::TimestepControl and how it is being used in the Algorithms::ThetaTimestepping class. It has a fairly limited set of strategies (uniform step size and doubling step size). I wonder if we can customize it to allow adaptive time stepping. Let me explain with an example. Suppose we are running a time dependent algorithm and at each time-step we perform a Newton algorithm to solve a nonlinear time-dependent equation. The Newton algorithm reports its convergence quality through a SolverControl object. When we are advancing the time, we need to adjust the time step size based on the results stored in the SolverControl object. If it took too many steps to converge, we should reduce the time step size and if the convergence was easy, we can increase the step size. 

1. Is there already a class in dealii that can do that?
2. If we want to implement this functionality, what are the best designs for the interface?

There is another related functionality that I am also looking for. If the convergence in one of the steps fails, we need to go back in time and redo the calculations with a smaller time step size. Any ideas on how I can make that work?

Thank you

Reza

Bruno Turcksin

unread,
Sep 5, 2019, 8:00:08 AM9/5/19
to deal.II User Group
Reza,

Take a look at step-52. We have implemented different time stepping methods including embedded ones that automatically choose the time step for you. These methods will give you an hint on what the time step should be but you can always override the value if you have a better criteria. If the error is too large, the time step will be automatically reduced.

Best,

Bruno

Wolfgang Bangerth

unread,
Sep 5, 2019, 12:31:23 PM9/5/19
to dea...@googlegroups.com

> 2. If we want to implement this functionality, what are the best designs for
> the interface?

Reza,
I've come to believe that we should just use one of the existing, high quality
software packages out there that already implement adaptive time stepping. It
turns out that we already have interfaces to one, incidentally one of the
best: SUNDIALS. I think you might want to look at these interfaces.

Best
W.


--
------------------------------------------------------------------------
Wolfgang Bangerth email: bang...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/

Reply all
Reply to author
Forward
0 new messages