Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added High Order and Low Order RK methods #2304

Merged
merged 139 commits into from
Aug 4, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
3917a26
Added High Order and Low Order RK methods
ParamThakkar123 Jul 30, 2024
e7b8f53
Changes
ParamThakkar123 Jul 30, 2024
2ad688f
Changes
ParamThakkar123 Jul 30, 2024
5d7759a
Update lib/OrdinaryDiffEqLowOrderRK/test/runtests.jl
ChrisRackauckas Jul 30, 2024
235027d
Fixes
ParamThakkar123 Jul 30, 2024
0e74476
Update test/runtests.jl
ParamThakkar123 Jul 30, 2024
38c83ea
Merge branch 'master' of https://github.com/ParamThakkar123/OrdinaryD…
ParamThakkar123 Jul 30, 2024
e852f01
OrdinaryDiffEqTsit5 added
ParamThakkar123 Jul 30, 2024
f21324d
added interpolants
ParamThakkar123 Jul 30, 2024
aa889f2
trivial_limiter!
ParamThakkar123 Jul 30, 2024
fa5c07a
trivial_limiter!
ParamThakkar123 Jul 30, 2024
54be923
trivial_limiter!
ParamThakkar123 Jul 30, 2024
05a8df5
explicit_rk_docstring
ParamThakkar123 Jul 30, 2024
9209566
changes
ParamThakkar123 Jul 30, 2024
1756924
changes
ParamThakkar123 Jul 30, 2024
4dd3814
changes
ParamThakkar123 Jul 30, 2024
135b5af
Fixes
ParamThakkar123 Jul 30, 2024
b71cb79
TruncatedStacktraces
ParamThakkar123 Jul 30, 2024
56e59f9
@cache
ParamThakkar123 Jul 30, 2024
e86154e
trivial_limiter!
ParamThakkar123 Jul 30, 2024
475e4ec
Update algorithms.jl
ChrisRackauckas Jul 30, 2024
3432c11
@fold
ParamThakkar123 Jul 31, 2024
8f70743
Update lib/OrdinaryDiffEqTsit5/src/OrdinaryDiffEqTsit5.jl
ChrisRackauckas Jul 31, 2024
e9dda02
DiffEqBase
ParamThakkar123 Jul 31, 2024
00e95a9
@OnDemandTableauExtract
ParamThakkar123 Jul 31, 2024
cd7dc0e
trivial_limiter!
ParamThakkar123 Jul 31, 2024
3075609
trivial_limiter!
ParamThakkar123 Jul 31, 2024
c8cc3cc
CompiledFloats
ParamThakkar123 Jul 31, 2024
85d27e3
DiffEqBase
ParamThakkar123 Jul 31, 2024
4b0f31b
@cache
ParamThakkar123 Jul 31, 2024
b898c57
CompiledFloats
ParamThakkar123 Jul 31, 2024
cbf6463
DP8ConstantCache
ParamThakkar123 Jul 31, 2024
b5854c6
DiffEqBase
ParamThakkar123 Jul 31, 2024
20c62f4
FunctionMap
ParamThakkar123 Jul 31, 2024
cd9d69c
FunctionMap
ParamThakkar123 Jul 31, 2024
04b47ea
FunctionMapConstantCache
ParamThakkar123 Jul 31, 2024
d5cd505
Fixes
ParamThakkar123 Jul 31, 2024
64c7100
Interpolants
ParamThakkar123 Jul 31, 2024
c5eccec
@tight_loop_macros
ParamThakkar123 Jul 31, 2024
7908b40
OrdinaryDiffEqFunctionMap
ParamThakkar123 Jul 31, 2024
642810e
FunctionMap
ParamThakkar123 Jul 31, 2024
0de6d31
fixes
ParamThakkar123 Jul 31, 2024
39c81df
OrdinaryDiffEqConstantCache
ParamThakkar123 Jul 31, 2024
f50c16b
OrdinaryDiffEqConstantCache
ParamThakkar123 Jul 31, 2024
561bc9e
solve.jl
ParamThakkar123 Aug 1, 2024
ec2ed26
Added Adams-Bashforth-Moulton methods
ParamThakkar123 Aug 2, 2024
822fd9e
imports
ParamThakkar123 Aug 2, 2024
19a48d9
Fixes
ParamThakkar123 Aug 2, 2024
a6c9c28
Fixes
ParamThakkar123 Aug 2, 2024
fd3f786
Fixes
ParamThakkar123 Aug 2, 2024
6463da2
Added Nordsieck solvers
ParamThakkar123 Aug 2, 2024
0ddeccc
Added Nordsieck solvers
ParamThakkar123 Aug 2, 2024
0117bf1
Setup traits to remove FunctionMap from internals
ChrisRackauckas Aug 2, 2024
905291d
Update lib/OrdinaryDiffEqLowOrderRK/src/OrdinaryDiffEqLowOrderRK.jl
ChrisRackauckas Aug 2, 2024
50ac81c
Added Rosenbrock solvers
ParamThakkar123 Aug 2, 2024
5691c0d
Fixes
ParamThakkar123 Aug 2, 2024
2ad25d1
Fixes and added Explicit RK solvers
ParamThakkar123 Aug 2, 2024
a4226ea
fixes
ParamThakkar123 Aug 2, 2024
972426f
Updates
ParamThakkar123 Aug 2, 2024
6173202
Update
ParamThakkar123 Aug 2, 2024
3f94372
Update src/OrdinaryDiffEq.jl
ChrisRackauckas Aug 2, 2024
f51491e
Update OrdinaryDiffEq.jl
ChrisRackauckas Aug 2, 2024
de8e503
Update lib/OrdinaryDiffEqRosenbrock/src/OrdinaryDiffEqRosenbrock.jl
ChrisRackauckas Aug 2, 2024
65e5459
Updates
ParamThakkar123 Aug 2, 2024
72cfebb
fixes
ParamThakkar123 Aug 2, 2024
2c022ad
OrdinaryDiffEqRosenbrockAlgorithm
ParamThakkar123 Aug 2, 2024
6529ee1
@ROS2
ParamThakkar123 Aug 2, 2024
26f4067
@capture
ParamThakkar123 Aug 2, 2024
2dc43ec
Merge remote-tracking branch 'origin/master'
ChrisRackauckas Aug 2, 2024
f8dbed2
a bunch of fixes
ChrisRackauckas Aug 3, 2024
3aaceb7
a few more imports
ChrisRackauckas Aug 3, 2024
85e9653
more imports
ChrisRackauckas Aug 3, 2024
efc9279
some more imports
ChrisRackauckas Aug 3, 2024
b61de14
add missing dep
ChrisRackauckas Aug 3, 2024
e610400
more
ChrisRackauckas Aug 3, 2024
02a3bda
more
ChrisRackauckas Aug 3, 2024
b35e28e
more
ChrisRackauckas Aug 3, 2024
09ee697
should be the last one
ChrisRackauckas Aug 3, 2024
e06f6e5
more imports
ChrisRackauckas Aug 3, 2024
00897fe
next tests...
ChrisRackauckas Aug 3, 2024
6731f9b
update
ParamThakkar123 Aug 3, 2024
cc07cf9
copyat_or_push!
ParamThakkar123 Aug 3, 2024
d5aad61
calculate_residuals
ParamThakkar123 Aug 3, 2024
032368d
Update
ParamThakkar123 Aug 3, 2024
2fb92d6
move around some interface functions
ChrisRackauckas Aug 3, 2024
57d61e0
constvalue
ParamThakkar123 Aug 3, 2024
19ffbaf
a few more
ChrisRackauckas Aug 3, 2024
c5de013
Merge branch 'master' of https://github.com/ParamThakkar123/OrdinaryD…
ChrisRackauckas Aug 3, 2024
a0821ff
Update src/solve.jl
ChrisRackauckas Aug 3, 2024
59e4a26
jacobian2W!
ParamThakkar123 Aug 3, 2024
3fcefb1
more
ChrisRackauckas Aug 3, 2024
dd78907
Merge branch 'master' of https://github.com/ParamThakkar123/OrdinaryD…
ChrisRackauckas Aug 3, 2024
6648d8a
another
ChrisRackauckas Aug 3, 2024
8df87e6
deps in ABM
ChrisRackauckas Aug 3, 2024
4752f18
import correctly
ChrisRackauckas Aug 3, 2024
4ff49d9
Fix ABM import
ChrisRackauckas Aug 3, 2024
dd497b8
RK4Cache
ParamThakkar123 Aug 3, 2024
2c5e729
Update src/solve.jl
ChrisRackauckas Aug 3, 2024
c722380
add missing imports
ChrisRackauckas Aug 3, 2024
e3e16ae
Merge branch 'master' of https://github.com/ParamThakkar123/OrdinaryD…
ChrisRackauckas Aug 3, 2024
ec264c0
@def
ParamThakkar123 Aug 3, 2024
f7e492f
some clean up
ChrisRackauckas Aug 3, 2024
2c85152
fix project toml
ChrisRackauckas Aug 3, 2024
947a76c
remove extra file
ChrisRackauckas Aug 3, 2024
eb425a1
Adapt
ParamThakkar123 Aug 3, 2024
ba7d043
AutoAlgSwitch
ParamThakkar123 Aug 3, 2024
f123e4f
trivial_limiter!
ParamThakkar123 Aug 3, 2024
13a4150
AutoAlgSwitch
ParamThakkar123 Aug 3, 2024
9db7b75
Static
ParamThakkar123 Aug 3, 2024
4e32260
ADTypes
ParamThakkar123 Aug 3, 2024
41349aa
ADTypes
ParamThakkar123 Aug 3, 2024
e25583f
Tsit5ConstantCache
ParamThakkar123 Aug 3, 2024
1b8afa4
full_cache
ParamThakkar123 Aug 3, 2024
10a9a1e
norm
ParamThakkar123 Aug 3, 2024
b1ca7d8
full_cache
ParamThakkar123 Aug 3, 2024
984bce7
Update lib/OrdinaryDiffEqNordsieck/src/OrdinaryDiffEqNordsieck.jl
ChrisRackauckas Aug 3, 2024
913b9ee
Update src/OrdinaryDiffEq.jl
ChrisRackauckas Aug 3, 2024
032ee4d
a few more missing bits
ChrisRackauckas Aug 3, 2024
1cf0be4
ODEIntegrator
ParamThakkar123 Aug 3, 2024
03093ac
perform_predict!
ParamThakkar123 Aug 3, 2024
0bb766e
full_cache
ParamThakkar123 Aug 3, 2024
439fad1
Fix prediction import
ChrisRackauckas Aug 3, 2024
b269441
add missing custom interpolations
ChrisRackauckas Aug 3, 2024
fc50277
DP8ConstantCache
ParamThakkar123 Aug 3, 2024
b1d993e
move high order interpolant
ChrisRackauckas Aug 3, 2024
b8a9bd3
a bit more
ChrisRackauckas Aug 3, 2024
7fb1037
getting close
ChrisRackauckas Aug 3, 2024
a69313a
some imports
ChrisRackauckas Aug 4, 2024
52d58bb
more
ChrisRackauckas Aug 4, 2024
19423ae
one more
ChrisRackauckas Aug 4, 2024
c4d48f1
missing cache piece
ChrisRackauckas Aug 4, 2024
b3f2f3a
add missing cache
ChrisRackauckas Aug 4, 2024
5d8b121
Update
ParamThakkar123 Aug 4, 2024
743eb97
Update
ParamThakkar123 Aug 4, 2024
9f452f2
Removed
ParamThakkar123 Aug 4, 2024
454389c
LinearAlgebra
ParamThakkar123 Aug 4, 2024
d125014
Revert "Merge remote-tracking branch 'origin/master'"
ChrisRackauckas Aug 4, 2024
b262540
Merge branch 'master' of https://github.com/ParamThakkar123/OrdinaryD…
ChrisRackauckas Aug 4, 2024
6073819
FiniteDiff
ParamThakkar123 Aug 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions lib/OrdinaryDiffEqHighOrderRK/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name = "OrdinaryDiffEqHighOrderRK"
uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58"
authors = ["ParamThakkar123 <[email protected]>"]
version = "1.0.0"

