@@ -230,10 +230,7 @@ function __solve(prob::DEProblem,args...;default_set=false,second_time=false,kwa
230
230
end
231
231
end
232
232
233
- # ################## Concrete Solve
234
-
235
- @deprecate concrete_solve (prob:: DiffEqBase.DEProblem ,alg:: Union{DiffEqBase.DEAlgorithm,Nothing} ,
236
- u0= prob. u0,p= prob. p,args... ;kwargs... ) solve (prob,alg,args... ;u0= u0,p= p,kwargs... )
233
+ # ################## Differentiation
237
234
238
235
struct SensitivityADPassThrough <: DiffEqBase.DEAlgorithm end
239
236
261
258
# ## Legacy Dispatches to be Non-Breaking
262
259
# ##
263
260
261
+ @deprecate concrete_solve (prob:: DiffEqBase.DEProblem ,alg:: Union{DiffEqBase.DEAlgorithm,Nothing} ,
262
+ u0= prob. u0,p= prob. p,args... ;kwargs... ) solve (prob,alg,args... ;u0= u0,p= p,kwargs... )
263
+
264
+ ZygoteRules. @adjoint function concrete_solve (prob:: DiffEqBase.DEProblem ,
265
+ alg:: Union{DiffEqBase.DEAlgorithm,Nothing} ,
266
+ u0= prob. u0,p= prob. p,args... ;
267
+ sensealg= nothing ,
268
+ kwargs... )
269
+ @warn (" concrete_solve is deprecated. Only solve is required now.
270
+ Additionally, new keyword arguments have been added for
271
+ convenience of changing parameters and initial conditions, so
272
+ concrete_solve(prob,alg,u0,p,args...;kwargs...) is equivalent
273
+ to solve(prob,alg,args...;u0=u0,p=p,kwargs...). Note that
274
+ the `u0` and `p` keyword arguments are not required and will
275
+ be picked up automatically from the `DEProblem` if the `DEProblem`
276
+ is defined in the differentiation context. So carry about your
277
+ day using `solve`: nothing special is required for adjoints!" )
278
+ _concrete_solve_adjoint (prob,alg,sensealg,u0,p,args... ;kwargs... )
279
+ end
280
+
264
281
function _solve_adjoint (prob,sensealg,u0,p,args... ;kwargs... )
265
282
if isempty (args)
266
283
_concrete_solve_adjoint (prob,nothing ,sensealg,u0,p;kwargs... )
0 commit comments