SciML / OrdinaryDiffEq.jl

High performance ordinary differential equation (ODE) and differential-algebraic equation (DAE) solvers, including neural ordinary differential equations (neural ODEs) and scientific machine learning (SciML)
https://diffeq.sciml.ai/latest/
Other
556 stars 210 forks source link

Two-Step Runge-Kutta Methods #117

Open ChrisRackauckas opened 7 years ago

ChrisRackauckas commented 7 years ago

Non-uniform grid: https://link.springer.com/article/10.1023/A:1022352704635

ranocha commented 7 years ago

There are also SSP two-step Runge-Kutta methods:

https://link.springer.com/article/10.1007%2Fs10915-014-9961-7

kamalojasv181 commented 4 years ago

@ChrisRackauckas , https://arxiv.org/pdf/1106.3626.pdf says nothing about the stage defining coefficients c. Can u please check

ChrisRackauckas commented 4 years ago

c are just the sum of the row of a.

kamalojasv181 commented 4 years ago

Screenshot from 2020-04-15 10-46-19 Yes but the method is of form this hence I couldn't figure out

ChrisRackauckas commented 4 years ago

it should be the sum of the row of the q's I think? Looks at the first order conditions.

kamalojasv181 commented 4 years ago

Yes I thought so. But sum of rows of q =1 for all rows

ChrisRackauckas commented 4 years ago

What's the first order condition here?

ranocha commented 4 years ago

IIRC, you can get the Butcher coefficients c by inserting the ODE u'(t) = 1, u(0) = 0 into the update formula. For the stage values given by (4.1a), you get

time(yᵢⁿ) = dᵢ*time(uⁿ⁻¹) + (1 - dᵢ - ∑ⱼ qᵢⱼ) * time(uⁿ) + ∑ⱼqᵢⱼ * (time(yⱼⁿ) + Δt / r * 1)

Then, the values of c can be computed as

cᵢ = (time(yᵢⁿ) - time(uⁿ)) / Δt
kamalojasv181 commented 4 years ago

Thanks. That was helpful.

kamalojasv181 commented 4 years ago

https://github.com/SciML/OrdinaryDiffEq.jl/pull/1120