[deps]
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"

[compat]
julia = "1.10"

[extras]
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"]
22 changes: 22 additions & 0 deletions lib/OrdinaryDiffEqHighOrderRK/src/OrdinaryDiffEqHighOrderRK.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module OrdinaryDiffEqHighOrderRK

import OrdinaryDiffEq: alg_order, qmax_default, qmin_default, beta2_default, beta1_default,
explicit_rk_docstring, OrdinaryDiffEqAdaptiveAlgorithm, trivial_limiter!,
_ode_addsteps!, @unpack, @cache, OrdinaryDiffEqMutableCache, constvalue,
alg_cache, uses_uprev, initialize!, perform_step!, OrdinaryDiffEqConstantCache,
calculate_residuals!, calculate_residuals
import Static: False
import MuladdMacro: @muladd
import FastBroadcast: @..
import RecursiveArrayTools: recursivefill!

include("algorithms.jl")
include("alg_utils.jl")
include("high_order_rk_caches.jl")
include("high_order_rk_tableaus.jl")
include("high_order_rk_addsteps.jl")
include("high_order_rk_perform_step.jl")

export TanYam7, DP8, PFRK87, TsitPap8

end
12 changes: 12 additions & 0 deletions lib/OrdinaryDiffEqHighOrderRK/src/alg_utils.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
alg_order(alg::TanYam7) = 7
alg_order(alg::DP8) = 8
alg_order(alg::TsitPap8) = 8
alg_order(alg::PFRK87) = 8

