Skip to content

ERROR: LoadError: AssertionError: r == 0 in InitializationProblem creation #3559

@1-Bart-1

Description

@1-Bart-1

I have a kite model with discretized tethers consisting of segments. The model works with 2, 3, 4, 5, and 7 segments per tether, but when creating the problem with 6 segments, I get the error shown below. Sadly I could not make a MWE here, as I only get this error in this specific model with this specific number of segments... To reproduce you have to install KiteModels.jl#six-seg and run examples/input_output_function.jl.

Stacktrace:

ERROR: LoadError: AssertionError: r == 0
Stacktrace:
  [1] exactdiv
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:378 [inlined]
  [2] bareiss_update_virtual_colswap_mtk!(zero!::Function, M::ModelingToolkit.SparseMatrixCLIL{…}, k::Int64, swapto::CartesianIndex{…}, pivot::Int64, last_pivot::Int64; pivot_equal_optimization::Bool)
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/sparsematrixclil.jl:239
  [3] bareiss_update_virtual_colswap_mtk!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/sparsematrixclil.jl:134 [inlined]
  [4] bareiss!(M::ModelingToolkit.SparseMatrixCLIL{…}, swap_strategy::Tuple{…}; find_pivot::ModelingToolkit.var"#1711#1715"{}, column_pivots::Nothing)
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/structural_transformation/bareiss.jl:210
  [5] bareiss!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/structural_transformation/bareiss.jl:191 [inlined]
  [6] do_bareiss!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:344 [inlined]
  [7] aag_bareiss!(structure::SystemStructure, mm_orig::ModelingToolkit.SparseMatrixCLIL{Int64, Int64})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:295
  [8] alias_eliminate_graph!(state::TearingState{NonlinearSystem}, ils::ModelingToolkit.SparseMatrixCLIL{Int64, Int64})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:356
  [9] alias_eliminate_graph!(state::TearingState{NonlinearSystem}; kwargs::@Kwargs{allow_symbolic::Bool, allow_parameter::Bool, conservative::Bool})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:11
 [10] alias_eliminate_graph!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:4 [inlined]
 [11] alias_elimination!(state::TearingState{NonlinearSystem}; kwargs::@Kwargs{allow_symbolic::Bool, allow_parameter::Bool, conservative::Bool})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:50
 [12] alias_elimination!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/alias_elimination.jl:46 [inlined]
 [13] _structural_simplify!(state::TearingState{…}, io::Nothing; simplify::Bool, check_consistency::Bool, fully_determined::Nothing, warn_initialize_determined::Bool, dummy_derivative::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systemstructure.jl:705
 [14] _structural_simplify!
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systemstructure.jl:686 [inlined]
 [15] #structural_simplify!#1566
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systemstructure.jl:679 [inlined]
 [16] __structural_simplify(sys::NonlinearSystem, io::Nothing; simplify::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systems.jl:91
 [17] __structural_simplify
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systems.jl:72 [inlined]
 [18] structural_simplify(sys::NonlinearSystem, io::Nothing; additional_passes::Vector{…}, simplify::Bool, split::Bool, allow_symbolic::Bool, allow_parameter::Bool, conservative::Bool, fully_determined::Nothing, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systems.jl:33
 [19] structural_simplify (repeats 2 times)
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/systems.jl:28 [inlined]
 [20] ModelingToolkit.InitializationProblem{…}(sys::ODESystem, t::Float64, u0map::Dict{…}, parammap::Dict{…}; guesses::Dict{…}, check_length::Bool, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, fully_determined::Nothing, check_units::Bool, use_scc::Bool, allow_incomplete::Bool, force_time_independent::Bool, algebraic_only::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/diffeqs/abstractodesystem.jl:1407
 [21] maybe_build_initialization_problem(sys::ODESystem, op::Dict{…}, u0map::Dict{…}, pmap::Dict{…}, t::Float64, defs::Dict{…}, guesses::Vector{…}, missing_unknowns::Set{…}; implicit_dae::Bool, u0_constructor::Function, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/problem_utils.jl:658
 [22] maybe_build_initialization_problem
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/problem_utils.jl:649 [inlined]
 [23] process_SciMLProblem(constructor::Type, sys::ODESystem, u0map::Vector{…}, pmap::SciMLBase.NullParameters; build_initializeprob::Bool, implicit_dae::Bool, t::Float64, guesses::Vector{…}, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, eval_expression::Bool, eval_module::Module, fully_determined::Nothing, check_initialization_units::Bool, tofloat::Bool, u0_constructor::typeof(identity), du0map::Nothing, check_length::Bool, symbolic_u0::Bool, warn_cyclic_dependency::Bool, circular_dependency_max_cycle_length::Int64, circular_dependency_max_cycles::Int64, substitution_limit::Int64, use_scc::Bool, force_initialization_time_independent::Bool, algebraic_only::Bool, allow_incomplete::Bool, is_initializeprob::Bool, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/problem_utils.jl:826
 [24] (ODEProblem{})(sys::ODESystem, u0map::Vector{…}, tspan::Tuple{…}, parammap::SciMLBase.NullParameters; callback::Nothing, check_length::Bool, warn_initialize_determined::Bool, eval_expression::Bool, eval_module::Module, kwargs::@Kwargs{})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/diffeqs/abstractodesystem.jl:748
 [25] ODEProblem
    @ ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/diffeqs/abstractodesystem.jl:730 [inlined]
 [26] (ODEProblem{true})(::ODESystem, ::Vector{Pair{Num, Real}}, ::Vararg{Any}; kwargs::@Kwargs{guesses::Vector{Pair{Num, Real}}})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/diffeqs/abstractodesystem.jl:723
 [27] ODEProblem(::ODESystem, ::Vector{Pair{Num, Real}}, ::Vararg{Any}; kwargs::@Kwargs{guesses::Vector{Pair{Num, Real}}})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vIsAP/src/systems/diffeqs/abstractodesystem.jl:712
 [28] init_sim!(s::RamAirKite{Float64, Vector{Float64}, 21}, measure::Measurement; prn::Bool)
    @ KiteModels ~/Code/KiteModels.jl/src/ram_air_kite.jl:395
 [29] init_sim!(s::RamAirKite{Float64, Vector{Float64}, 21}, measure::Measurement)
    @ KiteModels ~/Code/KiteModels.jl/src/ram_air_kite.jl:381
 [30] top-level scope
    @ ~/Code/KiteModels.jl/examples/input_output_function.jl:48
 [31] include(fname::String)
    @ Main ./sysimg.jl:38
 [32] top-level scope
    @ REPL[1]:1
in expression starting at /home/bart/Code/KiteModels.jl/examples/input_output_function.jl:48
Some type information was truncated. Use `show(err)` to see complete types.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions