Skip to content

Restrict ModelingToolkitTearing version to fix crash on latest version#117

Merged
hersle merged 1 commit into
mainfrom
mtktearing_compat
Jul 3, 2026
Merged

Restrict ModelingToolkitTearing version to fix crash on latest version#117
hersle merged 1 commit into
mainfrom
mtktearing_compat

Conversation

@hersle

@hersle hersle commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Broke with ModelingToolkitTearing v1.18. Seems related to JuliaComputing/StateSelection.jl#122 and/or JuliaComputing/StateSelection.jl#123?

using SymBoltz
M = ΛCDM()
pars = parameters_Planck18(M)
prob = CosmologyProblem(M, pars)
ERROR: DomainError with -4.788028339202522e19:
Exponentiation yielding a complex result requires a complex argument.
Replace x^y with (x+0im)^y, Complex(x)^y, or similar.
Stacktrace:
  [1] throw_exp_domainerror(x::Float64)
    @ Base.Math ./math.jl:41
  [2] ^(x::Float64, y::Float64)
    @ Base.Math ./math.jl:1206
  [3] #3
    @ ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:549 [inlined]
  [4] iterate
    @ ./generator.jl:47 [inlined]
  [5] _collect(c::Vector{…}, itr::Base.Generator{…}, ::Base.EltypeUnknown, isz::Base.HasShape{…})
    @ Base ./array.jl:854
  [6] collect_similar(cont::Vector{Tuple{…}}, itr::Base.Generator{Vector{…}, ModelingToolkitTearing.var"#3#4"{…}})
    @ Base ./array.jl:763
  [7] map(f::Function, A::Vector{Tuple{Int64, Float64, Float64}})
    @ Base ./abstractarray.jl:3286
  [8] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:549
  [9] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [10] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:505
 [11] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [12] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:524
 [13] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [14] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:563
 [15] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [16] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:505
 [17] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [18] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:524
 [19] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [20] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:505
 [21] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [22] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:524
 [23] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [24] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:563
 [25] get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478
 [26] __get_expression_sort_key!(cache::IdDict{…}, expr::SymbolicUtils.BasicSymbolicImpl.var"typeof(BasicSymbolicImpl)"{…}, var2idx::Dict{…}, canonical_ranks::Vector{…})
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:505
 [27] get_expression_sort_key!
    @ ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:478 [inlined]
 [28] get_equation_sort_key!
    @ ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:469 [inlined]
 [29] TearingState(sys::System, source_info::ModelingToolkitBase.EquationSourceInformation; check::Bool, sort_eqs::Bool)
    @ ModelingToolkitTearing ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:416
 [30] TearingState
    @ ~/.julia/packages/ModelingToolkitTearing/2p2Cp/src/tearingstate.jl:148 [inlined]
 [31] __mtkcompile(sys::System; inputs::OrderedCollections.OrderedSet{…}, outputs::OrderedCollections.OrderedSet{…}, disturbance_inputs::OrderedCollections.OrderedSet{…}, sort_eqs::Bool, kwargs::@Kwargs{…})
    @ ModelingToolkit ~/.julia/packages/ModelingToolkit/caOwk/src/systems/systems.jl:34
 [32] __mtkcompile
    @ ~/.julia/packages/ModelingToolkit/caOwk/src/systems/systems.jl:23 [inlined]
 [33] _mtkcompile(sys::System; kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/systems.jl:154
 [34] _mtkcompile
    @ ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/systems.jl:127 [inlined]
 [35] mtkcompile(sys::System; additional_passes::Tuple{}, inputs::Vector{…}, outputs::Vector{…}, disturbance_inputs::Vector{…}, split::Bool, kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/systems.jl:100
 [36] mtkcompile
    @ ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/systems.jl:84 [inlined]
 [37] InitializationProblem{…}(sys::System, t::Float64, op::ModelingToolkitBase.AtomicArrayDict{…}; fast_path::Bool, guesses::Dict{…}, check_length::Bool, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, fully_determined::Bool, check_units::Bool, allow_incomplete::Bool, algebraic_only::Bool, time_dependent_init::Bool, initsys_mtkcompile_kwargs::@NamedTuple{}, is_steadystateprob::Bool, kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/problems/initializationproblem.jl:88
 [38] InitializationProblem
    @ ~/.julia/packages/ModelingToolkitBase/rvy0w/src/problems/initializationproblem.jl:22 [inlined]
 [39] #_#866
    @ ./none:0 [inlined]
 [40] maybe_build_initialization_problem(sys::System, iip::Bool, op::ModelingToolkitBase.AtomicArrayDict{…}, t::Float64, guesses::Dict{…}; time_dependent_init::Bool, u0_constructor::Function, p_constructor::Function, floatT::Type, initialization_eqs::Vector{…}, use_scc::Bool, eval_expression::Bool, eval_module::Module, missing_guess_value::ModelingToolkitBase.MissingGuessValue.var"typeof(MissingGuessValue)", implicit_dae::Bool, is_steadystateprob::Bool, expression::Type, kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/problem_utils.jl:1531
 [41] __process_SciMLProblem(constructor::Type, sys::System, op::Dict{…}; floatT::Type, u0Type::Type, u0_eltype::Type, build_initializeprob::Bool, implicit_dae::Bool, t::Float64, guesses::Dict{…}, warn_initialize_determined::Bool, initialization_eqs::Vector{…}, eval_expression::Bool, eval_module::Module, fully_determined::Bool, check_initialization_units::Bool, tofloat::Bool, u0_constructor::typeof(identity), p_constructor::typeof(identity), check_length::Bool, symbolic_u0::Bool, warn_cyclic_dependency::Bool, circular_dependency_max_cycle_length::Int64, circular_dependency_max_cycles::Int64, initsys_mtkcompile_kwargs::@NamedTuple{}, substitution_limit::Int64, use_scc::Bool, time_dependent_init::Bool, algebraic_only::Bool, missing_guess_value::ModelingToolkitBase.MissingGuessValue.var"typeof(MissingGuessValue)", allow_incomplete::Bool, is_initializeprob::Bool, is_steadystateprob::Bool, return_operating_point::Bool, compiler_options::CompilerOptions, init_compiler_options::CompilerOptions, kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/problem_utils.jl:1914
 [42] process_SciMLProblem(constructor::Any, sys::System, op::Any; u0_eltype::Nothing, u0_constructor::Function, p_constructor::Function, symbolic_u0::Bool,kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/systems/problem_utils.jl:1864
 [43] (ODEProblem{…})(sys::System, op::Any, tspan::Tuple{…}; callback::Any, check_length::Bool, eval_expression::Bool, expression::Type, eval_module::Module, check_compatibility::Bool, _skip_events::Bool, kwargs::@Kwargs{…})
    @ ModelingToolkitBase ~/.julia/packages/ModelingToolkitBase/rvy0w/src/problems/odeproblem.jl:116
 [44] ODEProblem
    @ ~/.julia/packages/ModelingToolkitBase/rvy0w/src/problems/odeproblem.jl:105 [inlined]
 [45] ODEProblem
    @ ./none:0 [inlined]
 [46] #ODEProblem#776
    @ ./none:0 [inlined]
 [47] CosmologyProblem(M::System, pars::Dict{…}, shoot_pars::Dict{…}, shoot_conditions::Vector{…}; ivspan::Tuple{…}, terminate_today::Bool, bg::Bool, pt::Bool, spline::Bool, debug::Bool, fully_determined::Bool, jac::Bool, sparse::Bool, bgopts::Tuple{}, ptopts::Tuple{}, kwargs::@Kwargs{})
    @ SymBoltz ~/.julia/dev/SymBoltz/src/solve.jl:204
 [48] CosmologyProblem
    @ ~/.julia/dev/SymBoltz/src/solve.jl:129 [inlined]
 [49] CosmologyProblem(M::System, pars::Dict{Num, Float64})
    @ SymBoltz ~/.julia/dev/SymBoltz/src/solve.jl:129
 [50] top-level scope
    @ REPL[18]:1
Some type information was truncated. Use `show(err)` to see complete types.

@hersle hersle merged commit bfefd9f into main Jul 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant