Closed jonniedie closed 2 years ago
Full stacktrace for the LabelledArrays one:
julia> lsol = solve(lprob1, Rodas5());
ERROR: type Array has no field x
Stacktrace:
[1] getproperty
@ .\Base.jl:42 [inlined]
[2] dotgetproperty(x::Vector{Float64}, f::Symbol)
@ Base .\Base.jl:45
[3] f1(du::Vector{Float64}, u::LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, p::Vector{Float64}, t::Float64)
@ Main C:\Users\jdiegelm\.julia\dev\ComponentArrays\issue_debug\Issue_36.jl:6
[4] (::ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing})(::Vector{Float64}, ::Vararg{Any})
@ SciMLBase C:\Users\jdiegelm\.julia\packages\SciMLBase\pr0Dt\src\scimlfunctions.jl:345
[5] ode_determine_initdt(u0::LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, t::Float64, tdir::Float64, dtmax::Float64, abstol::Float64, reltol::Float64, internalnorm::typeof(DiffEqBase.ODE_DEFAULT_NORM), prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, integrator::OrdinaryDiffEq.ODEIntegrator{Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, true, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Nothing, Float64, Vector{Float64}, Float64, Float64, Float64, Float64, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, ODESolution{Float64, 2, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, OrdinaryDiffEq.InterpolationData{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Vector{Float64}, Vector{Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rosenbrock5Cache{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Matrix{Float64}, Matrix{Float64}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{Matrix{Float64}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Float64}, SparseDiffTools.ForwardColorJacCache{LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, (x = 1:100, y = 101:200)}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}}, DiffEqBase.DEStats}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, OrdinaryDiffEq.Rosenbrock5Cache{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Matrix{Float64}, Matrix{Float64}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{Matrix{Float64}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Float64}, SparseDiffTools.ForwardColorJacCache{LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, (x = 1:100, y = 101:200)}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, OrdinaryDiffEq.DEOptions{Float64, Float64, Float64, Float64, PIController{Rational{Int64}}, typeof(DiffEqBase.ODE_DEFAULT_NORM), typeof(LinearAlgebra.opnorm), Nothing, CallbackSet{Tuple{}, Tuple{}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Float64, Nothing, OrdinaryDiffEq.DefaultInit})
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\initdt.jl:49
[6] auto_dt_reset!
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\integrators\integrator_interface.jl:346 [inlined]
[7] handle_dt!(integrator::OrdinaryDiffEq.ODEIntegrator{Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, true, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Nothing, Float64, Vector{Float64}, Float64, Float64, Float64, Float64, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, ODESolution{Float64, 2, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100,
y = 101:200)}}}, ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing,
Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, OrdinaryDiffEq.InterpolationData{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Vector{Float64}, Vector{Vector{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rosenbrock5Cache{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Matrix{Float64}, Matrix{Float64}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{Matrix{Float64}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Float64}, SparseDiffTools.ForwardColorJacCache{LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64},
(x = 1:100, y = 101:200)}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, (x =
1:100, y = 101:200)}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}}, DiffEqBase.DEStats}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, OrdinaryDiffEq.Rosenbrock5Cache{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Matrix{Float64}, Matrix{Float64}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{Matrix{Float64}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}}, LinearAlgebra.Diagonal{Float64, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}}, Float64}, SparseDiffTools.ForwardColorJacCache{LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, (x = 1:100, y = 101:200)}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, LArray{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, 1, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, (x = 1:100, y
= 101:200)}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, OrdinaryDiffEq.DEOptions{Float64, Float64, Float64, Float64, PIController{Rational{Int64}}, typeof(DiffEqBase.ODE_DEFAULT_NORM), typeof(LinearAlgebra.opnorm), Nothing, CallbackSet{Tuple{}, Tuple{}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64,
DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}}, LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Float64, Nothing, OrdinaryDiffEq.DefaultInit})
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:504
[8] __init(prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, alg::Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, timeseries_init::Tuple{}, ts_init::Tuple{}, ks_init::Tuple{}, recompile::Type{Val{true}}; saveat::Tuple{}, 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::Nothing, dtmax::Float64, force_dtmin::Bool, adaptive::Bool, gamma::Rational{Int64}, abstol::Nothing, reltol::Nothing, qmin::Rational{Int64}, qmax::Int64, qsteady_min::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), userdata::Nothing, allow_extrapolation::Bool, initialize_integrator::Bool, alias_u0::Bool, alias_du0::Bool, initializealg::OrdinaryDiffEq.DefaultInit, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:466
[9] __init(prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, alg::Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, timeseries_init::Tuple{}, ts_init::Tuple{}, ks_init::Tuple{}, recompile::Type{Val{true}}) (repeats 5 times)
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:67
[10] #__solve#499
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:4 [inlined]
[11] __solve
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:4 [inlined]
[12] #solve_call#37
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:61 [inlined]
[13] solve_call(_prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, args::Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:48
[14] solve_up(prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, sensealg::Nothing, u0::LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, p::Vector{Float64}, args::Rodas5{0, true, Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:87
[15] solve_up
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:78 [inlined]
[16] #solve#38
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:73 [inlined]
[17] solve(prob::ODEProblem{LArray{Float64, 1, Vector{Float64}, (x = 1:100, y = 101:200)}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, args::Rodas5{0, true, Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:68
[18] top-level scope
@ REPL[14]:1
And for the ComponentArrays one:
julia> csol = solve(cprob1, Rodas5());
ERROR: MethodError: Cannot `convert` an object of type
LinearSolve.LinearCache{ComponentArray{Float64{},2,Array{Float64{},2},Tuple{Axis{(x = 1:100, y = 101:200)},Axis{(x = 1:100, y = 101:200)}}},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}},SciMLBase.NullParameters{},LUFactorization{LinearAlgebra.RowMaximum{}},LinearAlgebra.LU{Float64{},ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}},LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64{},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}}}},LinearAlgebra.Diagonal{Float64{},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}}},Float64{}} to an object of type
LinearSolve.LinearCache{ComponentArray{Float64{},2,Array{Float64{},2},Tuple{Axis{(x = 1:100, y = 101:200)},Axis{(x = 1:100, y = 101:200)}}},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}},SciMLBase.NullParameters{},LUFactorization{LinearAlgebra.RowMaximum{}},LinearAlgebra.LU{Float64{},Matrix{Float64}},LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64{},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}}}},LinearAlgebra.Diagonal{Float64{},ComponentArray{Float64{},1,Array{Float64{},1},Tuple{Axis{(x = 1:100, y = 101:200)}}}},Float64{}}
Closest candidates are:
convert(::Type{T}, ::T) where T at C:\Users\jdiegelm\AppData\Local\Programs\Julia\Julia-1.7.0\share\julia\base\essentials.jl:218
LinearSolve.LinearCache{TA, Tb, Tu, Tp, Talg, Tc, Tl, Tr, Ttol}(::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) where {TA, Tb, Tu, Tp, Talg, Tc, Tl, Tr, Ttol} at C:\Users\jdiegelm\.julia\packages\LinearSolve\7jCfY\src\common.jl:2
Stacktrace:
[1] setproperty!(x::OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64},
Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64},
Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, f::Symbol, v::LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64})
@ Base .\Base.jl:43
[2] perform_step!(integrator::OrdinaryDiffEq.ODEIntegrator{Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, true, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Nothing, Float64, Vector{Float64}, Float64, Float64, Float64, Float64, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, ODESolution{Float64, 2, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, OrdinaryDiffEq.InterpolationData{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Vector{Float64}, Vector{Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}},
Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}}, DiffEqBase.DEStats}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64,
Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, OrdinaryDiffEq.DEOptions{Float64, Float64, Float64, Float64, PIController{Rational{Int64}}, typeof(DiffEqBase.ODE_DEFAULT_NORM), typeof(LinearAlgebra.opnorm), Nothing, CallbackSet{Tuple{}, Tuple{}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Nothing, OrdinaryDiffEq.DefaultInit}, cache::OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, repeat_step::Bool)
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\perform_step\rosenbrock_perform_step.jl:1668
[3] perform_step!
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\perform_step\rosenbrock_perform_step.jl:1468 [inlined]
[4] solve!(integrator::OrdinaryDiffEq.ODEIntegrator{Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, true, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Nothing, Float64, Vector{Float64}, Float64, Float64, Float64, Float64, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, ODESolution{Float64, 2, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Nothing, Nothing, Vector{Float64}, Vector{Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}, OrdinaryDiffEq.InterpolationData{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Vector{Float64}, Vector{Vector{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}}, DiffEqBase.DEStats}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, OrdinaryDiffEq.Rosenbrock5Cache{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, OrdinaryDiffEq.Rodas5Tableau{Float64, Float64}, SciMLBase.TimeGradientWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Float64}}, SciMLBase.UJacobianWrapper{ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Float64, Vector{Float64}}, LinearSolve.LinearCache{ComponentMatrix{Float64, Matrix{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}, Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, SciMLBase.NullParameters, LUFactorization{LinearAlgebra.RowMaximum}, LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}}, LinearAlgebra.Diagonal{Float64, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}}, Float64}, SparseDiffTools.ForwardColorJacCache{ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 12}}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Vector{Vector{NTuple{12, Float64}}}, UnitRange{Int64}, Nothing}, ComponentVector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{OrdinaryDiffEq.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Tuple{Axis{(x = 1:100, y = 101:200)}}},
Float64, Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}}, OrdinaryDiffEq.DEOptions{Float64, Float64, Float64, Float64, PIController{Rational{Int64}}, typeof(DiffEqBase.ODE_DEFAULT_NORM), typeof(LinearAlgebra.opnorm), Nothing, CallbackSet{Tuple{}, Tuple{}}, typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN), typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE), typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK), DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, DataStructures.BinaryHeap{Float64, DataStructures.FasterForward}, Nothing, Nothing, Int64, Tuple{}, Tuple{}, Tuple{}}, ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Float64, Nothing, OrdinaryDiffEq.DefaultInit})
@ OrdinaryDiffEq C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:478
[5] #__solve#499
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:5 [inlined]
[6] __solve
@ C:\Users\jdiegelm\.julia\packages\OrdinaryDiffEq\Op0Oq\src\solve.jl:4 [inlined]
[7] #solve_call#37
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:61 [inlined]
[8] solve_call(_prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, args::Rodas5{12, true, LUFactorization{LinearAlgebra.RowMaximum}, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:48
[9] solve_up(prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, sensealg::Nothing, u0::ComponentVector{Float64}, p::Vector{Float64}, args::Rodas5{0, true, Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:87
[10] solve_up
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:78 [inlined]
[11] #solve#38
@ C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:73 [inlined]
[12] solve(prob::ODEProblem{ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(x = 1:100, y = 101:200)}}}, Tuple{Float64, Float64}, true, Vector{Float64}, ODEFunction{true, typeof(f1), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing}, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, SciMLBase.StandardODEProblem}, args::Rodas5{0, true, Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS), Val{:forward}, true, nothing})
@ DiffEqBase C:\Users\jdiegelm\.julia\packages\DiffEqBase\Y5mGv\src\solve.jl:68
[13] top-level scope
@ REPL[15]:1
It seems like u .* u'
now creates a ComponentMatrix
which is not preserved by lu(J)
operations. Fixing this is probably best done via an overload:
import ArrayInterface
ArrayInterface.zeromatrix(u::ComponentArray) = similar(u,length(u),length(u))
The reason for the LabelledArray issue is:
lu_0 ./ 1.0 # Vector
@yingboma how do we make that use the right broadcast similar? I thought constants would be handled?
https://github.com/SciML/LabelledArrays.jl/blob/master/src/larray.jl#L115-L128
Ah, sweet broadcast again... I will look into it.
It looks correct:
julia> x ./ 1
3-element LArray{Float64, 1, Vector{Float64}, (:a, :b, :c)}:
:a => 1.0
:b => 2.0
:c => 3.0
Is there an MWE?
using LabelledArrays
const n = 100
lu_0 = @LArray fill(1000.0, 2 * n) (x = (1:n), y = (n+1:2*n))
lu_0 ./ 1.0 # Vector
I see. It only happens with the range version.
The fix for component arrays is https://github.com/jonniedie/ComponentArrays.jl/pull/121
One of the tests I run for ComponentArrays to make sure we're in line with LabelledArrays for stiff solvers looks like this:
This is now failing for both LabelledArrays and ComponentArrays (albeit at different places).
For LabelledArrays, the
du
cache is created at some point to just be a plainVector
type instead of aLArray
. The call in the error stacktrace looks like:For ComponentArrays, it looks like the problem might be a missing conversion method for
LinearSolve.LinearCache
. This is what's causing https://github.com/jonniedie/ComponentArrays.jl/issues/119.I'm not sure the two problems are actually related, but I thought maybe the ComponentArrays one will hit the same issue that LabelledArrays does once the
LinearCache
thing is cleared up (the only reason ComponentArrays hits this problem and LabelledArrays doesn't is that ComponentArrays keep their ComponentArrayness through outer product expansion). Let me know if you want me to open a separate issue on for theLinearCache
thing.