`__solve` interface support
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 839
- Forks
- 100
- Avg merge
- 20h 43m
- Merged PRs (30d)
- 38
Description
Some of the subpackages in Optimization.jl do not support interfaces like SciMLBase.__solve(prob::OptimizationProblem, alg, args...; kwargs...), while others do. For example, SciMLBase has some traits for solvers that support the cache interface:
We usually define
function __solve(prob, alg, args...; kwargs)
cache = __init(prob, alg)
sol = solve!(cache) # or solve!(integrator)
end
for some specific problem solvers (ODE, SDE, or BVP), but it seems the __solve is directly defined on OptimizationCache in Optimization.jl, while we are also doing similar init and solve cache things in Optimization.jl under the hood, why not use the same interface in Optimization.jl too?
Keep track of this issue from https://github.com/SciML/BoundaryValueDiffEq.jl/pull/350 for better integration of Optimization.jl.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with SciMLBase/src/solve.jl and the OptimizationCache implementation, then compare the Optimization.jl subpackages that define __solve with the __init and solve! flow described here. Done means the relevant optimization solvers consistently support the __solve(prob, alg, args...; kwargs...) interface and retain compatibility with the BoundaryValueDiffEq.jl integration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100