Skip to content

Commit 0be95df

Browse files
singhharsh1708Harsh Singh
andauthored
Add ES-DG optimized 3S* low-storage RK methods (Al Jahdali et al. 2022) (#3241)
* Add ES-DG optimized 3S* low-storage RK methods (Al Jahdali et al. 2022) - Implement 16 new methods (advection- and vortex-optimized) - Reuse existing LowStorageRK3S cache structures (no allocations) - Add tableau constructors and alg_cache implementations - Register methods in alg_utils and exports - All tests pass (517 + JET + Aqua) * Fix AlJahdali 3S* methods for post-approval API drift Adapt the 16 constant-cache constructors to upstream changes that landed after the March review: LowStorageRK3SConstantCache moved its fields from SVector to NTuple and the sublibrary dropped StaticArrays, so the SVector construction that was correct at approval time no longer builds. Switched to plain tuples matching the sibling ParsaniKetcheson* constructors, and the thread default changed False() -> Serial() with the same upstream drift. Also Runic-reformats the added AlJahdali constructors (numeric literal style drifted from current convention); no other lines touched. * Add convergence test coverage for the 16 AlJahdali 3S* methods The approved PR shipped with no test coverage for these methods at all. Adds a compact loop over all 16 checking convergence order against an analytic reference (test_problems_only_time), matching each method's alg_order. Unlike ParsaniKetchesonDeconinck3S*, these don't show a consistent +1 pure-quadrature super-convergence bump at the same dts range (some do, some measure close to their claimed order, some land between), so atol is looser (1.25) than the family's usual testTol (0.25) rather than hand-tuning dts per method. Still catches an actually wrong coefficient set, which would land further off. * typos: allow Vor in AlJahdaliVor3S* method family names Spell Check CI flagged every occurrence of Vor (the vorticity- optimized half of the AlJahdali 3S* family, paired with Adv for advection-optimized) as a typo for For. * Consolidate AlJahdali alg_cache into the generic 3S dispatch Route the 16 AlJahdali methods through LowStorageRK3SAlgorithm and _lowstorage_3s_tableau like the ParsaniKetcheson family, deleting the 32 hand-written per-method alg_cache definitions. Drop the positional compatibility constructors: the methods are new so there is nothing to be compatible with, and the positional form silently discarded a passed stage limiter (the 3S kernel does not apply stage limiters). Also document the 16 exports in the LowStorageRK docs page, match the ConstantCache constructor signatures to the sibling families, and bump OrdinaryDiffEqLowStorageRK to 3.3.0 for the new exports. Verified behavior-preserving: end states for all 16 methods are bit-identical to the pre-consolidation dispatch on in-place and out-of-place problems, and the full LowStorageRK test file passes. --------- Co-authored-by: Harsh Singh <harsh@Harshs-MacBook-Air.local>
1 parent eea042e commit 0be95df

8 files changed

Lines changed: 1415 additions & 1 deletion

File tree

.typos.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Darmstadt = "Darmstadt"
5454
"problèmes" = "problèmes"
5555
problemes = "problemes" # French word in citation without accent
5656
Ono = "Ono" # Hiroshi Ono, author of Ono10/Ono12 RK methods
57+
Vor = "Vor" # vorticity-optimized AlJahdaliVor3S* method family (Al Jahdali et al. 2022)
5758
padd = "padd" # variable name in analyticless_convergence_tests.jl
5859
Preprint = "Preprint"
5960
Nr = "Nr"

docs/src/explicit/LowStorageRK.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,22 @@ ParsaniKetchesonDeconinck3S94
9999
ParsaniKetchesonDeconinck3S184
100100
ParsaniKetchesonDeconinck3S105
101101
ParsaniKetchesonDeconinck3S205
102+
AlJahdaliAdv3S42
103+
AlJahdaliAdv3S82
104+
AlJahdaliAdv3S53
105+
AlJahdaliAdv3S113
106+
AlJahdaliAdv3S64
107+
AlJahdaliAdv3S154
108+
AlJahdaliAdv3S85
109+
AlJahdaliAdv3S165
110+
AlJahdaliVor3S42
111+
AlJahdaliVor3S82
112+
AlJahdaliVor3S53
113+
AlJahdaliVor3S113
114+
AlJahdaliVor3S64
115+
AlJahdaliVor3S154
116+
AlJahdaliVor3S85
117+
AlJahdaliVor3S165
102118
CKLLSRK43_2
103119
CKLLSRK54_3C
104120
CKLLSRK95_4S

lib/OrdinaryDiffEqLowStorageRK/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "OrdinaryDiffEqLowStorageRK"
22
uuid = "b0944070-b475-4768-8dec-fb6eb410534d"
33
authors = ["ParamThakkar123 <paramthakkar864@gmail.com>"]
4-
version = "3.2.2"
4+
version = "3.3.0"
55

66
[deps]
77
CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2"

lib/OrdinaryDiffEqLowStorageRK/src/OrdinaryDiffEqLowStorageRK.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,10 @@ export ORK256, CarpenterKennedy2N54, SHLDDRK64, DGLDDRK73_C, DGLDDRK84_C,
146146
ParsaniKetchesonDeconinck3S53, ParsaniKetchesonDeconinck3S173,
147147
ParsaniKetchesonDeconinck3S94, ParsaniKetchesonDeconinck3S184,
148148
ParsaniKetchesonDeconinck3S105, ParsaniKetchesonDeconinck3S205,
149+
AlJahdaliAdv3S42, AlJahdaliAdv3S82, AlJahdaliAdv3S53, AlJahdaliAdv3S113,
150+
AlJahdaliAdv3S64, AlJahdaliAdv3S154, AlJahdaliAdv3S85, AlJahdaliAdv3S165,
151+
AlJahdaliVor3S42, AlJahdaliVor3S82, AlJahdaliVor3S53, AlJahdaliVor3S113,
152+
AlJahdaliVor3S64, AlJahdaliVor3S154, AlJahdaliVor3S85, AlJahdaliVor3S165,
149153
RDPK3Sp35, RDPK3SpFSAL35, RDPK3Sp49, RDPK3SpFSAL49, RDPK3Sp510, RDPK3SpFSAL510,
150154
RK46NL, SHLDDRK_2N, SHLDDRK52
151155
end

lib/OrdinaryDiffEqLowStorageRK/src/alg_utils.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,22 @@ alg_order(alg::ParsaniKetchesonDeconinck3S94) = 4
1818
alg_order(alg::ParsaniKetchesonDeconinck3S184) = 4
1919
alg_order(alg::ParsaniKetchesonDeconinck3S105) = 5
2020
alg_order(alg::ParsaniKetchesonDeconinck3S205) = 5
21+
alg_order(alg::AlJahdaliAdv3S42) = 2
22+
alg_order(alg::AlJahdaliAdv3S82) = 2
23+
alg_order(alg::AlJahdaliAdv3S53) = 3
24+
alg_order(alg::AlJahdaliAdv3S113) = 3
25+
alg_order(alg::AlJahdaliAdv3S64) = 4
26+
alg_order(alg::AlJahdaliAdv3S154) = 4
27+
alg_order(alg::AlJahdaliAdv3S85) = 5
28+
alg_order(alg::AlJahdaliAdv3S165) = 5
29+
alg_order(alg::AlJahdaliVor3S42) = 2
30+
alg_order(alg::AlJahdaliVor3S82) = 2
31+
alg_order(alg::AlJahdaliVor3S53) = 3
32+
alg_order(alg::AlJahdaliVor3S113) = 3
33+
alg_order(alg::AlJahdaliVor3S64) = 4
34+
alg_order(alg::AlJahdaliVor3S154) = 4
35+
alg_order(alg::AlJahdaliVor3S85) = 5
36+
alg_order(alg::AlJahdaliVor3S165) = 5
2137
alg_order(alg::CKLLSRK43_2) = 3
2238
alg_order(alg::CKLLSRK54_3C) = 4
2339
alg_order(alg::CKLLSRK95_4S) = 5

lib/OrdinaryDiffEqLowStorageRK/src/algorithms.jl

Lines changed: 277 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,283 @@ Base.@kwdef struct ParsaniKetchesonDeconinck3S205{StageLimiter, StepLimiter, Thr
331331
thread::Thread = Serial()
332332
end
333333

334+
# Al Jahdali et al. (2022) 3S* low-storage methods
335+
# Advection-optimized schemes
336+
337+
@doc explicit_rk_docstring(
338+
"Low-Storage Method
339+
4-stage, second order (3S) low-storage scheme, optimized for the 2D advection equation.
340+
Fixed timestep only.", "AlJahdaliAdv3S42",
341+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
342+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
343+
Galerkin methods for compressible fluid dynamics.
344+
Computers & Mathematics with Applications, 118, pp. 27-44.
345+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
346+
)
347+
Base.@kwdef struct AlJahdaliAdv3S42{StageLimiter, StepLimiter, Thread} <:
348+
OrdinaryDiffEqAlgorithm
349+
stage_limiter!::StageLimiter = trivial_limiter!
350+
step_limiter!::StepLimiter = trivial_limiter!
351+
thread::Thread = Serial()
352+
end
353+
354+
@doc explicit_rk_docstring(
355+
"Low-Storage Method
356+
8-stage, second order (3S) low-storage scheme, optimized for the 2D advection equation.
357+
Fixed timestep only.", "AlJahdaliAdv3S82",
358+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
359+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
360+
Galerkin methods for compressible fluid dynamics.
361+
Computers & Mathematics with Applications, 118, pp. 27-44.
362+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
363+
)
364+
Base.@kwdef struct AlJahdaliAdv3S82{StageLimiter, StepLimiter, Thread} <:
365+
OrdinaryDiffEqAlgorithm
366+
stage_limiter!::StageLimiter = trivial_limiter!
367+
step_limiter!::StepLimiter = trivial_limiter!
368+
thread::Thread = Serial()
369+
end
370+
371+
@doc explicit_rk_docstring(
372+
"Low-Storage Method
373+
5-stage, third order (3S) low-storage scheme, optimized for the 2D advection equation.
374+
Fixed timestep only.", "AlJahdaliAdv3S53",
375+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
376+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
377+
Galerkin methods for compressible fluid dynamics.
378+
Computers & Mathematics with Applications, 118, pp. 27-44.
379+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
380+
)
381+
Base.@kwdef struct AlJahdaliAdv3S53{StageLimiter, StepLimiter, Thread} <:
382+
OrdinaryDiffEqAlgorithm
383+
stage_limiter!::StageLimiter = trivial_limiter!
384+
step_limiter!::StepLimiter = trivial_limiter!
385+
thread::Thread = Serial()
386+
end
387+
388+
@doc explicit_rk_docstring(
389+
"Low-Storage Method
390+
11-stage, third order (3S) low-storage scheme, optimized for the 2D advection equation.
391+
Fixed timestep only.", "AlJahdaliAdv3S113",
392+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
393+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
394+
Galerkin methods for compressible fluid dynamics.
395+
Computers & Mathematics with Applications, 118, pp. 27-44.
396+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
397+
)
398+
Base.@kwdef struct AlJahdaliAdv3S113{StageLimiter, StepLimiter, Thread} <:
399+
OrdinaryDiffEqAlgorithm
400+
stage_limiter!::StageLimiter = trivial_limiter!
401+
step_limiter!::StepLimiter = trivial_limiter!
402+
thread::Thread = Serial()
403+
end
404+
405+
@doc explicit_rk_docstring(
406+
"Low-Storage Method
407+
6-stage, fourth order (3S) low-storage scheme, optimized for the 2D advection equation.
408+
Fixed timestep only.", "AlJahdaliAdv3S64",
409+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
410+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
411+
Galerkin methods for compressible fluid dynamics.
412+
Computers & Mathematics with Applications, 118, pp. 27-44.
413+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
414+
)
415+
Base.@kwdef struct AlJahdaliAdv3S64{StageLimiter, StepLimiter, Thread} <:
416+
OrdinaryDiffEqAlgorithm
417+
stage_limiter!::StageLimiter = trivial_limiter!
418+
step_limiter!::StepLimiter = trivial_limiter!
419+
thread::Thread = Serial()
420+
end
421+
422+
@doc explicit_rk_docstring(
423+
"Low-Storage Method
424+
15-stage, fourth order (3S) low-storage scheme, optimized for the 2D advection equation.
425+
Fixed timestep only.", "AlJahdaliAdv3S154",
426+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
427+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
428+
Galerkin methods for compressible fluid dynamics.
429+
Computers & Mathematics with Applications, 118, pp. 27-44.
430+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
431+
)
432+
Base.@kwdef struct AlJahdaliAdv3S154{StageLimiter, StepLimiter, Thread} <:
433+
OrdinaryDiffEqAlgorithm
434+
stage_limiter!::StageLimiter = trivial_limiter!
435+
step_limiter!::StepLimiter = trivial_limiter!
436+
thread::Thread = Serial()
437+
end
438+
439+
@doc explicit_rk_docstring(
440+
"Low-Storage Method
441+
8-stage, fifth order (3S) low-storage scheme, optimized for the 2D advection equation.
442+
Fixed timestep only.", "AlJahdaliAdv3S85",
443+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
444+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
445+
Galerkin methods for compressible fluid dynamics.
446+
Computers & Mathematics with Applications, 118, pp. 27-44.
447+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
448+
)
449+
Base.@kwdef struct AlJahdaliAdv3S85{StageLimiter, StepLimiter, Thread} <:
450+
OrdinaryDiffEqAlgorithm
451+
stage_limiter!::StageLimiter = trivial_limiter!
452+
step_limiter!::StepLimiter = trivial_limiter!
453+
thread::Thread = Serial()
454+
end
455+
456+
@doc explicit_rk_docstring(
457+
"Low-Storage Method
458+
16-stage, fifth order (3S) low-storage scheme, optimized for the 2D advection equation.
459+
Fixed timestep only.", "AlJahdaliAdv3S165",
460+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
461+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
462+
Galerkin methods for compressible fluid dynamics.
463+
Computers & Mathematics with Applications, 118, pp. 27-44.
464+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
465+
)
466+
Base.@kwdef struct AlJahdaliAdv3S165{StageLimiter, StepLimiter, Thread} <:
467+
OrdinaryDiffEqAlgorithm
468+
stage_limiter!::StageLimiter = trivial_limiter!
469+
step_limiter!::StepLimiter = trivial_limiter!
470+
thread::Thread = Serial()
471+
end
472+
473+
# Vortex-optimized schemes
474+
475+
@doc explicit_rk_docstring(
476+
"Low-Storage Method
477+
4-stage, second order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
478+
Fixed timestep only.", "AlJahdaliVor3S42",
479+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
480+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
481+
Galerkin methods for compressible fluid dynamics.
482+
Computers & Mathematics with Applications, 118, pp. 27-44.
483+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
484+
)
485+
Base.@kwdef struct AlJahdaliVor3S42{StageLimiter, StepLimiter, Thread} <:
486+
OrdinaryDiffEqAlgorithm
487+
stage_limiter!::StageLimiter = trivial_limiter!
488+
step_limiter!::StepLimiter = trivial_limiter!
489+
thread::Thread = Serial()
490+
end
491+
492+
@doc explicit_rk_docstring(
493+
"Low-Storage Method
494+
8-stage, second order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
495+
Fixed timestep only.", "AlJahdaliVor3S82",
496+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
497+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
498+
Galerkin methods for compressible fluid dynamics.
499+
Computers & Mathematics with Applications, 118, pp. 27-44.
500+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
501+
)
502+
Base.@kwdef struct AlJahdaliVor3S82{StageLimiter, StepLimiter, Thread} <:
503+
OrdinaryDiffEqAlgorithm
504+
stage_limiter!::StageLimiter = trivial_limiter!
505+
step_limiter!::StepLimiter = trivial_limiter!
506+
thread::Thread = Serial()
507+
end
508+
509+
@doc explicit_rk_docstring(
510+
"Low-Storage Method
511+
5-stage, third order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
512+
Fixed timestep only.", "AlJahdaliVor3S53",
513+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
514+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
515+
Galerkin methods for compressible fluid dynamics.
516+
Computers & Mathematics with Applications, 118, pp. 27-44.
517+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
518+
)
519+
Base.@kwdef struct AlJahdaliVor3S53{StageLimiter, StepLimiter, Thread} <:
520+
OrdinaryDiffEqAlgorithm
521+
stage_limiter!::StageLimiter = trivial_limiter!
522+
step_limiter!::StepLimiter = trivial_limiter!
523+
thread::Thread = Serial()
524+
end
525+
526+
@doc explicit_rk_docstring(
527+
"Low-Storage Method
528+
11-stage, third order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
529+
Fixed timestep only.", "AlJahdaliVor3S113",
530+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
531+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
532+
Galerkin methods for compressible fluid dynamics.
533+
Computers & Mathematics with Applications, 118, pp. 27-44.
534+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
535+
)
536+
Base.@kwdef struct AlJahdaliVor3S113{StageLimiter, StepLimiter, Thread} <:
537+
OrdinaryDiffEqAlgorithm
538+
stage_limiter!::StageLimiter = trivial_limiter!
539+
step_limiter!::StepLimiter = trivial_limiter!
540+
thread::Thread = Serial()
541+
end
542+
543+
@doc explicit_rk_docstring(
544+
"Low-Storage Method
545+
6-stage, fourth order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
546+
Fixed timestep only.", "AlJahdaliVor3S64",
547+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
548+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
549+
Galerkin methods for compressible fluid dynamics.
550+
Computers & Mathematics with Applications, 118, pp. 27-44.
551+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
552+
)
553+
Base.@kwdef struct AlJahdaliVor3S64{StageLimiter, StepLimiter, Thread} <:
554+
OrdinaryDiffEqAlgorithm
555+
stage_limiter!::StageLimiter = trivial_limiter!
556+
step_limiter!::StepLimiter = trivial_limiter!
557+
thread::Thread = Serial()
558+
end
559+
560+
@doc explicit_rk_docstring(
561+
"Low-Storage Method
562+
15-stage, fourth order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
563+
Fixed timestep only.", "AlJahdaliVor3S154",
564+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
565+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
566+
Galerkin methods for compressible fluid dynamics.
567+
Computers & Mathematics with Applications, 118, pp. 27-44.
568+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
569+
)
570+
Base.@kwdef struct AlJahdaliVor3S154{StageLimiter, StepLimiter, Thread} <:
571+
OrdinaryDiffEqAlgorithm
572+
stage_limiter!::StageLimiter = trivial_limiter!
573+
step_limiter!::StepLimiter = trivial_limiter!
574+
thread::Thread = Serial()
575+
end
576+
577+
@doc explicit_rk_docstring(
578+
"Low-Storage Method
579+
8-stage, fifth order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
580+
Fixed timestep only.", "AlJahdaliVor3S85",
581+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
582+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
583+
Galerkin methods for compressible fluid dynamics.
584+
Computers & Mathematics with Applications, 118, pp. 27-44.
585+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
586+
)
587+
Base.@kwdef struct AlJahdaliVor3S85{StageLimiter, StepLimiter, Thread} <:
588+
OrdinaryDiffEqAlgorithm
589+
stage_limiter!::StageLimiter = trivial_limiter!
590+
step_limiter!::StepLimiter = trivial_limiter!
591+
thread::Thread = Serial()
592+
end
593+
594+
@doc explicit_rk_docstring(
595+
"Low-Storage Method
596+
16-stage, fifth order (3S) low-storage scheme, optimized for the isentropic vortex propagation problem.
597+
Fixed timestep only.", "AlJahdaliVor3S165",
598+
references = "Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
599+
Optimized explicit Runge-Kutta schemes for high-order collocated discontinuous
600+
Galerkin methods for compressible fluid dynamics.
601+
Computers & Mathematics with Applications, 118, pp. 27-44.
602+
doi: https://doi.org/10.1016/j.camwa.2022.05.006"
603+
)
604+
Base.@kwdef struct AlJahdaliVor3S165{StageLimiter, StepLimiter, Thread} <:
605+
OrdinaryDiffEqAlgorithm
606+
stage_limiter!::StageLimiter = trivial_limiter!
607+
step_limiter!::StepLimiter = trivial_limiter!
608+
thread::Thread = Serial()
609+
end
610+
334611
@doc explicit_rk_docstring(
335612
"Low-Storage Method
336613
4-stage, third order low-storage scheme, optimized for compressible Navier–Stokes equations.

0 commit comments

Comments
 (0)