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.
using OrdinaryDiffEq, ComponentArrays, LineaerSolve
a = rand(10, 10)
u0 = ComponentArray(x=a, y=deepcopy(a))
# length and size are incompatible since the subgrid is not a regular grid
function f(du, u, p, t)
II = CartesianIndices(u.x)
for (i, I) in enumerate(II)
du.x[I] = u.x[I] + 1.0
du.y[I] = u.y[I] + 1.0
end
end
tspan = (0.0, 1.0)
prob = ODEProblem(f, u0, tspan)
sol = solve(prob, FBDF(linsolve = KrylovJL_GMRES()), saveat=0.1)
Stacktrace: