@@ -230,10 +230,7 @@ function __solve(prob::DEProblem,args...;default_set=false,second_time=false,kwa
230230 end
231231end
232232
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
237234
238235struct SensitivityADPassThrough <: DiffEqBase.DEAlgorithm end
239236
261258# ## Legacy Dispatches to be Non-Breaking
262259# ##
263260
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+
264281function _solve_adjoint (prob,sensealg,u0,p,args... ;kwargs... )
265282 if isempty (args)
266283 _concrete_solve_adjoint (prob,nothing ,sensealg,u0,p;kwargs... )
0 commit comments