qmin_default(alg::DP8) = 1 // 3

qmax_default(alg::DP8) = 6

beta2_default(alg::DP8) = 0 // 1

beta1_default(alg::DP8, beta2) = typeof(beta2)(1 // alg_order(alg)) - beta2 / 5
61 changes: 61 additions & 0 deletions lib/OrdinaryDiffEqHighOrderRK/src/algorithms.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@doc explicit_rk_docstring(
"Tanaka-Yamashita 7 Runge-Kutta method. (7th order interpolant).",
"TanYam7",
references = "Tanaka M., Muramatsu S., Yamashita S., (1992), On the Optimization of Some Nine-Stage
Seventh-order Runge-Kutta Method, Information Processing Society of Japan,
33 (12), pp. 1512-1526.")
Base.@kwdef struct TanYam7{StageLimiter, StepLimiter, Thread} <:
OrdinaryDiffEqAdaptiveAlgorithm
stage_limiter!::StageLimiter = trivial_limiter!
step_limiter!::StepLimiter = trivial_limiter!
thread::Thread = False()
end
# for backwards compatibility
function TanYam7(stage_limiter!, step_limiter! = trivial_limiter!)
TanYam7(stage_limiter!, step_limiter!, False())
end

@doc explicit_rk_docstring(
"Hairer's 8/5/3 adaption of the Dormand-Prince Runge-Kutta method. (7th order interpolant).",
"DP8",
references = "E. Hairer, S.P. Norsett, G. Wanner, (1993) Solving Ordinary Differential Equations I.
Nonstiff Problems. 2nd Edition. Springer Series in Computational Mathematics,
Springer-Verlag.")
Base.@kwdef struct DP8{StageLimiter, StepLimiter, Thread} <: OrdinaryDiffEqAdaptiveAlgorithm
stage_limiter!::StageLimiter = trivial_limiter!
step_limiter!::StepLimiter = trivial_limiter!
thread::Thread = False()
end
# for backwards compatibility
function DP8(stage_limiter!, step_limiter! = trivial_limiter!)
DP8(stage_limiter!, step_limiter!, False())
end

@doc explicit_rk_docstring("Phase-fitted Runge-Kutta of 8th order.", "PFRK87",
extra_keyword_description = """- `omega`: a periodicity phase estimate,
when accurate this method results in zero numerical dissipation.
""",
extra_keyword_default = "omega = 0.0")
Base.@kwdef struct PFRK87{StageLimiter, StepLimiter, Thread, T} <:
OrdinaryDiffEqAdaptiveAlgorithm
stage_limiter!::StageLimiter = trivial_limiter!
step_limiter!::StepLimiter = trivial_limiter!
thread::Thread = False()
omega::T = 0.0
end
# for backwards compatibility
function PFRK87(stage_limiter!, step_limiter! = trivial_limiter!; omega = 0.0)
PFRK87(stage_limiter!, step_limiter!, False(), omega)
end

@doc explicit_rk_docstring("Tsitouras-Papakostas 8/7 Runge-Kutta method.", "TsitPap8")
Base.@kwdef struct TsitPap8{StageLimiter, StepLimiter, Thread} <:
OrdinaryDiffEqAdaptiveAlgorithm
stage_limiter!::StageLimiter = trivial_limiter!
step_limiter!::StepLimiter = trivial_limiter!
thread::Thread = False()
end
# for backwards compatibility
function TsitPap8(stage_limiter!, step_limiter! = trivial_limiter!)
TsitPap8(stage_limiter!, step_limiter!, False())
end
Original file line number Diff line number Diff line change
Expand Up @@ -256,4 +256,4 @@ end
end
end
end
=#
=#
Original file line number Diff line number Diff line change
Expand Up @@ -262,4 +262,4 @@ function alg_cache(alg::PFRK87, u, rate_prototype, ::Type{uEltypeNoUnits},
dt, reltol, p, calck,
::Val{false}) where {uEltypeNoUnits, uBottomEltypeNoUnits, tTypeNoUnits}
PFRK87ConstantCache(constvalue(uBottomEltypeNoUnits), constvalue(tTypeNoUnits))
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -1150,4 +1150,4 @@ end
f(k, u, p, t + dt)
integrator.stats.nf += 1
return nothing
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -1403,4 +1403,4 @@ function PFRK87ConstantCache(T1::Type, T2::Type)
α1211, α1311, β1, β6, β7, β8, β9, β10, β11, β12, β13, β1tilde,
β6tilde, β7tilde, β8tilde, β9tilde, β10tilde, β11tilde, β12tilde,
c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13)
end
end
22 changes: 22 additions & 0 deletions lib/OrdinaryDiffEqLowOrderRK/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name = "OrdinaryDiffEqLowOrderRK"
uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6"
authors = ["ParamThakkar123 <[email protected]>"]
version = "1.0.0"

[deps]
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"

[compat]
julia = "1.10"

[extras]
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"]
30 changes: 30 additions & 0 deletions lib/OrdinaryDiffEqLowOrderRK/src/OrdinaryDiffEqLowOrderRK.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module OrdinaryDiffEqLowOrderRK

import OrdinaryDiffEq: alg_order, isfsal, beta2_default, beta1_default, alg_stability_size,
ssp_coefficient, OrdinaryDiffEqAlgorithm, OrdinaryDiffEqExponentialAlgorithm,
explicit_rk_docstring, trivial_limiter!, OrdinaryDiffEqAdaptiveAlgorithm,
unwrap_alg, @unpack, initialize!, perform_step!, calculate_residuals,
calculate_residuals!, _ode_addsteps!, @OnDemandTableauExtract, constvalue,
OrdinaryDiffEqMutableCache, uses_uprev, OrdinaryDiffEqConstantCache
import DiffEqBase: @tight_loop_macros
import MuladdMacro: @muladd
import FastBroadcast: @..
import RecursiveArrayTools: recursivefill!

include("algorithms.jl")
include("alg_utils.jl")
include("low_order_rk_caches.jl")
include("low_order_rk_tableaus.jl")
include("interp_func.jl")
include("low_order_rk_perform_step.jl")
include("low_order_rk_addsteps.jl")
include("split_perform_step.jl")
include("fixed_timestep_perform_step.jl")

export Euler, SplitEuler, Heun, Ralston, Midpoint, RK4,
BS3, OwrenZen3, OwrenZen4, OwrenZen5, BS5, Tsit5,
DP5, Anas5, RKO65, FRK65, RKM, MSRK5, MSRK6,
PSRK4p7q6, PSRK3p5q4, PSRK3p6q5, Stepanov5, SIR54,
Alshina2, Alshina3, Alshina6

end
49 changes: 49 additions & 0 deletions lib/OrdinaryDiffEqLowOrderRK/src/alg_utils.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
alg_order(alg::Euler) = 1
alg_order(alg::SplitEuler) = 1
alg_order(alg::Heun) = 2
alg_order(alg::Ralston) = 2
alg_order(alg::Midpoint) = 2
alg_order(alg::BS3) = 3
alg_order(alg::OwrenZen3) = 3
alg_order(alg::BS5) = 5
alg_order(alg::OwrenZen4) = 4
alg_order(alg::OwrenZen5) = 5
alg_order(alg::Tsit5) = 5
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will want to make Tsit5 be its own set.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok so for this I will make a separate OrdinaryDiffEqTsit inside lib

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OrdinaryDiffEqTsit5. Since it's the most common method and it's commonly used alone, making it as lean as possible is a virtue. Thanks.

alg_order(alg::DP5) = 5
alg_order(alg::Anas5) = 5
alg_order(alg::RKO65) = 5
alg_order(alg::FRK65) = 6
alg_order(alg::RK4) = 4
alg_order(alg::RKM) = 4
alg_order(alg::MSRK5) = 5
alg_order(alg::MSRK6) = 6
alg_order(alg::PSRK4p7q6) = 4
alg_order(alg::PSRK3p6q5) = 3
alg_order(alg::PSRK3p5q4) = 3
alg_order(alg::Stepanov5) = 5
alg_order(alg::SIR54) = 5
alg_order(alg::Alshina2) = 2
alg_order(alg::Alshina3) = 3
alg_order(alg::Alshina6) = 6

isfsal(alg::FRK65) = true
isfsal(alg::RKO65) = false
isfsal(alg::PSRK3p5q4) = false
isfsal(alg::PSRK3p6q5) = false
isfsal(alg::PSRK4p7q6) = false

beta2_default(alg::DP5) = 4 // 100

beta1_default(alg::DP5, beta2) = typeof(beta2)(1 // alg_order(alg)) - 3beta2 / 4

alg_stability_size(alg::Tsit5) = 3.5068
alg_stability_size(alg::DP5) = 3.3066

ssp_coefficient(alg::Euler) = 1

function DiffEqBase.prepare_alg(
alg::SplitEuler,
u0::AbstractArray,
p, prob)
alg
end
Loading
Loading