11using ADTypes: AutoForwardDiff
22using OrdinaryDiffEqCore: _fixup_ad, _unwrap_val
33
4- struct ImplicitEM{AD, F, F2, P, T2 , CJ} < :
4+ struct ImplicitEM{AD, F, F2, T2, T3 , CJ} < :
55 StochasticDiffEqNewtonAdaptiveAlgorithm
66 linsolve:: F
77 nlsolve:: F2
8- precs:: P
98 theta:: T2
109 extrapolant:: Symbol
11- new_jac_conv_bound:: T2
10+ new_jac_conv_bound:: T3
1211 symplectic:: Bool
1312 autodiff:: AD
1413 concrete_jac:: CJ
1716function ImplicitEM (;
1817 autodiff = AutoForwardDiff (),
1918 concrete_jac = nothing ,
20- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
2119 linsolve = nothing , nlsolve = NLNewton (),
2220 extrapolant = :constant ,
2321 theta = 1 , symplectic = false ,
@@ -26,7 +24,7 @@ function ImplicitEM(;
2624 )
2725 autodiff = _fixup_ad (autodiff)
2826 return ImplicitEM (
29- linsolve, nlsolve, precs,
27+ linsolve, nlsolve,
3028 symplectic ? 1 / 2 : theta,
3129 extrapolant, new_jac_conv_bound, symplectic,
3230 autodiff, _unwrap_val (concrete_jac), controller
3634STrapezoid (; kwargs... ) = ImplicitEM (; theta = 1 / 2 , kwargs... )
3735SImplicitMidpoint (; kwargs... ) = ImplicitEM (; theta = 1 / 2 , symplectic = true , kwargs... )
3836
39- struct ImplicitEulerHeun{AD, F, P, N, T2, CJ} < :
37+ struct ImplicitEulerHeun{AD, F, N, T2, T3 , CJ} < :
4038 StochasticDiffEqNewtonAdaptiveAlgorithm
4139 linsolve:: F
4240 nlsolve:: N
43- precs:: P
4441 theta:: T2
4542 extrapolant:: Symbol
46- new_jac_conv_bound:: T2
43+ new_jac_conv_bound:: T3
4744 symplectic:: Bool
4845 autodiff:: AD
4946 concrete_jac:: CJ
5249function ImplicitEulerHeun (;
5350 autodiff = AutoForwardDiff (),
5451 concrete_jac = nothing ,
55- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
5652 linsolve = nothing , nlsolve = NLNewton (),
5753 extrapolant = :constant ,
5854 theta = 1 , symplectic = false ,
@@ -61,22 +57,21 @@ function ImplicitEulerHeun(;
6157 )
6258 autodiff = _fixup_ad (autodiff)
6359 return ImplicitEulerHeun (
64- linsolve, nlsolve, precs,
60+ linsolve, nlsolve,
6561 symplectic ? 1 / 2 : theta,
6662 extrapolant,
6763 new_jac_conv_bound, symplectic,
6864 autodiff, _unwrap_val (concrete_jac), controller
6965 )
7066end
7167
72- struct ImplicitRKMil{AD, F, P, N, T2, interpretation, CJ} < :
68+ struct ImplicitRKMil{AD, F, N, T2, T3 , interpretation, CJ} < :
7369 StochasticDiffEqNewtonAdaptiveAlgorithm
7470 linsolve:: F
7571 nlsolve:: N
76- precs:: P
7772 theta:: T2
7873 extrapolant:: Symbol
79- new_jac_conv_bound:: T2
74+ new_jac_conv_bound:: T3
8075 symplectic:: Bool
8176 autodiff:: AD
8277 concrete_jac:: CJ
8580function ImplicitRKMil (;
8681 autodiff = AutoForwardDiff (),
8782 concrete_jac = nothing ,
88- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
8983 linsolve = nothing , nlsolve = NLNewton (),
9084 extrapolant = :constant ,
9185 theta = 1 , symplectic = false ,
@@ -94,25 +88,24 @@ function ImplicitRKMil(;
9488 )
9589 autodiff = _fixup_ad (autodiff)
9690 return ImplicitRKMil{
97- typeof (autodiff), typeof (linsolve), typeof (precs), typeof (nlsolve),
98- typeof (symplectic ? 1 / 2 : theta), typeof (interpretation),
91+ typeof (autodiff), typeof (linsolve), typeof (nlsolve),
92+ typeof (symplectic ? 1 / 2 : theta), typeof (new_jac_conv_bound),
93+ typeof (interpretation), typeof (_unwrap_val (concrete_jac)),
9994 }(
100- linsolve, nlsolve, precs,
101- symplectic ? 1 / 2 : theta,
95+ linsolve, nlsolve, symplectic ? 1 / 2 : theta,
10296 extrapolant,
10397 new_jac_conv_bound, symplectic,
10498 autodiff, _unwrap_val (concrete_jac), controller
10599 )
106100end
107101
108- struct ISSEM{AD, F, P, N, T2, CJ} < :
102+ struct ISSEM{AD, F, N, T2, T3 , CJ} < :
109103 StochasticDiffEqNewtonAdaptiveAlgorithm
110104 linsolve:: F
111105 nlsolve:: N
112- precs:: P
113106 theta:: T2
114107 extrapolant:: Symbol
115- new_jac_conv_bound:: T2
108+ new_jac_conv_bound:: T3
116109 symplectic:: Bool
117110 autodiff:: AD
118111 concrete_jac:: CJ
121114function ISSEM (;
122115 autodiff = AutoForwardDiff (),
123116 concrete_jac = nothing ,
124- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
125117 linsolve = nothing , nlsolve = NLNewton (),
126118 extrapolant = :constant ,
127119 theta = 1 , symplectic = false ,
@@ -130,22 +122,21 @@ function ISSEM(;
130122 )
131123 autodiff = _fixup_ad (autodiff)
132124 return ISSEM (
133- linsolve, nlsolve, precs,
125+ linsolve, nlsolve,
134126 symplectic ? 1 / 2 : theta,
135127 extrapolant,
136128 new_jac_conv_bound, symplectic,
137129 autodiff, _unwrap_val (concrete_jac), controller
138130 )
139131end
140132
141- struct ISSEulerHeun{AD, F, P, N, T2, CJ} < :
133+ struct ISSEulerHeun{AD, F, N, T2, T3 , CJ} < :
142134 StochasticDiffEqNewtonAdaptiveAlgorithm
143135 linsolve:: F
144136 nlsolve:: N
145- precs:: P
146137 theta:: T2
147138 extrapolant:: Symbol
148- new_jac_conv_bound:: T2
139+ new_jac_conv_bound:: T3
149140 symplectic:: Bool
150141 autodiff:: AD
151142 concrete_jac:: CJ
154145function ISSEulerHeun (;
155146 autodiff = AutoForwardDiff (),
156147 concrete_jac = nothing ,
157- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
158148 linsolve = nothing , nlsolve = NLNewton (),
159149 extrapolant = :constant ,
160150 theta = 1 , symplectic = false ,
@@ -163,19 +153,18 @@ function ISSEulerHeun(;
163153 )
164154 autodiff = _fixup_ad (autodiff)
165155 return ISSEulerHeun (
166- linsolve, nlsolve, precs,
156+ linsolve, nlsolve,
167157 symplectic ? 1 / 2 : theta,
168158 extrapolant,
169159 new_jac_conv_bound, symplectic,
170160 autodiff, _unwrap_val (concrete_jac), controller
171161 )
172162end
173163
174- struct SKenCarp{AD, F, P, N, T2, CJ} < :
164+ struct SKenCarp{AD, F, N, T2, CJ} < :
175165 StochasticDiffEqNewtonAdaptiveAlgorithm
176166 linsolve:: F
177167 nlsolve:: N
178- precs:: P
179168 smooth_est:: Bool
180169 extrapolant:: Symbol
181170 new_jac_conv_bound:: T2
@@ -188,15 +177,14 @@ end
188177function SKenCarp (;
189178 autodiff = AutoForwardDiff (),
190179 concrete_jac = nothing ,
191- precs = OrdinaryDiffEqCore. DEFAULT_PRECS,
192180 linsolve = nothing , nlsolve = NLNewton (),
193181 smooth_est = true , extrapolant = :min_correct ,
194182 new_jac_conv_bound = 1.0e-3 , controller = :Predictive ,
195183 ode_error_est = true
196184 )
197185 autodiff = _fixup_ad (autodiff)
198186 return SKenCarp (
199- linsolve, nlsolve, precs, smooth_est, extrapolant, new_jac_conv_bound,
187+ linsolve, nlsolve, smooth_est, extrapolant, new_jac_conv_bound,
200188 ode_error_est,
201189 autodiff, _unwrap_val (concrete_jac), controller
202190 )
0 commit comments