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
245 stars 52 forks source link

Krylov not converting to vector #481

Open xtalax opened 6 months ago

xtalax commented 6 months ago
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:

ERROR: MethodError: Cannot `convert` an object of type UndefInitializer to an object of type Vector{Float64}

Closest candidates are:
  convert(::Type{Array{T, N}}, ::StaticArraysCore.SizedArray{S, T, N, N, Array{T, N}}) where {S, T, N}
   @ StaticArrays ~/.julia/packages/StaticArrays/EHHaF/src/SizedArray.jl:88
  convert(::Type{Array{T, N}}, ::StaticArraysCore.SizedArray{S, T, N, M, TData} where {M, TData<:AbstractArray{T, M}}) where {T, S, N}
   @ StaticArrays ~/.julia/packages/StaticArrays/EHHaF/src/SizedArray.jl:82
  convert(::Type{T}, ::T) where T
   @ Base Base.jl:84
  ...

Stacktrace:
  [1] ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}(data::UndefInitializer, axes::Int64)
    @ ComponentArrays ~/.julia/packages/ComponentArrays/OQPt7/src/componentarray.jl:35
  [2] Krylov.GmresSolver(m::Int64, n::Int64, memory::Int64, S::Type{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}})
    @ Krylov ~/.julia/packages/Krylov/pv2NF/src/krylov_solvers.jl:1649
  [3] Krylov.GmresSolver(A::OrdinaryDiffEq.WOperator{true, Any, LinearAlgebra.UniformScaling{Bool}, Float64, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Nothing, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}}, b::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, memory::Int64)
    @ Krylov ~/.julia/packages/Krylov/pv2NF/src/krylov_solvers.jl:1667
  [4] init_cacheval(alg::KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, A::OrdinaryDiffEq.WOperator{true, Any, LinearAlgebra.UniformScaling{Bool}, Float64, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Nothing, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}}, b::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Pl::LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}}, Pr::LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, maxiters::Int64, abstol::Float64, reltol::Float64, verbose::Bool, assumptions::OperatorAssumptions{Bool}; zeroinit::Bool)
    @ LinearSolve ~/.julia/packages/LinearSolve/88qI9/src/iterative_wrappers.jl:188
  [5] init_cacheval(alg::KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, A::OrdinaryDiffEq.WOperator{true, Any, LinearAlgebra.UniformScaling{Bool}, Float64, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Nothing, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}}, b::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Pl::LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}}, Pr::LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, maxiters::Int64, abstol::Float64, reltol::Float64, verbose::Bool, assumptions::OperatorAssumptions{Bool})
    @ LinearSolve ~/.julia/packages/LinearSolve/88qI9/src/iterative_wrappers.jl:172
  [6] init(::LinearProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, true, OrdinaryDiffEq.WOperator{true, Any, LinearAlgebra.UniformScaling{Bool}, Float64, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Nothing, FunctionOperator{true, true, false, Float64, SparseDiffTools.FwdModeAutoDiffVecProd{SparseDiffTools.JacFunctionWrapper{true, false, 1, OrdinaryDiffEq.var"#752#755", ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, Float64}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, typeof(SparseDiffTools.auto_jacvec), typeof(SparseDiffTools.auto_jacvec!)}, Nothing, Nothing, Nothing, @NamedTuple{islinear::Bool, isconvertible::Bool, isconstant::Bool, opnorm::Nothing, issymmetric::Bool, ishermitian::Bool, isposdef::Bool, isinplace::Bool, outofplace::Bool, has_mul5::Bool, ifcache::Bool, T::DataType, batch::Bool, size::Tuple{Int64, Int64}, sizes::Tuple{Tuple{Int64}, Tuple{Int64}}, accepted_kwargs::Tuple{}, kwargs::Dict{Symbol, Any}}, SciMLBase.NullParameters, Float64, Tuple{Vector{Float64}, Vector{Float64}}, Float64, Float64}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, SciMLBase.NullParameters, @Kwargs{}}, ::KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}; alias_A::Bool, alias_b::Bool, abstol::Float64, reltol::Float64, maxiters::Int64, verbose::Bool, Pl::LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}}, Pr::LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}}, assumptions::OperatorAssumptions{Bool}, sensealg::LinearSolveAdjoint{Missing}, kwargs::@Kwargs{})
    @ LinearSolve ~/.julia/packages/LinearSolve/88qI9/src/common.jl:170
  [7] build_nlsolver(alg::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}, nlalg::NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, uprev::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, p::SciMLBase.NullParameters, t::Float64, dt::Float64, f::ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, rate_prototype::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ::Type{Float64}, ::Type{Float64}, ::Type{Float64}, γ::Float64, c::Float64, α::Int64, ::Val{true})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/nlsolve/utils.jl:200
  [8] build_nlsolver(alg::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, uprev::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, p::SciMLBase.NullParameters, t::Float64, dt::Float64, f::ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, rate_prototype::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ::Type{Float64}, ::Type{Float64}, ::Type{Float64}, γ::Float64, c::Float64, α::Int64, iip::Val{true})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/nlsolve/utils.jl:146
  [9] build_nlsolver(alg::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, uprev::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, p::SciMLBase.NullParameters, t::Float64, dt::Float64, f::ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, rate_prototype::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ::Type{Float64}, ::Type{Float64}, ::Type{Float64}, γ::Float64, c::Float64, iip::Val{true})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/nlsolve/utils.jl:136
 [10] alg_cache(alg::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}, u::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, rate_prototype::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, ::Type{Float64}, ::Type{Float64}, ::Type{Float64}, uprev::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, uprev2::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, f::ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, t::Float64, dt::Float64, reltol::Float64, p::SciMLBase.NullParameters, calck::Bool, ::Val{true})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/caches/bdf_caches.jl:610
 [11] __init(prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, alg::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}, timeseries_init::Tuple{}, ts_init::Tuple{}, ks_init::Tuple{}, recompile::Type{Val{true}}; saveat::Float64, tstops::Tuple{}, d_discontinuities::Tuple{}, save_idxs::Nothing, save_everystep::Bool, save_on::Bool, save_start::Bool, save_end::Nothing, callback::Nothing, dense::Bool, calck::Bool, dt::Float64, dtmin::Float64, dtmax::Float64, force_dtmin::Bool, adaptive::Bool, gamma::Rational{Int64}, abstol::Nothing, reltol::Nothing, qmin::Rational{Int64}, qmax::Int64, qsteady_min::Rational{Int64}, qsteady_max::Rational{Int64}, beta1::Nothing, beta2::Nothing, qoldinit::Rational{Int64}, controller::Nothing, fullnormalize::Bool, failfactor::Int64, maxiters::Int64, internalnorm::typeof(DiffEqBase.ODE_DEFAULT_NORM), internalopnorm::typeof(LinearAlgebra.opnorm), isoutofdomain::typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), unstable_check::typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), verbose::Bool, timeseries_errors::Bool, dense_errors::Bool, advance_to_tstop::Bool, stop_at_next_tstop::Bool, initialize_save::Bool, progress::Bool, progress_steps::Int64, progress_name::String, progress_message::typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), progress_id::Symbol, userdata::Nothing, allow_extrapolation::Bool, initialize_integrator::Bool, alias_u0::Bool, alias_du0::Bool, initializealg::OrdinaryDiffEq.DefaultInit, kwargs::@Kwargs{})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/solve.jl:344
 [12] __solve(::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, ::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}; kwargs::@Kwargs{saveat::Float64})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/DmspS/src/solve.jl:6
 [13] solve_call(_prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, args::FBDF{5, 12, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}; merge_callbacks::Bool, kwargshandle::Nothing, kwargs::@Kwargs{saveat::Float64})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/8vI1R/src/solve.jl:612
 [14] solve_up(prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, sensealg::Nothing, u0::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, p::SciMLBase.NullParameters, args::FBDF{5, 0, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}; kwargs::@Kwargs{saveat::Float64})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/8vI1R/src/solve.jl:1080
 [15] solve_up
    @ ~/.julia/packages/DiffEqBase/8vI1R/src/solve.jl:1066 [inlined]
 [16] solve(prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = ViewAxis(1:100, ShapedAxis((10, 10))), y = ViewAxis(101:200, ShapedAxis((10, 10))))}}}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, ODEFunction{true, SciMLBase.AutoSpecialize, typeof(f), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, SymbolicIndexingInterface.SymbolCache{Nothing, Nothing, Nothing}, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, args::FBDF{5, 0, true, KrylovJL{typeof(Krylov.gmres!), Int64, Tuple{}, @Kwargs{}}, NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Rational{Int64}}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing, Nothing, Nothing}; sensealg::Nothing, u0::Nothing, p::Nothing, wrap::Val{true}, kwargs::@Kwargs{saveat::Float64})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/8vI1R/src/solve.jl:1003
 [17] top-level scope
    @ ~/Code/BirdsviewGPR.jl/Subgridding/test/subgrid_mwe.jl:20
xtalax commented 6 months ago

pending a mwe based solely on LinearSolve