From 31f3a4bdbc6ae72167517115d779111f1fc5c5cf Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 01/60] Feagin --- .../OrdinaryDiffEqFeagin/Project.toml | 2 + lib/OrdinaryDiffEqFeagin/Project.toml | 19 +++++++++ .../src/OrdinaryDiffEqFeagin.jl | 11 +++++ lib/OrdinaryDiffEqFeagin/src/alg_utils.jl | 6 +++ lib/OrdinaryDiffEqFeagin/src/algorithms.jl | 41 +++++++++++++++++++ .../src}/feagin_caches.jl | 0 .../src}/feagin_rk_perform_step.jl | 2 +- .../src}/feagin_tableaus.jl | 2 +- .../test}/ode_feagin_tests.jl | 0 lib/OrdinaryDiffEqFeagin/test/runtests.jl | 0 src/OrdinaryDiffEq.jl | 9 ++-- src/alg_utils.jl | 5 --- src/algorithms/explicit_rk.jl | 41 ------------------- test/runtests.jl | 11 ++++- 14 files changed, 96 insertions(+), 53 deletions(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/alg_utils.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/algorithms.jl rename {src/caches => lib/OrdinaryDiffEqFeagin/src}/feagin_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqFeagin/src}/feagin_rk_perform_step.jl (99%) rename {src/tableaus => lib/OrdinaryDiffEqFeagin/src}/feagin_tableaus.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqFeagin/test}/ode_feagin_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqFeagin/test/runtests.jl diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..8edbcebf0c --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,19 @@ +name = "OrdinaryDiffEqFeagin" +uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" +authors = ["ParamThakkar123 "] +version = "1.0.0" + +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[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" + +[compat] +julia = "1.10" + +[targets] +test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl new file mode 100644 index 0000000000..f2ead0f0ab --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -0,0 +1,11 @@ +module OrdinaryDiffEqFeagin + +include("alg_utils.jl") +include("algorithms.jl") +include("feagin_caches.jl") +include("feagin_rk_perform_step.jl") +include("feagin_tableaus.jl") + +export Feagin10, Feagin12, Feagin14 + +end diff --git a/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl new file mode 100644 index 0000000000..ec4f4a10d3 --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl @@ -0,0 +1,6 @@ +alg_order(alg::Feagin10) = 10 +alg_order(alg::Feagin12) = 12 +alg_order(alg::Feagin14) = 14 + +alg_adaptive_order(alg::Feagin10) = 8 +alg_adaptive_order(alg::Feagin14) = 12 \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/algorithms.jl b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl new file mode 100644 index 0000000000..7de1e0284f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl @@ -0,0 +1,41 @@ +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin10: Explicit Runge-Kutta Method +Feagin's 10th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin12: Explicit Runge-Kutta Method +Feagin's 12th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical +Algorithms, 2009 + +Feagin14: Explicit Runge-Kutta Method +Feagin's 14th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + diff --git a/src/caches/feagin_caches.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl similarity index 100% rename from src/caches/feagin_caches.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl diff --git a/src/perform_step/feagin_rk_perform_step.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl similarity index 99% rename from src/perform_step/feagin_rk_perform_step.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl index 73dd68e2cf..e21bc4e1ac 100644 --- a/src/perform_step/feagin_rk_perform_step.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl @@ -1294,4 +1294,4 @@ end end f(integrator.fsallast, u, p, t + dt) # For the interpolation, needs k at the updated point integrator.stats.nf += 1 -end +end \ No newline at end of file diff --git a/src/tableaus/feagin_tableaus.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl similarity index 99% rename from src/tableaus/feagin_tableaus.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl index 64a056e0c9..708e98e0a5 100644 --- a/src/tableaus/feagin_tableaus.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl @@ -2647,4 +2647,4 @@ function Feagin14ConstantCache(T::Type, T2::Type) b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35) -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_feagin_tests.jl b/lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl similarity index 100% rename from test/algconvergence/ode_feagin_tests.jl rename to lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl diff --git a/lib/OrdinaryDiffEqFeagin/test/runtests.jl b/lib/OrdinaryDiffEqFeagin/test/runtests.jl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index b511653080..c787fd1904 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -148,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") include("caches/firk_caches.jl") @@ -170,7 +169,6 @@ include("tableaus/low_order_rk_tableaus.jl") include("tableaus/high_order_rk_tableaus.jl") include("tableaus/symplectic_tableaus.jl") include("tableaus/verner_tableaus.jl") -include("tableaus/feagin_tableaus.jl") include("tableaus/rosenbrock_tableaus.jl") include("tableaus/sdirk_tableaus.jl") include("tableaus/firk_tableaus.jl") @@ -195,7 +193,6 @@ include("perform_step/explicit_rk_perform_step.jl") include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") -include("perform_step/feagin_rk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -265,6 +262,10 @@ export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRK SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 +include("../lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl") +using ..OrdinaryDiffFeagin +export Feagin10, Feagin12, Feagin14 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,7 +399,7 @@ export constructDormandPrince export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, OwrenZen4, OwrenZen5, BS3, BS5, DP5, Tsit5, DP8, Vern6, Vern7, Vern8, TanYam7, TsitPap8, - Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, + Vern9, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 export RadauIIA3, RadauIIA5 diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 55fd14cc4b..5f00214358 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -531,9 +531,6 @@ alg_order(alg::SFSDIRK7) = 4 alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 -alg_order(alg::Feagin10) = 10 -alg_order(alg::Feagin12) = 12 -alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 alg_order(alg::ROS2) = 2 @@ -620,8 +617,6 @@ alg_maximum_order(alg::CompositeAlgorithm) = maximum(alg_order(x) for x in alg.a alg_adaptive_order(alg::ExplicitRK) = alg.tableau.adaptiveorder alg_adaptive_order(alg::Union{OrdinaryDiffEqAlgorithm, DAEAlgorithm}) = alg_order(alg) - 1 -alg_adaptive_order(alg::Feagin10) = 8 -alg_adaptive_order(alg::Feagin14) = 12 alg_adaptive_order(alg::Rosenbrock23) = 3 alg_adaptive_order(alg::Rosenbrock32) = 2 diff --git a/src/algorithms/explicit_rk.jl b/src/algorithms/explicit_rk.jl index 80e6ef44ad..49b9f64784 100644 --- a/src/algorithms/explicit_rk.jl +++ b/src/algorithms/explicit_rk.jl @@ -406,47 +406,6 @@ function TsitPap8(stage_limiter!, step_limiter! = trivial_limiter!) TsitPap8(stage_limiter!, step_limiter!, False()) end -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin10: Explicit Runge-Kutta Method -Feagin's 10th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin12: Explicit Runge-Kutta Method -Feagin's 12th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical -Algorithms, 2009 - -Feagin14: Explicit Runge-Kutta Method -Feagin's 14th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - @doc explicit_rk_docstring("Zero Dissipation Runge-Kutta of 6th order.", "FRK65", extra_keyword_description = """- `omega`: a periodicity phase estimate, when accurate this method results in zero numerical dissipation. diff --git a/test/runtests.jl b/test/runtests.jl index 7e71b2c45a..b6681f4b83 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -53,6 +53,12 @@ function activate_ssprk() Pkg.instantiate() end +function activate_feagin() + Pkg.activate("../lib/OrdinaryDiffEqFeagin") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -187,7 +193,6 @@ end @time @safetestset "FIRK Tests" include("algconvergence/ode_firk_tests.jl") @time @safetestset "Linear-Nonlinear Methods Tests" include("algconvergence/linear_nonlinear_convergence_tests.jl") @time @safetestset "Linear-Nonlinear Krylov Methods Tests" include("algconvergence/linear_nonlinear_krylov_tests.jl") - @time @safetestset "Feagin Tests" include("algconvergence/ode_feagin_tests.jl") @time @safetestset "Symplectic Tests" include("algconvergence/symplectic_tests.jl") @time @safetestset "Quadruple precision Runge-Kutta Tests" include("algconvergence/ode_quadruple_precision_tests.jl") end @@ -196,6 +201,10 @@ end @time @safetestset "Extrapolation Tests" include("../lib/OrdinaryDiffEqExtrapolation/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "Feagin" + @time @safetestset "Feagin Tests" include("../lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl") + end + if !is_APPVEYOR && GROUP == "StabilizedRK" @time @safetestset "StabilizedRK Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/runtests.jl") end From 824423e9b0cb710d137cdf61056d8da63ecb7b21 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 02/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From fc92fc7d08c567d440d259dd51b580d9c922e318 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:09:55 +0530 Subject: [PATCH 03/60] Added SSPRK methods --- .../test/runtests.jl | 2 +- lib/OrdinaryDiffEqSSPRK/Project.toml | 24 +++++++++ .../src/OrdinaryDiffEqSSPRK.jl | 25 +++++++++ lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl | 52 +++++++++++++++++++ .../OrdinaryDiffEqSSPRK/src/algorithms.jl | 0 .../OrdinaryDiffEqSSPRK/src}/ssprk_caches.jl | 0 .../src}/ssprk_perform_step.jl | 2 +- .../test}/ode_ssprk_tests.jl | 0 lib/OrdinaryDiffEqSSPRK/test/runtests.jl | 3 ++ src/OrdinaryDiffEq.jl | 13 +++-- src/alg_utils.jl | 50 ------------------ test/runtests.jl | 14 ++++- 12 files changed, 125 insertions(+), 60 deletions(-) create mode 100644 lib/OrdinaryDiffEqSSPRK/Project.toml create mode 100644 lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl create mode 100644 lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl rename src/algorithms/explicit_rk_pde.jl => lib/OrdinaryDiffEqSSPRK/src/algorithms.jl (100%) rename {src/caches => lib/OrdinaryDiffEqSSPRK/src}/ssprk_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqSSPRK/src}/ssprk_perform_step.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqSSPRK/test}/ode_ssprk_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqSSPRK/test/runtests.jl diff --git a/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl b/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl index f823d8debf..7225e9390c 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl +++ b/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl @@ -1,3 +1,3 @@ using SafeTestsets -@time @safetestset "Extrapolation Tests" include("ode_low_storage_rk_tests.jl") +@time @safetestset "Low Storage RK Tests" include("ode_low_storage_rk_tests.jl") diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml new file mode 100644 index 0000000000..c0fdef5aa1 --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -0,0 +1,24 @@ +name = "OrdinaryDiffEqSSPRK" +uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" +authors = ["ParamThakkar123 "] +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" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" + +[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"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl new file mode 100644 index 0000000000..9b1a95c4a5 --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -0,0 +1,25 @@ +module OrdinaryDiffEqSSPRK + +import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, + beta2_default, beta1_default, gamma_default, + initialize!, perform_step!, @unpack, unwrap_alg, + calculate_residuals, ssp_coefficient, + OrdinaryDiffEqAlgorithm, ispredictive, + OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, + OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, + default_controller, PIDController, + alg_cache, _vec, _reshape, @cache, isfsal, full_cache, + constvalue, _unwrap_val, du_alias_or_new, ArrayFuse +using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools +import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA + +include("alg_utils.jl") +include("algorithms.jl") +include("ssprk_caches.jl") +include("ssprk_perform_step.jl") + +export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRKMSVS32, + SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, + SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 + +end \ No newline at end of file diff --git a/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl b/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl new file mode 100644 index 0000000000..e162e3a63d --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl @@ -0,0 +1,52 @@ +isfsal(alg::SSPRK53_2N1) = false +isfsal(alg::SSPRK53_2N2) = false +isfsal(alg::SSPRK22) = false +isfsal(alg::SSPRK33) = false +isfsal(alg::SSPRK53) = false +isfsal(alg::SSPRK53_H) = false +isfsal(alg::SSPRK63) = false +isfsal(alg::SSPRK73) = false +isfsal(alg::SSPRK83) = false +isfsal(alg::SSPRK43) = false +isfsal(alg::SSPRK432) = false +isfsal(alg::SSPRK932) = false +isfsal(alg::SSPRK54) = false +isfsal(alg::SSPRK104) = false + +alg_order(alg::KYKSSPRK42) = 2 +alg_order(alg::SSPRKMSVS32) = 2 +alg_order(alg::SSPRK33) = 3 +alg_order(alg::SSPRK53_2N1) = 3 +alg_order(alg::SSPRK53_2N2) = 3 +alg_order(alg::SSPRK22) = 2 +alg_order(alg::SSPRK53) = 3 +alg_order(alg::SSPRK53_H) = 3 +alg_order(alg::SSPRK63) = 3 +alg_order(alg::SSPRK73) = 3 +alg_order(alg::SSPRK83) = 3 +alg_order(alg::SSPRK43) = 3 +alg_order(alg::SSPRK432) = 3 +alg_order(alg::SSPRKMSVS43) = 3 +alg_order(alg::SSPRK932) = 3 +alg_order(alg::SSPRK54) = 4 +alg_order(alg::SSPRK104) = 4 +alg_order(alg::SHLDDRK_2N) = 4 +alg_order(alg::SHLDDRK52) = 2 + +ssp_coefficient(alg::SSPRK53_2N1) = 2.18 +ssp_coefficient(alg::SSPRK53_2N2) = 2.148 +ssp_coefficient(alg::SSPRK53) = 2.65 +ssp_coefficient(alg::SSPRK53_H) = 2.65 +ssp_coefficient(alg::SSPRK63) = 3.518 +ssp_coefficient(alg::SSPRK73) = 4.2879 +ssp_coefficient(alg::SSPRK83) = 5.107 +ssp_coefficient(alg::SSPRK43) = 2 +ssp_coefficient(alg::SSPRK432) = 2 +ssp_coefficient(alg::SSPRK932) = 6 +ssp_coefficient(alg::SSPRK54) = 1.508 +ssp_coefficient(alg::SSPRK104) = 6 +ssp_coefficient(alg::SSPRK33) = 1 +ssp_coefficient(alg::SSPRK22) = 1 +ssp_coefficient(alg::SSPRKMSVS32) = 0.5 +ssp_coefficient(alg::SSPRKMSVS43) = 0.33 +ssp_coefficient(alg::KYKSSPRK42) = 2.459 \ No newline at end of file diff --git a/src/algorithms/explicit_rk_pde.jl b/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl similarity index 100% rename from src/algorithms/explicit_rk_pde.jl rename to lib/OrdinaryDiffEqSSPRK/src/algorithms.jl diff --git a/src/caches/ssprk_caches.jl b/lib/OrdinaryDiffEqSSPRK/src/ssprk_caches.jl similarity index 100% rename from src/caches/ssprk_caches.jl rename to lib/OrdinaryDiffEqSSPRK/src/ssprk_caches.jl diff --git a/src/perform_step/ssprk_perform_step.jl b/lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl similarity index 99% rename from src/perform_step/ssprk_perform_step.jl rename to lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl index 4f39c2e83c..c332ae335a 100644 --- a/src/perform_step/ssprk_perform_step.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl @@ -1704,4 +1704,4 @@ end stage_limiter!(u, integrator, p, t + dt) step_limiter!(u, integrator, p, t + dt) integrator.stats.nf += 10 -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_ssprk_tests.jl b/lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl similarity index 100% rename from test/algconvergence/ode_ssprk_tests.jl rename to lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl diff --git a/lib/OrdinaryDiffEqSSPRK/test/runtests.jl b/lib/OrdinaryDiffEqSSPRK/test/runtests.jl new file mode 100644 index 0000000000..939f4eae4e --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/test/runtests.jl @@ -0,0 +1,3 @@ +using SafeTestsets + +@time @safetestset "SSPRK Tests" include("ode_ssprk_tests.jl") \ No newline at end of file diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index 258af062ad..b511653080 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -133,7 +133,6 @@ include("misc_utils.jl") include("algorithms.jl") include("algorithms/explicit_rk.jl") -include("algorithms/explicit_rk_pde.jl") include("alg_utils.jl") @@ -149,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/ssprk_caches.jl") include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") @@ -198,7 +196,6 @@ include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") include("perform_step/feagin_rk_perform_step.jl") -include("perform_step/ssprk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -262,6 +259,12 @@ export ORK256, CarpenterKennedy2N54, SHLDDRK64, HSLDDRK64, DGLDDRK73_C, DGLDDRK8 RDPK3Sp35, RDPK3SpFSAL35, RDPK3Sp49, RDPK3SpFSAL49, RDPK3Sp510, RDPK3SpFSAL510, KYK2014DGSSPRK_3S2, RK46NL +include("../lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl") +using ..OrdinaryDiffEqSSPRK +export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRKMSVS32, + SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, + SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,10 +401,6 @@ export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 -export SSPRK22, SSPRK33, KYKSSPRK42, SSPRK53, SSPRK53_2N1, SSPRK53_2N2, SSPRK53_H, SSPRK63, - SSPRK73, SSPRK83, SSPRK43, SSPRK432, - SSPRKMSVS32, SSPRKMSVS43, SSPRK932, SSPRK54, SSPRK104 - export RadauIIA3, RadauIIA5 export ImplicitEuler, ImplicitMidpoint, Trapezoid, TRBDF2, SDIRK2, SDIRK22, diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 1a084d3b9b..55fd14cc4b 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -33,20 +33,6 @@ isfsal(alg::FunctionMap) = false isfsal(alg::Rodas3P) = false isfsal(alg::Rodas23W) = false isfsal(alg::Rodas5) = false -isfsal(alg::SSPRK53_2N1) = false -isfsal(alg::SSPRK53_2N2) = false -isfsal(alg::SSPRK22) = false -isfsal(alg::SSPRK33) = false -isfsal(alg::SSPRK53) = false -isfsal(alg::SSPRK53_H) = false -isfsal(alg::SSPRK63) = false -isfsal(alg::SSPRK73) = false -isfsal(alg::SSPRK83) = false -isfsal(alg::SSPRK43) = false -isfsal(alg::SSPRK432) = false -isfsal(alg::SSPRK932) = false -isfsal(alg::SSPRK54) = false -isfsal(alg::SSPRK104) = false isfsal(alg::Rodas5P) = false isfsal(alg::Rodas5Pr) = false isfsal(alg::Rodas5Pe) = false @@ -414,9 +400,6 @@ alg_order(alg::Ralston) = 2 alg_order(alg::LawsonEuler) = 1 alg_order(alg::NorsettEuler) = 1 alg_order(alg::LieEuler) = 1 -alg_order(alg::KYKSSPRK42) = 2 -alg_order(alg::SSPRKMSVS32) = 2 -alg_order(alg::SSPRK33) = 3 alg_order(alg::CayleyEuler) = 2 alg_order(alg::ETDRK2) = 2 alg_order(alg::ETDRK3) = 3 @@ -433,7 +416,6 @@ alg_order(alg::SplitEuler) = 1 alg_order(alg::ETD2) = 2 alg_order(alg::Exprb32) = 3 alg_order(alg::Exprb43) = 4 -alg_order(alg::SHLDDRK_2N) = 4 alg_order(alg::Anas5) = 5 alg_order(alg::KuttaPRK2p5) = 5 alg_order(alg::RKO65) = 5 @@ -550,20 +532,6 @@ alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 alg_order(alg::Feagin10) = 10 -alg_order(alg::SSPRK53_2N1) = 3 -alg_order(alg::SSPRK53_2N2) = 3 -alg_order(alg::SSPRK22) = 2 -alg_order(alg::SSPRK53) = 3 -alg_order(alg::SSPRK53_H) = 3 -alg_order(alg::SSPRK63) = 3 -alg_order(alg::SSPRK73) = 3 -alg_order(alg::SSPRK83) = 3 -alg_order(alg::SSPRK43) = 3 -alg_order(alg::SSPRK432) = 3 -alg_order(alg::SSPRKMSVS43) = 3 -alg_order(alg::SSPRK932) = 3 -alg_order(alg::SSPRK54) = 4 -alg_order(alg::SSPRK104) = 4 alg_order(alg::Feagin12) = 12 alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 @@ -602,7 +570,6 @@ alg_order(alg::Rodas5) = 5 alg_order(alg::Rodas5P) = 5 alg_order(alg::Rodas5Pr) = 5 alg_order(alg::Rodas5Pe) = 5 -alg_order(alg::SHLDDRK52) = 2 alg_order(alg::AB3) = 3 alg_order(alg::AB4) = 4 @@ -748,23 +715,6 @@ end # SSP coefficients ssp_coefficient(alg) = error("$alg is not a strong stability preserving method.") ssp_coefficient(alg::Euler) = 1 -ssp_coefficient(alg::SSPRK53_2N1) = 2.18 -ssp_coefficient(alg::SSPRK53_2N2) = 2.148 -ssp_coefficient(alg::SSPRK53) = 2.65 -ssp_coefficient(alg::SSPRK53_H) = 2.65 -ssp_coefficient(alg::SSPRK63) = 3.518 -ssp_coefficient(alg::SSPRK73) = 4.2879 -ssp_coefficient(alg::SSPRK83) = 5.107 -ssp_coefficient(alg::SSPRK43) = 2 -ssp_coefficient(alg::SSPRK432) = 2 -ssp_coefficient(alg::SSPRK932) = 6 -ssp_coefficient(alg::SSPRK54) = 1.508 -ssp_coefficient(alg::SSPRK104) = 6 -ssp_coefficient(alg::SSPRK33) = 1 -ssp_coefficient(alg::SSPRK22) = 1 -ssp_coefficient(alg::SSPRKMSVS32) = 0.5 -ssp_coefficient(alg::SSPRKMSVS43) = 0.33 -ssp_coefficient(alg::KYKSSPRK42) = 2.459 # We shouldn't do this probably. #ssp_coefficient(alg::ImplicitEuler) = Inf diff --git a/test/runtests.jl b/test/runtests.jl index d557bc2f1a..18102f3776 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,12 +35,24 @@ function activate_stabilized_rk() Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + function activate_low_storage_rk() Pkg.activate("../lib/OrdinaryDiffEqLowStorageRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqSSPRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -164,7 +176,7 @@ end end if !is_APPVEYOR && GROUP == "AlgConvergence_II" - @time @safetestset "SSPRK Tests" include("algconvergence/ode_ssprk_tests.jl") + @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") @time @safetestset "OwrenZen Tests" include("algconvergence/owrenzen_tests.jl") @time @safetestset "Runge-Kutta-Chebyshev Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/rkc_tests.jl") From b75f89fb8cf0506cc188e47aac758dc90c1d2e39 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:14:45 +0530 Subject: [PATCH 04/60] Updates --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index e418603292..3591f69f0e 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,7 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" From dde2145bd87c56845c29089ab461dfe440777c8c Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:16:33 +0530 Subject: [PATCH 05/60] Updates --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 + lib/OrdinaryDiffEqSSPRK/Project.toml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index 3591f69f0e..e418603292 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,6 +9,7 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index c0fdef5aa1..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,7 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" From 8138da5703e1d9e528083fc2a50e5c6895369ffd Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:23:40 +0530 Subject: [PATCH 06/60] Updates --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 692af1906f..eed9f2b4f6 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,6 +6,7 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" From fab066f3de1fe2dc7501f873160b6c06cc6f5ddb Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 09:22:59 +0530 Subject: [PATCH 07/60] Made changes --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 - test/runtests.jl | 15 +++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index eed9f2b4f6..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,7 +6,6 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" diff --git a/test/runtests.jl b/test/runtests.jl index 18102f3776..ec8108af6b 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,7 +35,7 @@ function activate_stabilized_rk() Pkg.instantiate() end -function activate_low_storage_rk() +function activate_irk() Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() @@ -47,7 +47,7 @@ function activate_low_storage_rk() Pkg.instantiate() end -function activate_low_storage_rk() +function activate_ssprk() Pkg.activate("../lib/OrdinaryDiffEqSSPRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() @@ -176,8 +176,6 @@ end end if !is_APPVEYOR && GROUP == "AlgConvergence_II" - @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") - @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") @time @safetestset "OwrenZen Tests" include("algconvergence/owrenzen_tests.jl") @time @safetestset "Runge-Kutta-Chebyshev Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/rkc_tests.jl") end @@ -206,6 +204,15 @@ end @time @safetestset "StabilizedIRK Tests" include("../lib/OrdinaryDiffEqStabilizedIRK/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "SSPRK" + @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") + end + + if !is_APPVEYOR && GROUP == "Low Storage RK" + @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") + end + + if !is_APPVEYOR && GROUP == "Downstream" activate_downstream_env() @time @safetestset "DelayDiffEq Tests" include("downstream/delaydiffeq.jl") From 8e73f3c619ba21c55a13ed8ab14459473553fdb0 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 09:49:29 +0530 Subject: [PATCH 08/60] Changes --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index ec8108af6b..7e71b2c45a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,7 +35,7 @@ function activate_stabilized_rk() Pkg.instantiate() end -function activate_irk() +function activate_stabilized_irk() Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() From c9ab296f5252f9a75c7a652ac77b41ddf7219a5c Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:45:50 +0530 Subject: [PATCH 09/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 9b1a95c4a5..c4b53405e1 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -7,7 +7,6 @@ import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, OrdinaryDiffEqAlgorithm, ispredictive, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, - default_controller, PIDController, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new, ArrayFuse using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools From 4c7cae773ad9c1726261d41b5eb375d7d571cbd2 Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:07 +0530 Subject: [PATCH 10/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index c4b53405e1..ecf2d9b99d 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -4,7 +4,7 @@ import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, beta2_default, beta1_default, gamma_default, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, - OrdinaryDiffEqAlgorithm, ispredictive, + OrdinaryDiffEqAlgorithm, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, From ba31d3c6c24e3575b38d0bb89c49bad18e308079 Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:21 +0530 Subject: [PATCH 11/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index ecf2d9b99d..03a99e2c9c 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,7 +1,6 @@ module OrdinaryDiffEqSSPRK import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, - beta2_default, beta1_default, gamma_default, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, OrdinaryDiffEqAlgorithm, From 8c33b11361110cff6419752a70189b8b50a2b99a Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:37 +0530 Subject: [PATCH 12/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 03a99e2c9c..a213956d61 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,6 +1,6 @@ module OrdinaryDiffEqSSPRK -import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, +import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, OrdinaryDiffEqAlgorithm, From 647b185b002a7e1d98c6bfa87c10d179bcdba93c Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:44 +0530 Subject: [PATCH 13/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index a213956d61..58ca3cecc9 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -7,7 +7,7 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, - constvalue, _unwrap_val, du_alias_or_new, ArrayFuse + constvalue, _unwrap_val, du_alias_or_new using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA From 941e3f5481fe4818c31245be2e347e28360d3110 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 14/60] Feagin --- .../OrdinaryDiffEqFeagin/Project.toml | 2 + lib/OrdinaryDiffEqFeagin/Project.toml | 19 +++++++++ .../src/OrdinaryDiffEqFeagin.jl | 11 +++++ lib/OrdinaryDiffEqFeagin/src/alg_utils.jl | 6 +++ lib/OrdinaryDiffEqFeagin/src/algorithms.jl | 41 +++++++++++++++++++ .../src}/feagin_caches.jl | 0 .../src}/feagin_rk_perform_step.jl | 2 +- .../src}/feagin_tableaus.jl | 2 +- .../test}/ode_feagin_tests.jl | 0 lib/OrdinaryDiffEqFeagin/test/runtests.jl | 0 src/OrdinaryDiffEq.jl | 9 ++-- src/alg_utils.jl | 5 --- src/algorithms/explicit_rk.jl | 41 ------------------- test/runtests.jl | 11 ++++- 14 files changed, 96 insertions(+), 53 deletions(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/alg_utils.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/algorithms.jl rename {src/caches => lib/OrdinaryDiffEqFeagin/src}/feagin_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqFeagin/src}/feagin_rk_perform_step.jl (99%) rename {src/tableaus => lib/OrdinaryDiffEqFeagin/src}/feagin_tableaus.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqFeagin/test}/ode_feagin_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqFeagin/test/runtests.jl diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..8edbcebf0c --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,19 @@ +name = "OrdinaryDiffEqFeagin" +uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" +authors = ["ParamThakkar123 "] +version = "1.0.0" + +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[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" + +[compat] +julia = "1.10" + +[targets] +test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl new file mode 100644 index 0000000000..f2ead0f0ab --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -0,0 +1,11 @@ +module OrdinaryDiffEqFeagin + +include("alg_utils.jl") +include("algorithms.jl") +include("feagin_caches.jl") +include("feagin_rk_perform_step.jl") +include("feagin_tableaus.jl") + +export Feagin10, Feagin12, Feagin14 + +end diff --git a/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl new file mode 100644 index 0000000000..ec4f4a10d3 --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl @@ -0,0 +1,6 @@ +alg_order(alg::Feagin10) = 10 +alg_order(alg::Feagin12) = 12 +alg_order(alg::Feagin14) = 14 + +alg_adaptive_order(alg::Feagin10) = 8 +alg_adaptive_order(alg::Feagin14) = 12 \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/algorithms.jl b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl new file mode 100644 index 0000000000..7de1e0284f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl @@ -0,0 +1,41 @@ +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin10: Explicit Runge-Kutta Method +Feagin's 10th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin12: Explicit Runge-Kutta Method +Feagin's 12th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical +Algorithms, 2009 + +Feagin14: Explicit Runge-Kutta Method +Feagin's 14th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + diff --git a/src/caches/feagin_caches.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl similarity index 100% rename from src/caches/feagin_caches.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl diff --git a/src/perform_step/feagin_rk_perform_step.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl similarity index 99% rename from src/perform_step/feagin_rk_perform_step.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl index 73dd68e2cf..e21bc4e1ac 100644 --- a/src/perform_step/feagin_rk_perform_step.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl @@ -1294,4 +1294,4 @@ end end f(integrator.fsallast, u, p, t + dt) # For the interpolation, needs k at the updated point integrator.stats.nf += 1 -end +end \ No newline at end of file diff --git a/src/tableaus/feagin_tableaus.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl similarity index 99% rename from src/tableaus/feagin_tableaus.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl index 64a056e0c9..708e98e0a5 100644 --- a/src/tableaus/feagin_tableaus.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl @@ -2647,4 +2647,4 @@ function Feagin14ConstantCache(T::Type, T2::Type) b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35) -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_feagin_tests.jl b/lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl similarity index 100% rename from test/algconvergence/ode_feagin_tests.jl rename to lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl diff --git a/lib/OrdinaryDiffEqFeagin/test/runtests.jl b/lib/OrdinaryDiffEqFeagin/test/runtests.jl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index b511653080..c787fd1904 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -148,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") include("caches/firk_caches.jl") @@ -170,7 +169,6 @@ include("tableaus/low_order_rk_tableaus.jl") include("tableaus/high_order_rk_tableaus.jl") include("tableaus/symplectic_tableaus.jl") include("tableaus/verner_tableaus.jl") -include("tableaus/feagin_tableaus.jl") include("tableaus/rosenbrock_tableaus.jl") include("tableaus/sdirk_tableaus.jl") include("tableaus/firk_tableaus.jl") @@ -195,7 +193,6 @@ include("perform_step/explicit_rk_perform_step.jl") include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") -include("perform_step/feagin_rk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -265,6 +262,10 @@ export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRK SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 +include("../lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl") +using ..OrdinaryDiffFeagin +export Feagin10, Feagin12, Feagin14 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,7 +399,7 @@ export constructDormandPrince export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, OwrenZen4, OwrenZen5, BS3, BS5, DP5, Tsit5, DP8, Vern6, Vern7, Vern8, TanYam7, TsitPap8, - Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, + Vern9, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 export RadauIIA3, RadauIIA5 diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 55fd14cc4b..5f00214358 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -531,9 +531,6 @@ alg_order(alg::SFSDIRK7) = 4 alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 -alg_order(alg::Feagin10) = 10 -alg_order(alg::Feagin12) = 12 -alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 alg_order(alg::ROS2) = 2 @@ -620,8 +617,6 @@ alg_maximum_order(alg::CompositeAlgorithm) = maximum(alg_order(x) for x in alg.a alg_adaptive_order(alg::ExplicitRK) = alg.tableau.adaptiveorder alg_adaptive_order(alg::Union{OrdinaryDiffEqAlgorithm, DAEAlgorithm}) = alg_order(alg) - 1 -alg_adaptive_order(alg::Feagin10) = 8 -alg_adaptive_order(alg::Feagin14) = 12 alg_adaptive_order(alg::Rosenbrock23) = 3 alg_adaptive_order(alg::Rosenbrock32) = 2 diff --git a/src/algorithms/explicit_rk.jl b/src/algorithms/explicit_rk.jl index 80e6ef44ad..49b9f64784 100644 --- a/src/algorithms/explicit_rk.jl +++ b/src/algorithms/explicit_rk.jl @@ -406,47 +406,6 @@ function TsitPap8(stage_limiter!, step_limiter! = trivial_limiter!) TsitPap8(stage_limiter!, step_limiter!, False()) end -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin10: Explicit Runge-Kutta Method -Feagin's 10th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin12: Explicit Runge-Kutta Method -Feagin's 12th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical -Algorithms, 2009 - -Feagin14: Explicit Runge-Kutta Method -Feagin's 14th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - @doc explicit_rk_docstring("Zero Dissipation Runge-Kutta of 6th order.", "FRK65", extra_keyword_description = """- `omega`: a periodicity phase estimate, when accurate this method results in zero numerical dissipation. diff --git a/test/runtests.jl b/test/runtests.jl index 7e71b2c45a..b6681f4b83 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -53,6 +53,12 @@ function activate_ssprk() Pkg.instantiate() end +function activate_feagin() + Pkg.activate("../lib/OrdinaryDiffEqFeagin") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -187,7 +193,6 @@ end @time @safetestset "FIRK Tests" include("algconvergence/ode_firk_tests.jl") @time @safetestset "Linear-Nonlinear Methods Tests" include("algconvergence/linear_nonlinear_convergence_tests.jl") @time @safetestset "Linear-Nonlinear Krylov Methods Tests" include("algconvergence/linear_nonlinear_krylov_tests.jl") - @time @safetestset "Feagin Tests" include("algconvergence/ode_feagin_tests.jl") @time @safetestset "Symplectic Tests" include("algconvergence/symplectic_tests.jl") @time @safetestset "Quadruple precision Runge-Kutta Tests" include("algconvergence/ode_quadruple_precision_tests.jl") end @@ -196,6 +201,10 @@ end @time @safetestset "Extrapolation Tests" include("../lib/OrdinaryDiffEqExtrapolation/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "Feagin" + @time @safetestset "Feagin Tests" include("../lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl") + end + if !is_APPVEYOR && GROUP == "StabilizedRK" @time @safetestset "StabilizedRK Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/runtests.jl") end From 4d6f82fdafca4ba60f29060f1b6d67eee42c602a Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 15/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From ac76041a1aa2f9924a8eba6b04a9558f6094840f Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:38:56 +0530 Subject: [PATCH 16/60] Changes --- Project.toml | 2 +- lib/OrdinaryDiffEqFeagin/Project.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 1255e671bb..3b6a3f7f80 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.85.0" +version = "6.84.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 8edbcebf0c..5068523eb5 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,6 +5,7 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From 26f04573c827e3589d53c85628e9daf5cc7b829d Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:42:16 +0530 Subject: [PATCH 17/60] Changes --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 3b6a3f7f80..1255e671bb 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.84.0" +version = "6.85.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From 0adbd999be09169b57db37601bef5744015a80fd Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:09:55 +0530 Subject: [PATCH 18/60] Added SSPRK methods --- .../test/runtests.jl | 2 +- lib/OrdinaryDiffEqSSPRK/Project.toml | 24 +++++++++ .../src/OrdinaryDiffEqSSPRK.jl | 25 +++++++++ lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl | 52 +++++++++++++++++++ .../OrdinaryDiffEqSSPRK/src/algorithms.jl | 0 .../OrdinaryDiffEqSSPRK/src}/ssprk_caches.jl | 0 .../src}/ssprk_perform_step.jl | 2 +- .../test}/ode_ssprk_tests.jl | 0 lib/OrdinaryDiffEqSSPRK/test/runtests.jl | 3 ++ src/OrdinaryDiffEq.jl | 13 +++-- src/alg_utils.jl | 50 ------------------ test/runtests.jl | 14 ++++- 12 files changed, 125 insertions(+), 60 deletions(-) create mode 100644 lib/OrdinaryDiffEqSSPRK/Project.toml create mode 100644 lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl create mode 100644 lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl rename src/algorithms/explicit_rk_pde.jl => lib/OrdinaryDiffEqSSPRK/src/algorithms.jl (100%) rename {src/caches => lib/OrdinaryDiffEqSSPRK/src}/ssprk_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqSSPRK/src}/ssprk_perform_step.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqSSPRK/test}/ode_ssprk_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqSSPRK/test/runtests.jl diff --git a/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl b/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl index f823d8debf..7225e9390c 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl +++ b/lib/OrdinaryDiffEqLowStorageRK/test/runtests.jl @@ -1,3 +1,3 @@ using SafeTestsets -@time @safetestset "Extrapolation Tests" include("ode_low_storage_rk_tests.jl") +@time @safetestset "Low Storage RK Tests" include("ode_low_storage_rk_tests.jl") diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml new file mode 100644 index 0000000000..c0fdef5aa1 --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -0,0 +1,24 @@ +name = "OrdinaryDiffEqSSPRK" +uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" +authors = ["ParamThakkar123 "] +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" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" + +[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"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl new file mode 100644 index 0000000000..9b1a95c4a5 --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -0,0 +1,25 @@ +module OrdinaryDiffEqSSPRK + +import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, + beta2_default, beta1_default, gamma_default, + initialize!, perform_step!, @unpack, unwrap_alg, + calculate_residuals, ssp_coefficient, + OrdinaryDiffEqAlgorithm, ispredictive, + OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, + OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, + default_controller, PIDController, + alg_cache, _vec, _reshape, @cache, isfsal, full_cache, + constvalue, _unwrap_val, du_alias_or_new, ArrayFuse +using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools +import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA + +include("alg_utils.jl") +include("algorithms.jl") +include("ssprk_caches.jl") +include("ssprk_perform_step.jl") + +export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRKMSVS32, + SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, + SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 + +end \ No newline at end of file diff --git a/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl b/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl new file mode 100644 index 0000000000..e162e3a63d --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/src/alg_utils.jl @@ -0,0 +1,52 @@ +isfsal(alg::SSPRK53_2N1) = false +isfsal(alg::SSPRK53_2N2) = false +isfsal(alg::SSPRK22) = false +isfsal(alg::SSPRK33) = false +isfsal(alg::SSPRK53) = false +isfsal(alg::SSPRK53_H) = false +isfsal(alg::SSPRK63) = false +isfsal(alg::SSPRK73) = false +isfsal(alg::SSPRK83) = false +isfsal(alg::SSPRK43) = false +isfsal(alg::SSPRK432) = false +isfsal(alg::SSPRK932) = false +isfsal(alg::SSPRK54) = false +isfsal(alg::SSPRK104) = false + +alg_order(alg::KYKSSPRK42) = 2 +alg_order(alg::SSPRKMSVS32) = 2 +alg_order(alg::SSPRK33) = 3 +alg_order(alg::SSPRK53_2N1) = 3 +alg_order(alg::SSPRK53_2N2) = 3 +alg_order(alg::SSPRK22) = 2 +alg_order(alg::SSPRK53) = 3 +alg_order(alg::SSPRK53_H) = 3 +alg_order(alg::SSPRK63) = 3 +alg_order(alg::SSPRK73) = 3 +alg_order(alg::SSPRK83) = 3 +alg_order(alg::SSPRK43) = 3 +alg_order(alg::SSPRK432) = 3 +alg_order(alg::SSPRKMSVS43) = 3 +alg_order(alg::SSPRK932) = 3 +alg_order(alg::SSPRK54) = 4 +alg_order(alg::SSPRK104) = 4 +alg_order(alg::SHLDDRK_2N) = 4 +alg_order(alg::SHLDDRK52) = 2 + +ssp_coefficient(alg::SSPRK53_2N1) = 2.18 +ssp_coefficient(alg::SSPRK53_2N2) = 2.148 +ssp_coefficient(alg::SSPRK53) = 2.65 +ssp_coefficient(alg::SSPRK53_H) = 2.65 +ssp_coefficient(alg::SSPRK63) = 3.518 +ssp_coefficient(alg::SSPRK73) = 4.2879 +ssp_coefficient(alg::SSPRK83) = 5.107 +ssp_coefficient(alg::SSPRK43) = 2 +ssp_coefficient(alg::SSPRK432) = 2 +ssp_coefficient(alg::SSPRK932) = 6 +ssp_coefficient(alg::SSPRK54) = 1.508 +ssp_coefficient(alg::SSPRK104) = 6 +ssp_coefficient(alg::SSPRK33) = 1 +ssp_coefficient(alg::SSPRK22) = 1 +ssp_coefficient(alg::SSPRKMSVS32) = 0.5 +ssp_coefficient(alg::SSPRKMSVS43) = 0.33 +ssp_coefficient(alg::KYKSSPRK42) = 2.459 \ No newline at end of file diff --git a/src/algorithms/explicit_rk_pde.jl b/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl similarity index 100% rename from src/algorithms/explicit_rk_pde.jl rename to lib/OrdinaryDiffEqSSPRK/src/algorithms.jl diff --git a/src/caches/ssprk_caches.jl b/lib/OrdinaryDiffEqSSPRK/src/ssprk_caches.jl similarity index 100% rename from src/caches/ssprk_caches.jl rename to lib/OrdinaryDiffEqSSPRK/src/ssprk_caches.jl diff --git a/src/perform_step/ssprk_perform_step.jl b/lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl similarity index 99% rename from src/perform_step/ssprk_perform_step.jl rename to lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl index 4f39c2e83c..c332ae335a 100644 --- a/src/perform_step/ssprk_perform_step.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/ssprk_perform_step.jl @@ -1704,4 +1704,4 @@ end stage_limiter!(u, integrator, p, t + dt) step_limiter!(u, integrator, p, t + dt) integrator.stats.nf += 10 -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_ssprk_tests.jl b/lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl similarity index 100% rename from test/algconvergence/ode_ssprk_tests.jl rename to lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl diff --git a/lib/OrdinaryDiffEqSSPRK/test/runtests.jl b/lib/OrdinaryDiffEqSSPRK/test/runtests.jl new file mode 100644 index 0000000000..939f4eae4e --- /dev/null +++ b/lib/OrdinaryDiffEqSSPRK/test/runtests.jl @@ -0,0 +1,3 @@ +using SafeTestsets + +@time @safetestset "SSPRK Tests" include("ode_ssprk_tests.jl") \ No newline at end of file diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index 258af062ad..b511653080 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -133,7 +133,6 @@ include("misc_utils.jl") include("algorithms.jl") include("algorithms/explicit_rk.jl") -include("algorithms/explicit_rk_pde.jl") include("alg_utils.jl") @@ -149,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/ssprk_caches.jl") include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") @@ -198,7 +196,6 @@ include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") include("perform_step/feagin_rk_perform_step.jl") -include("perform_step/ssprk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -262,6 +259,12 @@ export ORK256, CarpenterKennedy2N54, SHLDDRK64, HSLDDRK64, DGLDDRK73_C, DGLDDRK8 RDPK3Sp35, RDPK3SpFSAL35, RDPK3Sp49, RDPK3SpFSAL49, RDPK3Sp510, RDPK3SpFSAL510, KYK2014DGSSPRK_3S2, RK46NL +include("../lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl") +using ..OrdinaryDiffEqSSPRK +export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRKMSVS32, + SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, + SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,10 +401,6 @@ export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 -export SSPRK22, SSPRK33, KYKSSPRK42, SSPRK53, SSPRK53_2N1, SSPRK53_2N2, SSPRK53_H, SSPRK63, - SSPRK73, SSPRK83, SSPRK43, SSPRK432, - SSPRKMSVS32, SSPRKMSVS43, SSPRK932, SSPRK54, SSPRK104 - export RadauIIA3, RadauIIA5 export ImplicitEuler, ImplicitMidpoint, Trapezoid, TRBDF2, SDIRK2, SDIRK22, diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 1a084d3b9b..55fd14cc4b 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -33,20 +33,6 @@ isfsal(alg::FunctionMap) = false isfsal(alg::Rodas3P) = false isfsal(alg::Rodas23W) = false isfsal(alg::Rodas5) = false -isfsal(alg::SSPRK53_2N1) = false -isfsal(alg::SSPRK53_2N2) = false -isfsal(alg::SSPRK22) = false -isfsal(alg::SSPRK33) = false -isfsal(alg::SSPRK53) = false -isfsal(alg::SSPRK53_H) = false -isfsal(alg::SSPRK63) = false -isfsal(alg::SSPRK73) = false -isfsal(alg::SSPRK83) = false -isfsal(alg::SSPRK43) = false -isfsal(alg::SSPRK432) = false -isfsal(alg::SSPRK932) = false -isfsal(alg::SSPRK54) = false -isfsal(alg::SSPRK104) = false isfsal(alg::Rodas5P) = false isfsal(alg::Rodas5Pr) = false isfsal(alg::Rodas5Pe) = false @@ -414,9 +400,6 @@ alg_order(alg::Ralston) = 2 alg_order(alg::LawsonEuler) = 1 alg_order(alg::NorsettEuler) = 1 alg_order(alg::LieEuler) = 1 -alg_order(alg::KYKSSPRK42) = 2 -alg_order(alg::SSPRKMSVS32) = 2 -alg_order(alg::SSPRK33) = 3 alg_order(alg::CayleyEuler) = 2 alg_order(alg::ETDRK2) = 2 alg_order(alg::ETDRK3) = 3 @@ -433,7 +416,6 @@ alg_order(alg::SplitEuler) = 1 alg_order(alg::ETD2) = 2 alg_order(alg::Exprb32) = 3 alg_order(alg::Exprb43) = 4 -alg_order(alg::SHLDDRK_2N) = 4 alg_order(alg::Anas5) = 5 alg_order(alg::KuttaPRK2p5) = 5 alg_order(alg::RKO65) = 5 @@ -550,20 +532,6 @@ alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 alg_order(alg::Feagin10) = 10 -alg_order(alg::SSPRK53_2N1) = 3 -alg_order(alg::SSPRK53_2N2) = 3 -alg_order(alg::SSPRK22) = 2 -alg_order(alg::SSPRK53) = 3 -alg_order(alg::SSPRK53_H) = 3 -alg_order(alg::SSPRK63) = 3 -alg_order(alg::SSPRK73) = 3 -alg_order(alg::SSPRK83) = 3 -alg_order(alg::SSPRK43) = 3 -alg_order(alg::SSPRK432) = 3 -alg_order(alg::SSPRKMSVS43) = 3 -alg_order(alg::SSPRK932) = 3 -alg_order(alg::SSPRK54) = 4 -alg_order(alg::SSPRK104) = 4 alg_order(alg::Feagin12) = 12 alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 @@ -602,7 +570,6 @@ alg_order(alg::Rodas5) = 5 alg_order(alg::Rodas5P) = 5 alg_order(alg::Rodas5Pr) = 5 alg_order(alg::Rodas5Pe) = 5 -alg_order(alg::SHLDDRK52) = 2 alg_order(alg::AB3) = 3 alg_order(alg::AB4) = 4 @@ -748,23 +715,6 @@ end # SSP coefficients ssp_coefficient(alg) = error("$alg is not a strong stability preserving method.") ssp_coefficient(alg::Euler) = 1 -ssp_coefficient(alg::SSPRK53_2N1) = 2.18 -ssp_coefficient(alg::SSPRK53_2N2) = 2.148 -ssp_coefficient(alg::SSPRK53) = 2.65 -ssp_coefficient(alg::SSPRK53_H) = 2.65 -ssp_coefficient(alg::SSPRK63) = 3.518 -ssp_coefficient(alg::SSPRK73) = 4.2879 -ssp_coefficient(alg::SSPRK83) = 5.107 -ssp_coefficient(alg::SSPRK43) = 2 -ssp_coefficient(alg::SSPRK432) = 2 -ssp_coefficient(alg::SSPRK932) = 6 -ssp_coefficient(alg::SSPRK54) = 1.508 -ssp_coefficient(alg::SSPRK104) = 6 -ssp_coefficient(alg::SSPRK33) = 1 -ssp_coefficient(alg::SSPRK22) = 1 -ssp_coefficient(alg::SSPRKMSVS32) = 0.5 -ssp_coefficient(alg::SSPRKMSVS43) = 0.33 -ssp_coefficient(alg::KYKSSPRK42) = 2.459 # We shouldn't do this probably. #ssp_coefficient(alg::ImplicitEuler) = Inf diff --git a/test/runtests.jl b/test/runtests.jl index d557bc2f1a..18102f3776 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,12 +35,24 @@ function activate_stabilized_rk() Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + function activate_low_storage_rk() Pkg.activate("../lib/OrdinaryDiffEqLowStorageRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqSSPRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -164,7 +176,7 @@ end end if !is_APPVEYOR && GROUP == "AlgConvergence_II" - @time @safetestset "SSPRK Tests" include("algconvergence/ode_ssprk_tests.jl") + @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") @time @safetestset "OwrenZen Tests" include("algconvergence/owrenzen_tests.jl") @time @safetestset "Runge-Kutta-Chebyshev Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/rkc_tests.jl") From cef4a1701221bb3f8346c6e3e7b6947c40b4d9ea Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:14:45 +0530 Subject: [PATCH 19/60] Updates --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index e418603292..3591f69f0e 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,7 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" From c3d2c1f8705d8772b1c21aad740a65ff26a665c2 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:16:33 +0530 Subject: [PATCH 20/60] Updates --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 + lib/OrdinaryDiffEqSSPRK/Project.toml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index 3591f69f0e..e418603292 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,6 +9,7 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index c0fdef5aa1..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,7 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" From ba3dd0e0a12bf819f2a29bcdee2ddf97fbe7b7db Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:23:40 +0530 Subject: [PATCH 21/60] Updates --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 692af1906f..eed9f2b4f6 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,6 +6,7 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" From 3e2f53bcabb7f0c50e9e34d91be7bd6fb55379c4 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 09:22:59 +0530 Subject: [PATCH 22/60] Made changes --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 - test/runtests.jl | 15 +++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index eed9f2b4f6..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,7 +6,6 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" diff --git a/test/runtests.jl b/test/runtests.jl index 18102f3776..ec8108af6b 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,7 +35,7 @@ function activate_stabilized_rk() Pkg.instantiate() end -function activate_low_storage_rk() +function activate_irk() Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() @@ -47,7 +47,7 @@ function activate_low_storage_rk() Pkg.instantiate() end -function activate_low_storage_rk() +function activate_ssprk() Pkg.activate("../lib/OrdinaryDiffEqSSPRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() @@ -176,8 +176,6 @@ end end if !is_APPVEYOR && GROUP == "AlgConvergence_II" - @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") - @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") @time @safetestset "OwrenZen Tests" include("algconvergence/owrenzen_tests.jl") @time @safetestset "Runge-Kutta-Chebyshev Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/rkc_tests.jl") end @@ -206,6 +204,15 @@ end @time @safetestset "StabilizedIRK Tests" include("../lib/OrdinaryDiffEqStabilizedIRK/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "SSPRK" + @time @safetestset "SSPRK Tests" include("../lib/OrdinaryDiffEqSSPRK/test/ode_ssprk_tests.jl") + end + + if !is_APPVEYOR && GROUP == "Low Storage RK" + @time @safetestset "Low Storage RK Tests" include("../lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl") + end + + if !is_APPVEYOR && GROUP == "Downstream" activate_downstream_env() @time @safetestset "DelayDiffEq Tests" include("downstream/delaydiffeq.jl") From 45eff97c36914d3d10f570e585ef5aeec8726d75 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 09:49:29 +0530 Subject: [PATCH 23/60] Changes --- test/runtests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index ec8108af6b..7e71b2c45a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -35,7 +35,7 @@ function activate_stabilized_rk() Pkg.instantiate() end -function activate_irk() +function activate_stabilized_irk() Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) Pkg.instantiate() From 0f4428b2fb3d699bcbacdf390dc96f4d51d1dad3 Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:45:50 +0530 Subject: [PATCH 24/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 9b1a95c4a5..c4b53405e1 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -7,7 +7,6 @@ import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, OrdinaryDiffEqAlgorithm, ispredictive, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, - default_controller, PIDController, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new, ArrayFuse using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools From 540bddca6b4b688ae53c47cc12e563fa9c23f36b Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:07 +0530 Subject: [PATCH 25/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index c4b53405e1..ecf2d9b99d 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -4,7 +4,7 @@ import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, beta2_default, beta1_default, gamma_default, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, - OrdinaryDiffEqAlgorithm, ispredictive, + OrdinaryDiffEqAlgorithm, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, From 1c0499f96e5cc70f8da713372e4eac950c15ec39 Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:21 +0530 Subject: [PATCH 26/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index ecf2d9b99d..03a99e2c9c 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,7 +1,6 @@ module OrdinaryDiffEqSSPRK import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, - beta2_default, beta1_default, gamma_default, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, OrdinaryDiffEqAlgorithm, From 41d6523b01cb434ee2c77a22185c62191bc70e07 Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:37 +0530 Subject: [PATCH 27/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 03a99e2c9c..a213956d61 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,6 +1,6 @@ module OrdinaryDiffEqSSPRK -import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, +import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, OrdinaryDiffEqAlgorithm, From 652115664f07ccb65a6a9048f844056fe0ebe64e Mon Sep 17 00:00:00 2001 From: Param Thakkar <128291516+ParamThakkar123@users.noreply.github.com> Date: Thu, 27 Jun 2024 09:46:44 +0530 Subject: [PATCH 28/60] Update lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl Co-authored-by: Christopher Rackauckas --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index a213956d61..58ca3cecc9 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -7,7 +7,7 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, - constvalue, _unwrap_val, du_alias_or_new, ArrayFuse + constvalue, _unwrap_val, du_alias_or_new using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA From ee12ea4577a3c5c91b4610838c36abd70eaada39 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 29/60] Feagin --- .../OrdinaryDiffEqFeagin/Project.toml | 2 + lib/OrdinaryDiffEqFeagin/Project.toml | 19 +++++++++ .../src/OrdinaryDiffEqFeagin.jl | 11 +++++ lib/OrdinaryDiffEqFeagin/src/alg_utils.jl | 6 +++ lib/OrdinaryDiffEqFeagin/src/algorithms.jl | 41 +++++++++++++++++++ .../src}/feagin_caches.jl | 0 .../src}/feagin_rk_perform_step.jl | 2 +- .../src}/feagin_tableaus.jl | 2 +- .../test}/ode_feagin_tests.jl | 0 lib/OrdinaryDiffEqFeagin/test/runtests.jl | 0 src/OrdinaryDiffEq.jl | 9 ++-- src/alg_utils.jl | 5 --- src/algorithms/explicit_rk.jl | 41 ------------------- test/runtests.jl | 11 ++++- 14 files changed, 96 insertions(+), 53 deletions(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/alg_utils.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/algorithms.jl rename {src/caches => lib/OrdinaryDiffEqFeagin/src}/feagin_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqFeagin/src}/feagin_rk_perform_step.jl (99%) rename {src/tableaus => lib/OrdinaryDiffEqFeagin/src}/feagin_tableaus.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqFeagin/test}/ode_feagin_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqFeagin/test/runtests.jl diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..8edbcebf0c --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,19 @@ +name = "OrdinaryDiffEqFeagin" +uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" +authors = ["ParamThakkar123 "] +version = "1.0.0" + +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[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" + +[compat] +julia = "1.10" + +[targets] +test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl new file mode 100644 index 0000000000..f2ead0f0ab --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -0,0 +1,11 @@ +module OrdinaryDiffEqFeagin + +include("alg_utils.jl") +include("algorithms.jl") +include("feagin_caches.jl") +include("feagin_rk_perform_step.jl") +include("feagin_tableaus.jl") + +export Feagin10, Feagin12, Feagin14 + +end diff --git a/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl new file mode 100644 index 0000000000..ec4f4a10d3 --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl @@ -0,0 +1,6 @@ +alg_order(alg::Feagin10) = 10 +alg_order(alg::Feagin12) = 12 +alg_order(alg::Feagin14) = 14 + +alg_adaptive_order(alg::Feagin10) = 8 +alg_adaptive_order(alg::Feagin14) = 12 \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/algorithms.jl b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl new file mode 100644 index 0000000000..7de1e0284f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl @@ -0,0 +1,41 @@ +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin10: Explicit Runge-Kutta Method +Feagin's 10th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin12: Explicit Runge-Kutta Method +Feagin's 12th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical +Algorithms, 2009 + +Feagin14: Explicit Runge-Kutta Method +Feagin's 14th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + diff --git a/src/caches/feagin_caches.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl similarity index 100% rename from src/caches/feagin_caches.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl diff --git a/src/perform_step/feagin_rk_perform_step.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl similarity index 99% rename from src/perform_step/feagin_rk_perform_step.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl index 73dd68e2cf..e21bc4e1ac 100644 --- a/src/perform_step/feagin_rk_perform_step.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl @@ -1294,4 +1294,4 @@ end end f(integrator.fsallast, u, p, t + dt) # For the interpolation, needs k at the updated point integrator.stats.nf += 1 -end +end \ No newline at end of file diff --git a/src/tableaus/feagin_tableaus.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl similarity index 99% rename from src/tableaus/feagin_tableaus.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl index 64a056e0c9..708e98e0a5 100644 --- a/src/tableaus/feagin_tableaus.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl @@ -2647,4 +2647,4 @@ function Feagin14ConstantCache(T::Type, T2::Type) b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35) -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_feagin_tests.jl b/lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl similarity index 100% rename from test/algconvergence/ode_feagin_tests.jl rename to lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl diff --git a/lib/OrdinaryDiffEqFeagin/test/runtests.jl b/lib/OrdinaryDiffEqFeagin/test/runtests.jl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index b511653080..c787fd1904 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -148,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") include("caches/firk_caches.jl") @@ -170,7 +169,6 @@ include("tableaus/low_order_rk_tableaus.jl") include("tableaus/high_order_rk_tableaus.jl") include("tableaus/symplectic_tableaus.jl") include("tableaus/verner_tableaus.jl") -include("tableaus/feagin_tableaus.jl") include("tableaus/rosenbrock_tableaus.jl") include("tableaus/sdirk_tableaus.jl") include("tableaus/firk_tableaus.jl") @@ -195,7 +193,6 @@ include("perform_step/explicit_rk_perform_step.jl") include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") -include("perform_step/feagin_rk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -265,6 +262,10 @@ export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRK SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 +include("../lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl") +using ..OrdinaryDiffFeagin +export Feagin10, Feagin12, Feagin14 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,7 +399,7 @@ export constructDormandPrince export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, OwrenZen4, OwrenZen5, BS3, BS5, DP5, Tsit5, DP8, Vern6, Vern7, Vern8, TanYam7, TsitPap8, - Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, + Vern9, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 export RadauIIA3, RadauIIA5 diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 55fd14cc4b..5f00214358 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -531,9 +531,6 @@ alg_order(alg::SFSDIRK7) = 4 alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 -alg_order(alg::Feagin10) = 10 -alg_order(alg::Feagin12) = 12 -alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 alg_order(alg::ROS2) = 2 @@ -620,8 +617,6 @@ alg_maximum_order(alg::CompositeAlgorithm) = maximum(alg_order(x) for x in alg.a alg_adaptive_order(alg::ExplicitRK) = alg.tableau.adaptiveorder alg_adaptive_order(alg::Union{OrdinaryDiffEqAlgorithm, DAEAlgorithm}) = alg_order(alg) - 1 -alg_adaptive_order(alg::Feagin10) = 8 -alg_adaptive_order(alg::Feagin14) = 12 alg_adaptive_order(alg::Rosenbrock23) = 3 alg_adaptive_order(alg::Rosenbrock32) = 2 diff --git a/src/algorithms/explicit_rk.jl b/src/algorithms/explicit_rk.jl index 80e6ef44ad..49b9f64784 100644 --- a/src/algorithms/explicit_rk.jl +++ b/src/algorithms/explicit_rk.jl @@ -406,47 +406,6 @@ function TsitPap8(stage_limiter!, step_limiter! = trivial_limiter!) TsitPap8(stage_limiter!, step_limiter!, False()) end -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin10: Explicit Runge-Kutta Method -Feagin's 10th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin12: Explicit Runge-Kutta Method -Feagin's 12th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical -Algorithms, 2009 - -Feagin14: Explicit Runge-Kutta Method -Feagin's 14th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - @doc explicit_rk_docstring("Zero Dissipation Runge-Kutta of 6th order.", "FRK65", extra_keyword_description = """- `omega`: a periodicity phase estimate, when accurate this method results in zero numerical dissipation. diff --git a/test/runtests.jl b/test/runtests.jl index 7e71b2c45a..b6681f4b83 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -53,6 +53,12 @@ function activate_ssprk() Pkg.instantiate() end +function activate_feagin() + Pkg.activate("../lib/OrdinaryDiffEqFeagin") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -187,7 +193,6 @@ end @time @safetestset "FIRK Tests" include("algconvergence/ode_firk_tests.jl") @time @safetestset "Linear-Nonlinear Methods Tests" include("algconvergence/linear_nonlinear_convergence_tests.jl") @time @safetestset "Linear-Nonlinear Krylov Methods Tests" include("algconvergence/linear_nonlinear_krylov_tests.jl") - @time @safetestset "Feagin Tests" include("algconvergence/ode_feagin_tests.jl") @time @safetestset "Symplectic Tests" include("algconvergence/symplectic_tests.jl") @time @safetestset "Quadruple precision Runge-Kutta Tests" include("algconvergence/ode_quadruple_precision_tests.jl") end @@ -196,6 +201,10 @@ end @time @safetestset "Extrapolation Tests" include("../lib/OrdinaryDiffEqExtrapolation/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "Feagin" + @time @safetestset "Feagin Tests" include("../lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl") + end + if !is_APPVEYOR && GROUP == "StabilizedRK" @time @safetestset "StabilizedRK Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/runtests.jl") end From 6858b5027896b4f6c98d8e0b92e0c3a595c027d5 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 30/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From ba69b75a4be108837ec07f59e2d3acfa80f3fd24 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:38:56 +0530 Subject: [PATCH 31/60] Changes --- Project.toml | 2 +- lib/OrdinaryDiffEqFeagin/Project.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 56d9074a34..4f27dd955d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.85.0" +version = "6.84.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 8edbcebf0c..5068523eb5 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,6 +5,7 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From aed26c0518d348a15467a7c5e44f833ea41d4146 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Fri, 28 Jun 2024 09:58:55 +0530 Subject: [PATCH 32/60] Rebased --- lib/OrdinaryDiffEqSSPRK/Project.toml | 4 ++++ lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 13 +++++++++++++ test/runtests.jl | 6 ++++++ 3 files changed, 23 insertions(+) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 692af1906f..4c16d82f67 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,6 +9,10 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +<<<<<<< HEAD +======= +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +>>>>>>> ab0d13fd (Added SSPRK methods) [compat] julia = "1.10" diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 58ca3cecc9..1cf703dfdb 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,5 +1,6 @@ module OrdinaryDiffEqSSPRK +<<<<<<< HEAD import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, @@ -8,6 +9,18 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new +======= +import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, + beta2_default, beta1_default, gamma_default, + initialize!, perform_step!, @unpack, unwrap_alg, + calculate_residuals, ssp_coefficient, + OrdinaryDiffEqAlgorithm, ispredictive, + OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, + OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, + default_controller, PIDController, + alg_cache, _vec, _reshape, @cache, isfsal, full_cache, + constvalue, _unwrap_val, du_alias_or_new, ArrayFuse +>>>>>>> ab0d13fd (Added SSPRK methods) using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA diff --git a/test/runtests.jl b/test/runtests.jl index b6681f4b83..14aa5a0703 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -41,6 +41,12 @@ function activate_stabilized_irk() Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + function activate_low_storage_rk() Pkg.activate("../lib/OrdinaryDiffEqLowStorageRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) From 732c4c08b3286ad041c616d34255c495bed8bce7 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:14:45 +0530 Subject: [PATCH 33/60] Updates --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index e418603292..3591f69f0e 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,7 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" From 251fb79a59d8d3e44b25f6a9e2c097133c618145 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Fri, 28 Jun 2024 10:02:41 +0530 Subject: [PATCH 34/60] Rebased --- lib/OrdinaryDiffEqLowStorageRK/Project.toml | 1 + lib/OrdinaryDiffEqSSPRK/Project.toml | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/OrdinaryDiffEqLowStorageRK/Project.toml b/lib/OrdinaryDiffEqLowStorageRK/Project.toml index 3591f69f0e..e418603292 100644 --- a/lib/OrdinaryDiffEqLowStorageRK/Project.toml +++ b/lib/OrdinaryDiffEqLowStorageRK/Project.toml @@ -9,6 +9,7 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" [compat] julia = "1.10" diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 4c16d82f67..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,10 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -<<<<<<< HEAD -======= -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" ->>>>>>> ab0d13fd (Added SSPRK methods) [compat] julia = "1.10" From 4590c7c8c7ae1ce9c63ee625dc7dffd02d8b7d7e Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:16:33 +0530 Subject: [PATCH 35/60] Updates --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 1cf703dfdb..58ca3cecc9 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,6 +1,5 @@ module OrdinaryDiffEqSSPRK -<<<<<<< HEAD import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, @@ -9,18 +8,6 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new -======= -import OrdinaryDiffEq: alg_order, alg_adaptive_order, calculate_residuals!, - beta2_default, beta1_default, gamma_default, - initialize!, perform_step!, @unpack, unwrap_alg, - calculate_residuals, ssp_coefficient, - OrdinaryDiffEqAlgorithm, ispredictive, - OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, - OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, - default_controller, PIDController, - alg_cache, _vec, _reshape, @cache, isfsal, full_cache, - constvalue, _unwrap_val, du_alias_or_new, ArrayFuse ->>>>>>> ab0d13fd (Added SSPRK methods) using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools import StaticArrays: SArray, MVector, SVector, @SVector, StaticArray, MMatrix, SA From 510ecc0873000595c21a17d0cef52e3ac6a96535 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:23:40 +0530 Subject: [PATCH 36/60] Updates --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 692af1906f..eed9f2b4f6 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,6 +6,7 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" From b22f546c5b69d2dfa73e8a6428a0769a355730a2 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 09:22:59 +0530 Subject: [PATCH 37/60] Made changes --- lib/OrdinaryDiffEqSSPRK/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index eed9f2b4f6..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -6,7 +6,6 @@ version = "1.0.0" [deps] FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" From d1edd7ba99d37dcd8ed7ad4b6b8be1c4c6bbe693 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:42:16 +0530 Subject: [PATCH 38/60] Changes --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 4f27dd955d..56d9074a34 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.84.0" +version = "6.85.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From 47ed38272c13f411748278cf5045b04ebf1cd5a3 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Fri, 28 Jun 2024 17:36:09 +0530 Subject: [PATCH 39/60] SSPRK22 fix --- src/integrators/integrator_interface.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/integrators/integrator_interface.jl b/src/integrators/integrator_interface.jl index 140abddefb..c81c99f45b 100644 --- a/src/integrators/integrator_interface.jl +++ b/src/integrators/integrator_interface.jl @@ -1,6 +1,7 @@ # We want to make sure that the first argument of change_t_via_interpolation! # is specialized, yet, it needs to take both ODEIntegrator and DDEIntegrator. # Hence, we need to have two separate functions. +using OrdinaryDiffEq function _change_t_via_interpolation!(integrator, t, modify_save_endpoint::Type{Val{T}}) where {T} # Can get rid of an allocation here with a function From d072089f908c5c3c3e7c9b66d859c92c53f9c802 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 40/60] Feagin --- .../OrdinaryDiffEqFeagin/Project.toml | 2 + lib/OrdinaryDiffEqFeagin/Project.toml | 19 +++++++++ .../src/OrdinaryDiffEqFeagin.jl | 11 +++++ lib/OrdinaryDiffEqFeagin/src/alg_utils.jl | 6 +++ lib/OrdinaryDiffEqFeagin/src/algorithms.jl | 41 +++++++++++++++++++ .../src}/feagin_caches.jl | 0 .../src}/feagin_rk_perform_step.jl | 2 +- .../src}/feagin_tableaus.jl | 2 +- .../test}/ode_feagin_tests.jl | 0 lib/OrdinaryDiffEqFeagin/test/runtests.jl | 0 src/OrdinaryDiffEq.jl | 9 ++-- src/alg_utils.jl | 5 --- src/algorithms/explicit_rk.jl | 41 ------------------- test/runtests.jl | 11 ++++- 14 files changed, 96 insertions(+), 53 deletions(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/Project.toml create mode 100644 lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/alg_utils.jl create mode 100644 lib/OrdinaryDiffEqFeagin/src/algorithms.jl rename {src/caches => lib/OrdinaryDiffEqFeagin/src}/feagin_caches.jl (100%) rename {src/perform_step => lib/OrdinaryDiffEqFeagin/src}/feagin_rk_perform_step.jl (99%) rename {src/tableaus => lib/OrdinaryDiffEqFeagin/src}/feagin_tableaus.jl (99%) rename {test/algconvergence => lib/OrdinaryDiffEqFeagin/test}/ode_feagin_tests.jl (100%) create mode 100644 lib/OrdinaryDiffEqFeagin/test/runtests.jl diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..8edbcebf0c --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,19 @@ +name = "OrdinaryDiffEqFeagin" +uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" +authors = ["ParamThakkar123 "] +version = "1.0.0" + +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[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" + +[compat] +julia = "1.10" + +[targets] +test = ["DiffEqDevTools", "Random", "SafeTestsets", "Test"] \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl new file mode 100644 index 0000000000..f2ead0f0ab --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -0,0 +1,11 @@ +module OrdinaryDiffEqFeagin + +include("alg_utils.jl") +include("algorithms.jl") +include("feagin_caches.jl") +include("feagin_rk_perform_step.jl") +include("feagin_tableaus.jl") + +export Feagin10, Feagin12, Feagin14 + +end diff --git a/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl new file mode 100644 index 0000000000..ec4f4a10d3 --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/alg_utils.jl @@ -0,0 +1,6 @@ +alg_order(alg::Feagin10) = 10 +alg_order(alg::Feagin12) = 12 +alg_order(alg::Feagin14) = 14 + +alg_adaptive_order(alg::Feagin10) = 8 +alg_adaptive_order(alg::Feagin14) = 12 \ No newline at end of file diff --git a/lib/OrdinaryDiffEqFeagin/src/algorithms.jl b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl new file mode 100644 index 0000000000..7de1e0284f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/src/algorithms.jl @@ -0,0 +1,41 @@ +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin10: Explicit Runge-Kutta Method +Feagin's 10th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +@article{feagin2012high, +title={High-order explicit Runge-Kutta methods using m-symmetry}, +author={Feagin, Terry}, +year={2012}, +publisher={Neural, Parallel \\& Scientific Computations} +} + +Feagin12: Explicit Runge-Kutta Method +Feagin's 12th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + +""" +Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical +Algorithms, 2009 + +Feagin14: Explicit Runge-Kutta Method +Feagin's 14th-order Runge-Kutta method. +""" +Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm + step_limiter!::StepLimiter = trivial_limiter! +end + diff --git a/src/caches/feagin_caches.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl similarity index 100% rename from src/caches/feagin_caches.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_caches.jl diff --git a/src/perform_step/feagin_rk_perform_step.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl similarity index 99% rename from src/perform_step/feagin_rk_perform_step.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl index 73dd68e2cf..e21bc4e1ac 100644 --- a/src/perform_step/feagin_rk_perform_step.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_rk_perform_step.jl @@ -1294,4 +1294,4 @@ end end f(integrator.fsallast, u, p, t + dt) # For the interpolation, needs k at the updated point integrator.stats.nf += 1 -end +end \ No newline at end of file diff --git a/src/tableaus/feagin_tableaus.jl b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl similarity index 99% rename from src/tableaus/feagin_tableaus.jl rename to lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl index 64a056e0c9..708e98e0a5 100644 --- a/src/tableaus/feagin_tableaus.jl +++ b/lib/OrdinaryDiffEqFeagin/src/feagin_tableaus.jl @@ -2647,4 +2647,4 @@ function Feagin14ConstantCache(T::Type, T2::Type) b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35) -end +end \ No newline at end of file diff --git a/test/algconvergence/ode_feagin_tests.jl b/lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl similarity index 100% rename from test/algconvergence/ode_feagin_tests.jl rename to lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl diff --git a/lib/OrdinaryDiffEqFeagin/test/runtests.jl b/lib/OrdinaryDiffEqFeagin/test/runtests.jl new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index 3fc9b6b580..2cc421cd0f 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -148,7 +148,6 @@ include("composite_algs.jl") include("caches/basic_caches.jl") include("caches/low_order_rk_caches.jl") include("caches/high_order_rk_caches.jl") -include("caches/feagin_caches.jl") include("caches/verner_caches.jl") include("caches/sdirk_caches.jl") include("caches/firk_caches.jl") @@ -170,7 +169,6 @@ include("tableaus/low_order_rk_tableaus.jl") include("tableaus/high_order_rk_tableaus.jl") include("tableaus/symplectic_tableaus.jl") include("tableaus/verner_tableaus.jl") -include("tableaus/feagin_tableaus.jl") include("tableaus/rosenbrock_tableaus.jl") include("tableaus/sdirk_tableaus.jl") include("tableaus/firk_tableaus.jl") @@ -195,7 +193,6 @@ include("perform_step/explicit_rk_perform_step.jl") include("perform_step/low_order_rk_perform_step.jl") include("perform_step/high_order_rk_perform_step.jl") include("perform_step/verner_rk_perform_step.jl") -include("perform_step/feagin_rk_perform_step.jl") include("perform_step/sdirk_perform_step.jl") include("perform_step/kencarp_kvaerno_perform_step.jl") include("perform_step/firk_perform_step.jl") @@ -265,6 +262,10 @@ export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRK SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 +include("../lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl") +using ..OrdinaryDiffFeagin +export Feagin10, Feagin12, Feagin14 + import PrecompileTools PrecompileTools.@compile_workload begin @@ -398,7 +399,7 @@ export constructDormandPrince export FunctionMap, Euler, Heun, Ralston, Midpoint, RK4, ExplicitRK, OwrenZen3, OwrenZen4, OwrenZen5, BS3, BS5, DP5, Tsit5, DP8, Vern6, Vern7, Vern8, TanYam7, TsitPap8, - Vern9, Feagin10, Feagin12, Feagin14, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, + Vern9, CompositeAlgorithm, Anas5, RKO65, FRK65, PFRK87, RKM, MSRK5, MSRK6, Stepanov5, SIR54, QPRK98, PSRK4p7q6, PSRK3p6q5, PSRK3p5q4 export RadauIIA3, RadauIIA5 diff --git a/src/alg_utils.jl b/src/alg_utils.jl index 6e53655684..4467a10eb1 100644 --- a/src/alg_utils.jl +++ b/src/alg_utils.jl @@ -531,9 +531,6 @@ alg_order(alg::SFSDIRK7) = 4 alg_order(alg::SFSDIRK8) = 4 alg_order(alg::Hairer4) = 4 alg_order(alg::Hairer42) = 4 -alg_order(alg::Feagin10) = 10 -alg_order(alg::Feagin12) = 12 -alg_order(alg::Feagin14) = 14 alg_order(alg::PFRK87) = 8 alg_order(alg::ROS2) = 2 @@ -621,8 +618,6 @@ alg_maximum_order(alg::CompositeAlgorithm) = maximum(alg_order(x) for x in alg.a alg_adaptive_order(alg::ExplicitRK) = alg.tableau.adaptiveorder alg_adaptive_order(alg::Union{OrdinaryDiffEqAlgorithm, DAEAlgorithm}) = alg_order(alg) - 1 -alg_adaptive_order(alg::Feagin10) = 8 -alg_adaptive_order(alg::Feagin14) = 12 alg_adaptive_order(alg::Rosenbrock23) = 3 alg_adaptive_order(alg::Rosenbrock32) = 2 diff --git a/src/algorithms/explicit_rk.jl b/src/algorithms/explicit_rk.jl index 80e6ef44ad..49b9f64784 100644 --- a/src/algorithms/explicit_rk.jl +++ b/src/algorithms/explicit_rk.jl @@ -406,47 +406,6 @@ function TsitPap8(stage_limiter!, step_limiter! = trivial_limiter!) TsitPap8(stage_limiter!, step_limiter!, False()) end -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin10: Explicit Runge-Kutta Method -Feagin's 10th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin10{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -@article{feagin2012high, -title={High-order explicit Runge-Kutta methods using m-symmetry}, -author={Feagin, Terry}, -year={2012}, -publisher={Neural, Parallel \\& Scientific Computations} -} - -Feagin12: Explicit Runge-Kutta Method -Feagin's 12th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin12{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - -""" -Feagin, T., “An Explicit Runge-Kutta Method of Order Fourteen,” Numerical -Algorithms, 2009 - -Feagin14: Explicit Runge-Kutta Method -Feagin's 14th-order Runge-Kutta method. -""" -Base.@kwdef struct Feagin14{StepLimiter} <: OrdinaryDiffEqAdaptiveAlgorithm - step_limiter!::StepLimiter = trivial_limiter! -end - @doc explicit_rk_docstring("Zero Dissipation Runge-Kutta of 6th order.", "FRK65", extra_keyword_description = """- `omega`: a periodicity phase estimate, when accurate this method results in zero numerical dissipation. diff --git a/test/runtests.jl b/test/runtests.jl index 7e71b2c45a..b6681f4b83 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -53,6 +53,12 @@ function activate_ssprk() Pkg.instantiate() end +function activate_feagin() + Pkg.activate("../lib/OrdinaryDiffEqFeagin") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + #Start Test Script @time begin @@ -187,7 +193,6 @@ end @time @safetestset "FIRK Tests" include("algconvergence/ode_firk_tests.jl") @time @safetestset "Linear-Nonlinear Methods Tests" include("algconvergence/linear_nonlinear_convergence_tests.jl") @time @safetestset "Linear-Nonlinear Krylov Methods Tests" include("algconvergence/linear_nonlinear_krylov_tests.jl") - @time @safetestset "Feagin Tests" include("algconvergence/ode_feagin_tests.jl") @time @safetestset "Symplectic Tests" include("algconvergence/symplectic_tests.jl") @time @safetestset "Quadruple precision Runge-Kutta Tests" include("algconvergence/ode_quadruple_precision_tests.jl") end @@ -196,6 +201,10 @@ end @time @safetestset "Extrapolation Tests" include("../lib/OrdinaryDiffEqExtrapolation/test/runtests.jl") end + if !is_APPVEYOR && GROUP == "Feagin" + @time @safetestset "Feagin Tests" include("../lib/OrdinaryDiffEqFeagin/test/ode_feagin_tests.jl") + end + if !is_APPVEYOR && GROUP == "StabilizedRK" @time @safetestset "StabilizedRK Tests" include("../lib/OrdinaryDiffEqStabilizedRK/test/runtests.jl") end From 8d70433c506799b4bccae4d02d9df5bcc38f78e6 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 41/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From 0506f33257a7ba5b3f20f89e55cc5db42d3388f3 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:38:56 +0530 Subject: [PATCH 42/60] Changes --- Project.toml | 2 +- lib/OrdinaryDiffEqFeagin/Project.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 56d9074a34..4f27dd955d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.85.0" +version = "6.84.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 8edbcebf0c..5068523eb5 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,6 +5,7 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From 83a883654e67b71ecf360dfec9c77eb84deb0bd5 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Fri, 28 Jun 2024 09:58:55 +0530 Subject: [PATCH 43/60] Rebased --- lib/OrdinaryDiffEqSSPRK/Project.toml | 4 ++++ lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 + test/runtests.jl | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 692af1906f..4c16d82f67 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,6 +9,10 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" +<<<<<<< HEAD +======= +Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +>>>>>>> ab0d13fd (Added SSPRK methods) [compat] julia = "1.10" diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 658d21baef..9c0adcc16b 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,5 +1,6 @@ module OrdinaryDiffEqSSPRK +<<<<<<< HEAD import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, diff --git a/test/runtests.jl b/test/runtests.jl index b6681f4b83..14aa5a0703 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -41,6 +41,12 @@ function activate_stabilized_irk() Pkg.instantiate() end +function activate_low_storage_rk() + Pkg.activate("../lib/OrdinaryDiffEqStabilizedIRK") + Pkg.develop(PackageSpec(path = dirname(@__DIR__))) + Pkg.instantiate() +end + function activate_low_storage_rk() Pkg.activate("../lib/OrdinaryDiffEqLowStorageRK") Pkg.develop(PackageSpec(path = dirname(@__DIR__))) From 526a52aa02167c565f9006664bf969f2b7d5de6d Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Fri, 28 Jun 2024 10:02:41 +0530 Subject: [PATCH 44/60] Rebased --- lib/OrdinaryDiffEqSSPRK/Project.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/Project.toml b/lib/OrdinaryDiffEqSSPRK/Project.toml index 4c16d82f67..692af1906f 100644 --- a/lib/OrdinaryDiffEqSSPRK/Project.toml +++ b/lib/OrdinaryDiffEqSSPRK/Project.toml @@ -9,10 +9,6 @@ MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" -<<<<<<< HEAD -======= -Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" ->>>>>>> ab0d13fd (Added SSPRK methods) [compat] julia = "1.10" From a38056225e07fcf493a8ca5d5c9d94d64bbbbc74 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 08:16:33 +0530 Subject: [PATCH 45/60] Updates --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 9c0adcc16b..658d21baef 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -1,6 +1,5 @@ module OrdinaryDiffEqSSPRK -<<<<<<< HEAD import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, calculate_residuals, ssp_coefficient, From a9b4b6c84d133f8793d657306aa90f19af5218e7 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:42:16 +0530 Subject: [PATCH 46/60] Changes --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 4f27dd955d..56d9074a34 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.84.0" +version = "6.85.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From 318603ff7bcfd5395d0589c93cd7bc0bfee60aae Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 47/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 ++ lib/OrdinaryDiffEqFeagin/Project.toml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 5068523eb5..8edbcebf0c 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,7 +5,6 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From b39d14dc155de7b1fec8a1251040c8261c2efcd5 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 48/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From 8e88987a0801f088c592486c9860ae506e49d272 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:38:56 +0530 Subject: [PATCH 49/60] Changes --- Project.toml | 2 +- lib/OrdinaryDiffEqFeagin/Project.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 56d9074a34..4f27dd955d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.85.0" +version = "6.84.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 8edbcebf0c..5068523eb5 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,6 +5,7 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From 1407339a6dd9852b90ee2e14e3127b7f8fb849e0 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:55:20 +0530 Subject: [PATCH 50/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 ++ lib/OrdinaryDiffEqFeagin/Project.toml | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml new file mode 100644 index 0000000000..b28c55bb8f --- /dev/null +++ b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml @@ -0,0 +1,2 @@ +[deps] +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/lib/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/Project.toml index 5068523eb5..8edbcebf0c 100644 --- a/lib/OrdinaryDiffEqFeagin/Project.toml +++ b/lib/OrdinaryDiffEqFeagin/Project.toml @@ -5,7 +5,6 @@ version = "1.0.0" [deps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" [extras] DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d" From 2afd4b355d266019b0bd2dc9665479105ca51a25 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 17:59:05 +0530 Subject: [PATCH 51/60] Feagin --- lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml diff --git a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml b/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml deleted file mode 100644 index b28c55bb8f..0000000000 --- a/lib/OrdinaryDiffEqFeagin/OrdinaryDiffEqFeagin/Project.toml +++ /dev/null @@ -1,2 +0,0 @@ -[deps] -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" From b8ab7bf551a37f2ed512f6256c5a3bc95735669d Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Thu, 27 Jun 2024 19:42:16 +0530 Subject: [PATCH 52/60] Changes --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 4f27dd955d..56d9074a34 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEq" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "6.84.0" +version = "6.85.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From df443e419f8cc57ef03a06f2cde919d99f5f44fe Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 09:36:38 +0530 Subject: [PATCH 53/60] Feagin10 --- .../src/OrdinaryDiffEqFeagin.jl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index f2ead0f0ab..cc97a6ae6f 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -1,7 +1,21 @@ module OrdinaryDiffEqFeagin -include("alg_utils.jl") +import OrdinaryDiffEq: alg_order, calculate_residuals!, + initialize!, perform_step!, @unpack, unwrap_alg, + calculate_residuals, ssp_coefficient, + OrdinaryDiffEqAlgorithm, + OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, + alg_cache, _vec, _reshape, @cache, isfsal, full_cache, + constvalue, _unwrap_val, du_alias_or_new, + explicit_rk_docstring, trivial_limiter!, + _ode_interpolant, _ode_interpolant!, + _ode_addsteps! +using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools +using DiffEqBase: @def +using Static: False + include("algorithms.jl") +include("alg_utils.jl") include("feagin_caches.jl") include("feagin_rk_perform_step.jl") include("feagin_tableaus.jl") From d2ab8328bae6306a1a7cf21b1efa61c5b8a6948e Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 09:41:08 +0530 Subject: [PATCH 54/60] OrdinaryDiffEqAdaptiveAlgorithm --- lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index cc97a6ae6f..6c669dcfcc 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -5,6 +5,9 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, calculate_residuals, ssp_coefficient, OrdinaryDiffEqAlgorithm, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, + OrdinaryDiffEqNewtonAdaptiveAlgorithm, + OrdinaryDiffEqRosenbrockAdaptiveAlgorithm, + OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new, explicit_rk_docstring, trivial_limiter!, From 1cde4b36b55e1cd7a3838cf8e0e4cc1b649c6b9b Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 09:54:42 +0530 Subject: [PATCH 55/60] Feagin10ConstantCache --- lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index 6c669dcfcc..e895bed0e0 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -19,9 +19,9 @@ using Static: False include("algorithms.jl") include("alg_utils.jl") +include("feagin_tableaus.jl") include("feagin_caches.jl") include("feagin_rk_perform_step.jl") -include("feagin_tableaus.jl") export Feagin10, Feagin12, Feagin14 From 13fd931594b01cdaece8bbe2aa1766a15f56e2f5 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 10:02:17 +0530 Subject: [PATCH 56/60] CompiledFloats --- lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index e895bed0e0..d0127f50d9 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -7,7 +7,7 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, OrdinaryDiffEqNewtonAdaptiveAlgorithm, OrdinaryDiffEqRosenbrockAdaptiveAlgorithm, - OrdinaryDiffEqAdaptiveAlgorithm, uses_uprev, + OrdinaryDiffEqAdaptiveAlgorithm, CompiledFloats, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new, explicit_rk_docstring, trivial_limiter!, From ed65a0251a2c71a4eaa0cd365ed97638cff335ea Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 10:08:16 +0530 Subject: [PATCH 57/60] @tight_loop_macros --- lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index d0127f50d9..47ebdb6ca9 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -14,7 +14,7 @@ import OrdinaryDiffEq: alg_order, calculate_residuals!, _ode_interpolant, _ode_interpolant!, _ode_addsteps! using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools -using DiffEqBase: @def +using DiffEqBase: @def, @tight_loop_macros using Static: False include("algorithms.jl") From 0482816a74ab67c6e3c39b253bf1420cf9a962df Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 10:16:02 +0530 Subject: [PATCH 58/60] Fixed mistakes --- src/OrdinaryDiffEq.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrdinaryDiffEq.jl b/src/OrdinaryDiffEq.jl index 2cc421cd0f..a688dacd6a 100644 --- a/src/OrdinaryDiffEq.jl +++ b/src/OrdinaryDiffEq.jl @@ -263,7 +263,7 @@ export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRK SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 include("../lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl") -using ..OrdinaryDiffFeagin +using ..OrdinaryDiffEqFeagin export Feagin10, Feagin12, Feagin14 import PrecompileTools From a26fd7541247fc7e1e9506adf201b6b58cb4d1d8 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 11:31:52 +0530 Subject: [PATCH 59/60] Final --- src/algorithms.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/algorithms.jl b/src/algorithms.jl index 7e313b5027..973ebb43d4 100644 --- a/src/algorithms.jl +++ b/src/algorithms.jl @@ -81,7 +81,6 @@ ExplicitRK(; tableau = ODE_DEFAULT_TABLEAU) = ExplicitRK(tableau) TruncatedStacktraces.@truncate_stacktrace ExplicitRK @inline trivial_limiter!(u, integrator, p, t) = nothing - """ SIR54(; stage_limiter! = OrdinaryDiffEq.trivial_limiter!, step_limiter! = OrdinaryDiffEq.trivial_limiter!, From 4a4350f7ce90b4d79deb06a7573c3bc388d3dca8 Mon Sep 17 00:00:00 2001 From: ParamThakkar123 Date: Sun, 30 Jun 2024 23:43:07 +0530 Subject: [PATCH 60/60] Changes --- lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl index 47ebdb6ca9..5788444dad 100644 --- a/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl +++ b/lib/OrdinaryDiffEqFeagin/src/OrdinaryDiffEqFeagin.jl @@ -2,17 +2,14 @@ module OrdinaryDiffEqFeagin import OrdinaryDiffEq: alg_order, calculate_residuals!, initialize!, perform_step!, @unpack, unwrap_alg, - calculate_residuals, ssp_coefficient, + calculate_residuals, OrdinaryDiffEqAlgorithm, OrdinaryDiffEqMutableCache, OrdinaryDiffEqConstantCache, - OrdinaryDiffEqNewtonAdaptiveAlgorithm, - OrdinaryDiffEqRosenbrockAdaptiveAlgorithm, OrdinaryDiffEqAdaptiveAlgorithm, CompiledFloats, uses_uprev, alg_cache, _vec, _reshape, @cache, isfsal, full_cache, constvalue, _unwrap_val, du_alias_or_new, explicit_rk_docstring, trivial_limiter!, - _ode_interpolant, _ode_interpolant!, - _ode_addsteps! + _ode_interpolant!, _ode_addsteps! using DiffEqBase, FastBroadcast, Polyester, MuladdMacro, RecursiveArrayTools using DiffEqBase: @def, @tight_loop_macros using Static: False