1+ @doc explicit_rk_docstring (
2+ " Verner's “Most Efficient” 6/5 Runge-Kutta method. (lazy 6th order interpolant)." ,
3+ " Vern6" ,
4+ references = " @article{verner2010numerically,
5+ title={Numerically optimal Runge--Kutta pairs with interpolants},
6+ author={Verner, James H},
7+ journal={Numerical Algorithms},
8+ volume={53},
9+ number={2-3},
10+ pages={383--396},
11+ year={2010},
12+ publisher={Springer}
13+ }" ,
14+ extra_keyword_description = """ - `lazy`: determines if the lazy interpolant is used.
15+ """ ,
16+ extra_keyword_default = " lazy = true" )
17+ Base. @kwdef struct Vern6{StageLimiter, StepLimiter, Thread} < :
18+ OrdinaryDiffEqAdaptiveAlgorithm
19+ stage_limiter!:: StageLimiter = trivial_limiter!
20+ step_limiter!:: StepLimiter = trivial_limiter!
21+ thread:: Thread = False ()
22+ lazy:: Bool = true
23+ end
24+ TruncatedStacktraces. @truncate_stacktrace Vern6 3
25+ # for backwards compatibility
26+ function Vern6 (stage_limiter!, step_limiter! = trivial_limiter!; lazy = true )
27+ Vern6 (stage_limiter!, step_limiter!, False (), lazy)
28+ end
29+
30+ @doc explicit_rk_docstring (
31+ " Verner's “Most Efficient” 7/6 Runge-Kutta method. (lazy 7th order interpolant)." ,
32+ " Vern7" ,
33+ references = " @article{verner2010numerically,
34+ title={Numerically optimal Runge--Kutta pairs with interpolants},
35+ author={Verner, James H},
36+ journal={Numerical Algorithms},
37+ volume={53},
38+ number={2-3},
39+ pages={383--396},
40+ year={2010},
41+ publisher={Springer}
42+ }" ,
43+ extra_keyword_description = """ - `lazy`: determines if the lazy interpolant is used.
44+ """ ,
45+ extra_keyword_default = " lazy = true" )
46+ Base. @kwdef struct Vern7{StageLimiter, StepLimiter, Thread} < :
47+ OrdinaryDiffEqAdaptiveAlgorithm
48+ stage_limiter!:: StageLimiter = trivial_limiter!
49+ step_limiter!:: StepLimiter = trivial_limiter!
50+ thread:: Thread = False ()
51+ lazy:: Bool = true
52+ end
53+ TruncatedStacktraces. @truncate_stacktrace Vern7 3
54+ # for backwards compatibility
55+ function Vern7 (stage_limiter!, step_limiter! = trivial_limiter!; lazy = true )
56+ Vern7 (stage_limiter!, step_limiter!, False (), lazy)
57+ end
58+
59+ @doc explicit_rk_docstring (
60+ " Verner's “Most Efficient” 8/7 Runge-Kutta method. (lazy 8th order interpolant)." ,
61+ " Vern8" ,
62+ references = " @article{verner2010numerically,
63+ title={Numerically optimal Runge--Kutta pairs with interpolants},
64+ author={Verner, James H},
65+ journal={Numerical Algorithms},
66+ volume={53},
67+ number={2-3},
68+ pages={383--396},
69+ year={2010},
70+ publisher={Springer}
71+ }" ,
72+ extra_keyword_description = """ - `lazy`: determines if the lazy interpolant is used.
73+ """ ,
74+ extra_keyword_default = " lazy = true" )
75+ Base. @kwdef struct Vern8{StageLimiter, StepLimiter, Thread} < :
76+ OrdinaryDiffEqAdaptiveAlgorithm
77+ stage_limiter!:: StageLimiter = trivial_limiter!
78+ step_limiter!:: StepLimiter = trivial_limiter!
79+ thread:: Thread = False ()
80+ lazy:: Bool = true
81+ end
82+ TruncatedStacktraces. @truncate_stacktrace Vern8 3
83+ # for backwards compatibility
84+ function Vern8 (stage_limiter!, step_limiter! = trivial_limiter!; lazy = true )
85+ Vern8 (stage_limiter!, step_limiter!, False (), lazy)
86+ end
87+
88+ @doc explicit_rk_docstring (
89+ " Verner's “Most Efficient” 9/8 Runge-Kutta method. (lazy9th order interpolant)." ,
90+ " Vern9" ,
91+ references = " @article{verner2010numerically,
92+ title={Numerically optimal Runge--Kutta pairs with interpolants},
93+ author={Verner, James H},
94+ journal={Numerical Algorithms},
95+ volume={53},
96+ number={2-3},
97+ pages={383--396},
98+ year={2010},
99+ publisher={Springer}
100+ }" ,
101+ extra_keyword_description = """ - `lazy`: determines if the lazy interpolant is used.
102+ """ , extra_keyword_default = " lazy = true" )
103+ Base. @kwdef struct Vern9{StageLimiter, StepLimiter, Thread} < :
104+ OrdinaryDiffEqAdaptiveAlgorithm
105+ stage_limiter!:: StageLimiter = trivial_limiter!
106+ step_limiter!:: StepLimiter = trivial_limiter!
107+ thread:: Thread = False ()
108+ lazy:: Bool = true
109+ end
110+ TruncatedStacktraces. @truncate_stacktrace Vern9 3
111+ # for backwards compatibility
112+ function Vern9 (stage_limiter!, step_limiter! = trivial_limiter!; lazy = true )
113+ Vern9 (stage_limiter!, step_limiter!, False (), lazy)
114+ end
115+
116+ AutoVern6 (alg; lazy = true , kwargs... ) = AutoAlgSwitch (Vern6 (lazy = lazy), alg; kwargs... )
117+ AutoVern7 (alg; lazy = true , kwargs... ) = AutoAlgSwitch (Vern7 (lazy = lazy), alg; kwargs... )
118+ AutoVern8 (alg; lazy = true , kwargs... ) = AutoAlgSwitch (Vern8 (lazy = lazy), alg; kwargs... )
119+ AutoVern9 (alg; lazy = true , kwargs... ) = AutoAlgSwitch (Vern9 (lazy = lazy), alg; kwargs... )
0 commit comments