SKopecz / PositiveIntegrators.jl

A Julia library of positivity-preserving time integration methods
https://skopecz.github.io/PositiveIntegrators.jl/
MIT License
13 stars 4 forks source link

Debug package on Julia v1.6 #2

Closed ranocha closed 5 months ago

ranocha commented 11 months ago

A CI run with Julia v1.6 resulted in

ERROR: LoadError: DimensionMismatch("cannot broadcast array to have fewer dimensions")
Stacktrace:
  [1] check_broadcast_shape(#unused#::Tuple{}, Ashp::Tuple{Base.OneTo{Int64}})
    @ Base.Broadcast ./broadcast.jl:518
  [2] check_broadcast_shape(shp::Tuple{Base.OneTo{Int64}}, Ashp::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}})
    @ Base.Broadcast ./broadcast.jl:521
  [3] check_broadcast_axes
    @ ./broadcast.jl:523 [inlined]
  [4] check_broadcast_axes
    @ ./broadcast.jl:527 [inlined]
  [5] instantiate
    @ ./broadcast.jl:269 [inlined]
  [6] materialize!
    @ ./broadcast.jl:894 [inlined]
  [7] materialize!
    @ ./broadcast.jl:891 [inlined]
  [8] (::ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing})(du::Vector{Float64}, u::Vector{Float64}, p::Vector{Float64}, t::Float64)
    @ PositiveIntegrators ~/work/PositiveIntegrators.jl/PositiveIntegrators.jl/src/proddest.jl:134
  [9] initialize!(integrator::OrdinaryDiffEq.ODEIntegrator{MPE{Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS)}, true, Vector{Float64}, Nothing, Float64, Vector{Float64}, Float64, Float64, Float64, Float64, Vector{Vector{Float64}}, ODESolution{Float64, 2, Vector{Vector{Float64}}, Vector{Vector{Float64}}, Dict{Symbol, Float64}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Vector{Float64}, ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ProdDestODEProblem{true}}, MPE{Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS)}, OrdinaryDiffEq.InterpolationData{ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Vector{Vector{Float64}}, Vector{Float64}, Vector{Vector{Vector{Float64}}}, PositiveIntegrators.MPECache{Vector{Float64}, Vector{Float64}, Matrix{Float64}, LinearSolve.LinearCache{Matrix{Float64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.DefaultLinearSolver, LinearSolve.DefaultLinearSolverInit{LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearAlgebra.QRCompactWY{Float64, Matrix{Float64}}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, LinearAlgebra.LU{Float64, Matrix{Float64}}, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Vector{Int64}}, Nothing, Nothing, Nothing, LinearAlgebra.SVD{Float64, Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, Nothing, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Base.RefValue{Int64}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, Vector{Float64}}}, LinearAlgebra.Diagonal{Float64, Vector{Float64}}, Float64, Bool}, Vector{Float64}}}, DiffEqBase.Stats, Nothing}, ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, PositiveIntegrators.MPECache{Vector{Float64}, Vector{Float64}, Matrix{Float64}, LinearSolve.LinearCache{Matrix{Float64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.DefaultLinearSolver, LinearSolve.DefaultLinearSolverInit{LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearAlgebra.QRCompactWY{Float64, Matrix{Float64}}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, LinearAlgebra.LU{Float64, Matrix{Float64}}, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Vector{Int64}}, Nothing, Nothing, Nothing, LinearAlgebra.SVD{Float64, Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, Nothing, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Base.RefValue{Int64}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, Vector{Float64}}}, LinearAlgebra.Diagonal{Float64, Vector{Float64}}, Float64, Bool}, Vector{Float64}}, OrdinaryDiffEq.DEOptions{Float64, Float64, Float64, Float64, PIController{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{}}, Vector{Float64}, Float64, Nothing, OrdinaryDiffEq.DefaultInit}, cache::PositiveIntegrators.MPECache{Vector{Float64}, Vector{Float64}, Matrix{Float64}, LinearSolve.LinearCache{Matrix{Float64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.DefaultLinearSolver, LinearSolve.DefaultLinearSolverInit{LinearAlgebra.LU{Float64, Matrix{Float64}}, LinearAlgebra.QRCompactWY{Float64, Matrix{Float64}}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, LinearAlgebra.LU{Float64, Matrix{Float64}}, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Vector{Int64}}, Nothing, Nothing, Nothing, LinearAlgebra.SVD{Float64, Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, Nothing, Tuple{LinearAlgebra.LU{Float64, Matrix{Float64}}, Base.RefValue{Int64}}}, LinearSolve.InvPreconditioner{LinearAlgebra.Diagonal{Float64, Vector{Float64}}}, LinearAlgebra.Diagonal{Float64, Vector{Float64}}, Float64, Bool}, Vector{Float64}})
    @ PositiveIntegrators ~/work/PositiveIntegrators.jl/PositiveIntegrators.jl/src/mprk.jl:99
 [10] __init(prob::ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Vector{Float64}, ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ProdDestODEProblem{true}}, alg::MPE{Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS)}, 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::Int64, abstol::Nothing, reltol::Nothing, qmin::Int64, qmax::Int64, qsteady_min::Int64, qsteady_max::Int64, beta1::Nothing, beta2::Nothing, qoldinit::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::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ OrdinaryDiffEq ~/.julia/packages/OrdinaryDiffEq/yppG9/src/solve.jl:502
 [11] #__solve#695
    @ ~/.julia/packages/OrdinaryDiffEq/yppG9/src/solve.jl:5 [inlined]
 [12] solve_call(_prob::ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, Vector{Float64}, ProdDestFunction{true, SciMLBase.FullSpecialize, typeof(linmodP!), typeof(linmodD!), Matrix{Float64}, Matrix{Float64}, LinearAlgebra.UniformScaling{Bool}, Nothing, typeof(f_analytic), Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ProdDestODEProblem{true}}, args::MPE{Nothing, typeof(OrdinaryDiffEq.DEFAULT_PRECS)}; merge_callbacks::Bool, kwargshandle::Nothing, kwargs::Base.Iterators.Pairs{Symbol, Float64, Tuple{Symbol}, NamedTuple{(:dt,), Tuple{Float64}}})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/xSmHR/src/solve.jl:571
 [13] #solve_up#42
    @ ~/.julia/packages/DiffEqBase/xSmHR/src/solve.jl:1033 [inlined]
 [14] #solve#40
    @ ~/.julia/packages/DiffEqBase/xSmHR/src/solve.jl:943 [inlined]
 [15] top-level scope
    @ ~/work/PositiveIntegrators.jl/PositiveIntegrators.jl/examples/02_example_mpe.jl:81
in expression starting at /home/runner/work/PositiveIntegrators.jl/PositiveIntegrators.jl/examples/02_example_mpe.jl:81

see https://github.com/SKopecz/PositiveIntegrators.jl/actions/runs/6512341682/job/17689792745?pr=1#step:6:828

It would be good to debug the issue - I can't do it locally right now

ranocha commented 5 months ago

We switched to Julia v1.9 since LinearSolve.jl has issues for previous Julia versions.