Skip to content

Commit

Permalink
Merge pull request #2272 from ParamThakkar123/RKN
Browse files Browse the repository at this point in the history
Added RKN methods
  • Loading branch information
ChrisRackauckas authored Jul 6, 2024
2 parents 967ce42 + 96ffdfb commit 424b314
Show file tree
Hide file tree
Showing 16 changed files with 580 additions and 527 deletions.
23 changes: 23 additions & 0 deletions lib/OrdinaryDiffEqRKN/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name = "OrdinaryDiffEqRKN"
uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a"
authors = ["ParamThakkar123 <paramthakkar864@gmail.com>"]
version = "1.0.0"

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

[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/OrdinaryDiffEqRKN/src/OrdinaryDiffEqRKN.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module OrdinaryDiffEqRKN

import OrdinaryDiffEq: alg_order, calculate_residuals!,
initialize!, perform_step!, @unpack, unwrap_alg,
calculate_residuals, alg_extrapolates,
OrdinaryDiffEqAlgorithm,
OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache,
OrdinaryDiffEqAdaptivePartitionedAlgorithm,
OrdinaryDiffEqPartitionedAlgorithm,
OrdinaryDiffEqAdaptiveAlgorithm, CompiledFloats, uses_uprev,
alg_cache, _vec, _reshape, @cache, isfsal, full_cache,
constvalue, _unwrap_val, du_alias_or_new, _ode_interpolant,
trivial_limiter!, _ode_interpolant!, _ode_addsteps!
using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools
using DiffEqBase: @def, @tight_loop_macros

include("algorithms.jl")
include("alg_utils.jl")
include("rkn_tableaus.jl")
include("rkn_caches.jl")
include("interp_func.jl")
include("interpolants.jl")
include("rkn_perform_step.jl")

export Nystrom4, FineRKN4, FineRKN5, Nystrom4VelocityIndependent,
Nystrom5VelocityIndependent,
IRKN3, IRKN4, DPRKN4, DPRKN5, DPRKN6, DPRKN6FM, DPRKN8, DPRKN12, ERKN4, ERKN5, ERKN7,
RKN4

end
20 changes: 20 additions & 0 deletions lib/OrdinaryDiffEqRKN/src/alg_utils.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
alg_extrapolates(alg::IRKN3) = true
alg_extrapolates(alg::IRKN4) = true

alg_order(alg::IRKN3) = 3
alg_order(alg::Nystrom4) = 4
alg_order(alg::FineRKN4) = 4
alg_order(alg::FineRKN5) = 5
alg_order(alg::Nystrom4VelocityIndependent) = 4
alg_order(alg::IRKN4) = 4
alg_order(alg::Nystrom5VelocityIndependent) = 5
alg_order(alg::DPRKN4) = 4
alg_order(alg::DPRKN5) = 5
alg_order(alg::DPRKN6) = 6
alg_order(alg::DPRKN6FM) = 6
alg_order(alg::DPRKN8) = 8
alg_order(alg::DPRKN12) = 12
alg_order(alg::ERKN4) = 4
alg_order(alg::ERKN5) = 5
alg_order(alg::ERKN7) = 7
alg_order(alg::RKN4) = 4
Loading

0 comments on commit 424b314

Please sign in to comment.