From 967ce4234b714a6b461687c7630825180d804c1f Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Sat, 6 Jul 2024 16:07:01 -0400 Subject: [PATCH] Fix missing SSPRK interpolation function Not sure how this got dropped in the move. --- lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl | 2 +- lib/OrdinaryDiffEqSSPRK/src/algorithms.jl | 3 --- lib/OrdinaryDiffEqSSPRK/src/interpolants.jl | 11 +++++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl index 658d21baef..e7afa8de16 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/OrdinaryDiffEqSSPRK.jl @@ -29,7 +29,7 @@ include("addsteps.jl") include("functions.jl") export SSPRK53_2N2, SSPRK22, SSPRK53, SSPRK63, SSPRK83, SSPRK43, SSPRK432, SSPRKMSVS32, - SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, + SSPRK54, SSPRK53_2N1, SSPRK104, SSPRK932, SSPRKMSVS43, SSPRK73, SSPRK53_H, SSPRK33, SHLDDRK_2N, KYKSSPRK42, SHLDDRK52 end diff --git a/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl b/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl index 84e6608c81..68c97a9b10 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/algorithms.jl @@ -1,6 +1,3 @@ -using OrdinaryDiffEq: explicit_rk_docstring, trivial_limiter! -using Static: False - @doc explicit_rk_docstring( "A third-order, five-stage explicit strong stability preserving (SSP) low-storage method. Fixed timestep only.", diff --git a/lib/OrdinaryDiffEqSSPRK/src/interpolants.jl b/lib/OrdinaryDiffEqSSPRK/src/interpolants.jl index a5258bb49c..64829674c6 100644 --- a/lib/OrdinaryDiffEqSSPRK/src/interpolants.jl +++ b/lib/OrdinaryDiffEqSSPRK/src/interpolants.jl @@ -123,6 +123,17 @@ end c10diff2invdt2+k[1][idxs] * b10diff2invdt end +@muladd function _ode_interpolant!(out, Θ, dt, y₀, y₁, k, + cache::Union{SSPRK22ConstantCache, SSPRK22Cache, + SSPRK33ConstantCache, SSPRK33Cache, + SSPRK43ConstantCache, SSPRK43Cache, + SSPRK432ConstantCache, SSPRK432Cache}, + idxs, T::Type{Val{2}}, differential_vars::Nothing) +@ssprkpre2 +@inbounds @.. broadcast=false out=(y₁[idxs] - y₀[idxs]) * c10diff2invdt2 + k[1][idxs] * b10diff2invdt +out +end + @muladd function _ode_interpolant!(out, Θ, dt, y₀, y₁, k, cache::Union{SSPRK22ConstantCache, SSPRK22Cache, SSPRK33ConstantCache, SSPRK33Cache,