CADET-Core icon indicating copy to clipboard operation
CADET-Core copied to clipboard

Discuss changing the time integrator

Open schmoelder opened this issue 4 years ago • 2 comments

Currently, IDAS from SUNDIALS is used, however, LIMEX (linear implicit extrapolation) is a very flexible and stable one step method (variable order and step size is easy). It can be parallelized to some extent (at the cost of memory). It only requires solution of linear systems (BDF requires solution of a nonlinear system, which is done by variants of Newton’s method). In addition, one step methods are better for input signals with lots of discontinuities (e.g. piecewise constant feeds generated by closed / open loop optimal control etc.) since we have to restart the multi-step BDF at each discontinuity (then it needs some small steps to reach its maximum order).

schmoelder avatar Mar 10 '20 16:03 schmoelder

Also relevant: People from RWTH Aachen use a similar method called NIXE, see also Lotz et al. 2015 and Hannemann et al. 2012. It is based on the code SEULEX, which uses a modified step sequence for extrapolation. Forward sensitivity analysis is easily possible, see Schlegel et al. 2004, and maybe already supported by NIXE.

It is not clear to me, which license applies to NIXE. If it were free and compatible with the GPL, we could even use / try this integrator.

Other ideas include: Operator splitting (i.e., IMEX methods) or (S)DIRK methods.

sleweke avatar Mar 20 '20 13:03 sleweke

Some more ideas:

  • Dynamic iteration / waveform relaxation / co-simulation: Each unit operation has its own time-stepping with its own step-size. This allows to use the method best suited to the respective unit operation (e.g., IMEX for a column, implicit method for a CSTR). The units are coupled in time in an iterative scheme (similar to operator splitting on the system level) to resolve strong interactions.
  • Multi-rate integration on the unit level: Use a smaller step-size for fast elements of the state vector (e.g., components involved in fast processes) in order to meet accuracy requirements.
  • Local time stepping: Use different step sizes depending on spatial position (i.e., region of slow time steps moves with the concentration front).

sleweke avatar Jun 18 '21 19:06 sleweke

We found that the DifferentialEquations.jl QNDF is oftentimes faster than the IDAS BDF implementation, seehttps://doi.org/10.1016/j.compchemeng.2024.108913

jbreue16 avatar Dec 17 '24 11:12 jbreue16