SciML / LinearSolve.jl

LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
https://docs.sciml.ai/LinearSolve/stable/
Other
244 stars 52 forks source link

fix KyrlovJL remake #534

Closed oscardssmith closed 3 weeks ago

oscardssmith commented 3 weeks ago

we had this args field that was never being used, but did break remake.

# before:
julia> remake(KrylovJL_GMRES(), precs=nothing).kwargs
pairs(::NamedTuple) with 1 entry:
  :args => ()
# after:
julia> remake(KrylovJL_GMRES(), precs=nothing).kwargs
Base.Pairs{Symbol, Union{}, Tuple{}, @NamedTuple{}}()

As a side-note, we should fix the default SciMLBase remake for structs with fields named both args and kwargs

oscardssmith commented 3 weeks ago

I think the proper fix here is actually https://github.com/SciML/SciMLBase.jl/pull/769 (although it does appear that this functionality may not quite be working as intended)