6

The only documentation I know about for the implementation of ode23t is in the paper which documents the implementation of ode23tb, the TRBDF2 method in MATLAB. As usually implemented, the trapezoidal rule is not strictly a one-step method because the truncation error estimate makes use of two previously computed solution values. The method is not efficient ...


5

It's not really meaningful to talk about integrating the equation in form A or B, since one way to integrate A is to first transform to B and then discretize. You can only really compare the actual discretizations, and I don't know what Mathematica is using. That said, we can still make an educated guess. Since A is first order in time but second order in ...


5

First of all I don't see how this estimates the local error defined as the error we make in a single step using correct previous values. What does a lower order method have anything to do with previous correct values? I can accept that this is the error we make using a lower order method instead of a higher order method, but what is the relevance of this? ...


5

SSP methods are mainly used for integrating ODEs corresponding to nonlinear hyperbolic PDE semi-discretizations. In such ODEs, $\Delta t_{FE}$ depends on the solution and so it varies at each time step. In all implementations I know of, SSPRK time stepping is done adaptively in order to ensure that the SSP time step constraint (stated in the question above) ...


4

The basic idea is that You use the estimated error given to you (cheaply) by the embedded methods; You use a metric to define acceptance using a user-defined relative and absolute tolerance; Based on the order properties of the code and this metric, a new step size is computed; You avoid large differences in step sizes from one step to the next by limiting ...


4

Many numerical tips and theoretical explanations can be found in this book from Hairer and Wanner: https://www.springer.com/gp/book/9783540566700 In this book, a strategy is described, which uses a time step such that the relative variation of the solution during the first time step is below a certain threshold if you were using explicit Euler (omitting the ...


4

For flow solvers, the general rule is that the time step needs to satisfy some kind of "CFL condition", named after Courant, Friedrichs, and Lewy. This means that $$ \Delta t \le C \min_{K} \frac{h_K}{\|\mathbf u\|_{L^\infty(K)}} $$ In other words, the time step must be proportional to the (minimum over all cells $K$) of the ratio of the mesh size $h_K$ ...


3

Yes! Normally what's done is called Method of Lines. Essentially, you discretize in space to get all of your operators, but instead of discretizing the time component, you leave that derivative along. Now you have a system of ODEs. Then you call an ODE solver like SUNDIALS or DifferentialEquations.jl which have tools for handling the sparsity of a PDE-...


3

What you're talking about is local extrapolation. Local extrapolation is the idea of getting an error estimate between two methods and then continuing (accepting the new value) from the higher order method. Dormand-Prince is an influential paper which created a locally extrapolating 5th order method where the 5th order method minimizes its truncation error ...


3

You should state clearly what you mean by sequence acceleration. But if I understand you correctly, what you're asking about is exactly what extrapolation codes do. A sequence of low-order approximations of the new solution are computed and then combined (via extrapolation) to produce high-order approximations. The highest-order and second-highest-order ...


2

Rosenbrock methods utilize embedded lower order methods in order to calculate errors for adaptive time stepping. In addition, Rosenbrock methods do not have to solve an implicit system (just a linear system). There is no form of iteration then that takes place in them (unless you're using a Krylov linear solver). Maximum number of steps for stiff solver can ...


2

I discuss the method you describe in more detail in this paper (Rackauckas and Nie 2017) as RSwM2. In that paper I am ever so slightly able to detect that it's sometimes doing something wrong, but since it only has issues with re-rejections it isn't that big of a deal. Those 3 methods (RSwM1, RSwM2, RSwM3) are now the basis of DiffEqNoiseProcess.jl and ...


1

As stated there's no re-rejection mechanism, i.e. ability to decrease the stepsize after a step has potentially failed. This is required for implicit methods which have Newton steps since there's a chance the $\Delta t$ is large enough that the (quasi-)Newton is unstable, in which case it needs to pullback on time. This instability can sometimes be seen via ...


1

I do not think this is a bad approach, but it is not a very precise way to select timesteps either. Admittedly, I have not come across this sort of timestep heuristic before, but looking at a linear test problem provides some insight as to why this is reasonable. For $y' = \lambda y$, the conditions becomes $\Delta t = \frac{\alpha}{\lambda}$. This looks ...


1

Look up monotone splines, e.g. Wikipedia Monotone_cubic_interpolation. (Normal cubic splines, see e.g. Numerical Recipes pages 120-122, are simpler but, surprisingly, may be non-monotone for monotone data.)


Only top voted, non community-wiki answers of a minimum length are eligible