Debugging

Every (mortal) modeler writes models that contain mistakes or are susceptible to numerical errors in their hunt for the perfect model. Debugging such errors is part of the modeling process, and ModelingToolkit includes some functionality that helps with this.

For example, consider an ODE model with "dangerous" functions (here √):

using ModelingToolkit, OrdinaryDiffEq
using ModelingToolkit: t_nounits as t, D_nounits as D

@variables u1(t) u2(t) u3(t)
eqs = [D(u1) ~ -√(u1), D(u2) ~ -√(u2), D(u3) ~ -√(u3)]
initial_conditions = [u1 => 1.0, u2 => 2.0, u3 => 3.0]
@named sys = System(eqs, t; initial_conditions)
sys = mtkcompile(sys)
Model sys:
Equations (3):
  3 standard: see equations(sys)
Unknowns (3): see unknowns(sys)
  u3(t)
  u2(t)
  u1(t)

This problem causes the ODE solver to crash:

julia> prob = ODEProblem(sys, [], (0.0, 10.0));
julia> sol = solve(prob, Tsit5());┌ Warning: Verbosity toggle: dt_epsilon │ At t=2.0011674378576663, dt was forced below floating point epsilon 4.440892098500626e-16. Aborting. There is either an error in your model specification or the true solution is unstable (or it cannot be represented in Float64 precision). │ │ Diagnostics: │ │ State Analysis: │ u[3] = NaN is non-finite (NaN/Inf) │ │ Error Analysis: │ step error estimate EEst = NaN (a step is accepted when EEst <= 1) │ 1 of 3 weighted residuals are non-finite (NaN/Inf) │ largest contributors to EEst = internalnorm(atmp), where atmp is the tolerance-weighted local error per state component: │ atmp[3] = NaN, u[3] = NaN, uprev[3] = 1.217e-31 │ atmp[2] = -1.342e-28, u[2] = 0.1711, uprev[2] = 0.1711 │ atmp[1] = 6.634e-29, u[1] = 0.535, uprev[1] = 0.535 │ Symbolic Analysis of MTK System: │ in equation Differential(t, 1)(u1(t)) ~ -sqrt(u1(t)): sqrt of u1(t) = 1.217e-31 near/at singularity (derivative blows up). └ @ DiffEqBase ~/.julia/packages/DiffEqBase/x5hz3/src/check_error.jl:37

This suggests that something went wrong, but not exactly what went wrong and where it did. In such situations, the debug_system function is helpful:

julia> dsys = debug_system(sys; functions = [sqrt]);
julia> dprob = ODEProblem(dsys, [], (0.0, 10.0));
julia> dsol = solve(dprob, Tsit5());ERROR: Function sqrt(u1(t)) errors with input u1(t) => -9.057596781072343e-5

Now we see that it crashed because u1 decreased so much that it became negative and outside the domain of the √ function. We could have figured that out ourselves, but it is not always so obvious for more complex models.

Suppose we also want to validate that u1 + u2 >= 2.0. We can do this via the assertions functionality.

@mtkcompile sys = System(eqs, t; initial_conditions, assertions = [(u1 + u2 >= 2.0) => "Oh no!"])
Model sys:
Equations (3):
  3 standard: see equations(sys)
Unknowns (3): see unknowns(sys)
  u3(t)
  u2(t)
  u1(t)

The assertions must be an iterable of pairs, where the first element is the symbolic condition and the second is a message to be logged when the condition fails. All assertions are added to the generated code and will cause the solver to reject steps that fail the assertions. For systems such as the above where the assertion is guaranteed to eventually fail, the solver will likely exit with a dtmin failure..

prob = ODEProblem(sys, [], (0.0, 10.0))
sol = solve(prob, Tsit5())
retcode: Unstable
Interpolation: specialized 4th order "free" interpolation
t: 31-element Vector{Float64}:
 0.0
 0.10506363765715951
 0.4538820261379217
 0.45750836372557085
 0.45756638512697323
 0.4575710268390854
 0.4575728835239303
 0.45757659689362
 0.4575768939631952
 0.45757689871630836
 ⋮
 0.45757690565415915
 0.45757690565422293
 0.45757690565424847
 0.4575769056542587
 0.4575769056542628
 0.4575769056542644
 0.4575769056542645
 0.4575769056542648
 0.4575769056542649
u: 31-element Vector{Vector{Float64}}:
 [3.0, 2.0, 1.0]
 [2.8207840335397765, 1.8541771707038075, 0.8976959543392682]
 [2.2653554957755935, 1.4096161132331038, 0.5976202496740152]
 [2.2599007471325927, 1.4053139497313125, 0.5948201642704126]
 [2.259813524597223, 1.405245168558202, 0.5947754163468729]
 [2.259806546867109, 1.4052396661370692, 0.5947718365857058]
 [2.25980375577808, 1.4052374651716324, 0.5947704046842552]
 [2.259798173605193, 1.4052330632459298, 0.5947675408865252]
 [2.2597977270316596, 1.4052327110921714, 0.5947673117830046]
 [2.2597977198864836, 1.4052327054577116, 0.5947673081173486]
 ⋮
 [2.259797709457073, 1.4052326972334093, 0.5947673027667976]
 [2.259797709456977, 1.4052326972333335, 0.5947673027667484]
 [2.259797709456939, 1.4052326972333034, 0.5947673027667287]
 [2.2597977094569233, 1.4052326972332914, 0.5947673027667209]
 [2.259797709456917, 1.4052326972332865, 0.5947673027667177]
 [2.2597977094569144, 1.4052326972332845, 0.5947673027667165]
 [2.2597977094569144, 1.4052326972332843, 0.5947673027667164]
 [2.259797709456914, 1.405232697233284, 0.5947673027667162]
 [2.259797709456914, 1.4052326972332838, 0.5947673027667161]

We can use debug_system to log the failing assertions in each call to the RHS function.

julia> dsys = debug_system(sys; functions = []);
julia> dprob = ODEProblem(dsys, [], (0.0, 10.0));
julia> dsol = solve(dprob, Tsit5(); dtmin = 0.1); # high dtmin only to show less clutter on this page┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Warning: Verbosity toggle: dt_min_unstable │ dt(0.1) <= dtmin(0.1) at t=0.4538820261379217. Aborting. There is either an error in your model specification or the true solution is unstable. │ │ Diagnostics: │ │ State Analysis: │ u[3] = NaN is non-finite (NaN/Inf) │ │ Error Analysis: │ step error estimate EEst = NaN (a step is accepted when EEst <= 1) │ 1 of 3 weighted residuals are non-finite (NaN/Inf) │ largest contributors to EEst = internalnorm(atmp), where atmp is the tolerance-weighted local error per state component: │ atmp[3] = NaN, u[3] = NaN, uprev[3] = 0.5976 │ atmp[2] = -0.0007927, u[2] = 0.9228, uprev[2] = 1.41 │ atmp[1] = -0.0002095, u[1] = 1.634, uprev[1] = 2.265 └ @ DiffEqBase ~/.julia/packages/DiffEqBase/x5hz3/src/check_error.jl:37

Note the logs containing the failed assertion and corresponding message. To temporarily disable logging in a system returned from debug_system, use ModelingToolkit.ASSERTION_LOG_VARIABLE.

julia> dprob[ModelingToolkit.ASSERTION_LOG_VARIABLE] = false;ERROR: Indexing with parameters is deprecated. Use `prob.ps[__log_assertions_ₘₜₖ] = false` for parameter indexing.
julia> solve(dprob, Tsit5());┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Error: Assertion (u1(t) + u2(t)) >= 2.0 failed: │ Oh no! └ @ ModelingToolkitBase ~/work/ModelingToolkit.jl/ModelingToolkit.jl/lib/ModelingToolkitBase/src/debugging.jl:68 ┌ Warning: Verbosity toggle: dt_epsilon │ At t=0.4575769056542649, dt was forced below floating point epsilon 5.551115123125783e-17. Aborting. There is either an error in your model specification or the true solution is unstable (or it cannot be represented in Float64 precision). │ │ Diagnostics: │ │ State Analysis: │ u[3] = NaN is non-finite (NaN/Inf) │ │ Error Analysis: │ step error estimate EEst = NaN (a step is accepted when EEst <= 1) │ 1 of 3 weighted residuals are non-finite (NaN/Inf) │ largest contributors to EEst = internalnorm(atmp), where atmp is the tolerance-weighted local error per state component: │ atmp[3] = NaN, u[3] = NaN, uprev[3] = 0.5948 │ atmp[2] = 3.111e-30, u[2] = 1.405, uprev[2] = 1.405 │ atmp[1] = 8.043e-31, u[1] = 2.26, uprev[1] = 2.26 │ │ Assertion violated: (u1(t) + u2(t)) >= 2.0 - "Oh no!" │ subclause `(u1(t) + u2(t)) >= 2.0` violated: u2(t) = 1.405, u1(t) = NaN └ @ DiffEqBase ~/.julia/packages/DiffEqBase/x5hz3/src/check_error.jl:37
ModelingToolkitBase.debug_system — Function
debug_system(sys::AbstractSystem; functions = [log, sqrt, (^), /, inv, asin, acos], error_nonfinite = true)

Wrap functions in sys so any error thrown in them shows helpful symbolic-numeric information about its input. If error_nonfinite, functions that output nonfinite values (like Inf or NaN) also display errors, even though the raw function itself does not throw an exception (like 1/0). For example:

julia> sys = debug_system(complete(sys))

julia> prob = ODEProblem(sys, [0.0, 2.0], (0.0, 1.0))

julia> prob.f(prob.u0, prob.p, 0.0)
ERROR: Function /(1, sin(P(t))) output non-finite value Inf with input
  1 => 1
  sin(P(t)) => 0.0

Additionally, all assertions in the system are optionally logged when they fail. A new parameter is also added to the system which controls whether the message associated with each assertion will be logged when the assertion fails. This parameter defaults to true and can be toggled by symbolic indexing with ModelingToolkitBase.ASSERTION_LOG_VARIABLE. For example, prob.ps[ModelingToolkitBase.ASSERTION_LOG_VARIABLE] = false will disable logging.

source

Controlling verbosity

Diagnostic output from ModelingToolkit — the mtkcompile pipeline, problem construction and initialization, and analysis utilities — is controlled through SciMLLogging.jl via the verbose keyword argument, which accepts an MTKVerbosity specifier, a SciMLLogging preset, or a Bool:

using SciMLLogging: SciMLLogging, Silent, InfoLevel

mtkcompile(sys)                                    # stored verbosity of sys, else Standard
mtkcompile(sys; verbose = false)                   # silence everything
mtkcompile(sys; verbose = SciMLLogging.Detailed()) # more diagnostics

# fine-grained control per toggle or group
mtkcompile(sys; verbose = MTKVerbosity(state_priority_tie = Silent))
mtkcompile(sys; verbose = MTKVerbosity(compilation = InfoLevel))

The available toggles are documented on MTKVerbosity:

ToggleDefaultControls
state_priority_tieWarnLevelTied state_priority in an alias group during alias elimination
underconstrained_variablesSilentReport of underconstrained variables found during alias elimination
if_lifting_condition_grammarWarnLevelIfLifting skipping a condition outside its supported grammar
observed_equation_cycleSilentPrinting the smallest cycle when sorting observed equations fails
singular_initializationWarnLevelStructurally singular initialization system
overdetermined_initializationWarnLevelOverdetermined initialization system (least-squares fallback)
underdetermined_initializationWarnLevelUnderdetermined initialization system (least-squares fallback)
scc_initialization_unavailableWarnLevelSCCNonlinearProblem initialization requires split = true
cyclic_dependencySilentCycles among initial conditions of unknowns/parameters
overdetermined_constraintsWarnLevelOverdetermined BVProblem/dynamic-optimization constraints
missing_scc_scheduleWarnLevelSimplified system unexpectedly missing a tearing schedule
dynamic_opt_time_gridWarnLevelIgnored dt/steps argument in dynamic optimization
empty_operating_pointWarnLevelEmpty operating point passed to linearization_function
initialization_analysisInfoLevelThe report of analyze_initialization_jacobian
no_unbound_inputsWarnLevelgenerate_control_function found no unbound inputs
analysis_point_causalityWarnLevelReversed causality in an analysis-point connect
imperative_affect_specificationWarnLevelDuplicate, unassignable, or observed-and-modified ImperativeAffect symbols
parameter_not_in_systemWarnLevelremake with a symbol that is not a parameter of the system
independent_variable_not_parameterWarnLevelIndependent variable not defined with @independent_variables
constraint_variable_without_argumentWarnLevelConstraint or cost with an unknown that has no argument
unbalanced_connectorWarnLevelmtkcompile: a connector with different numbers of flow and regular variables
affect_default_independent_variableWarnLevelAffect with no independent variable, so it uses t_nounits
substitute_skips_eventsWarnLevelsubstitute on a system with events, which it does not change

Problem constructors

SciMLBase.*Problem constructors share the verbose keyword with the solver, since problem keyword arguments are forwarded to solve. The value is routed by type:

  • an MTKVerbosity applies to ModelingToolkit, and its solver sub-specifier for the problem type is forwarded to the solver (de_verbosity for an ODEProblem, nonlinear_verbosity for a NonlinearProblem, ...);
  • a preset or Bool applies to ModelingToolkit and is forwarded to the solver;
  • a solver verbosity specifier (e.g. DEVerbosity) is forwarded untouched.

Thus, one MTKVerbosity can control ModelingToolkit and the solver together:

verb = MTKVerbosity(
    initialization = Silent,
    de_verbosity = DEVerbosity(linear_verbosity = SciMLLogging.None()),
)
prob = ODEProblem(sys, op, tspan; verbose = verb)
solve(prob, Rodas5P())  # the solver gets `verb.de_verbosity`

The initialization_verbosity sub-specifier of MTKVerbosity controls the verbosity of the initialization problem's solve (default Minimal()), and accepts a preset or a NonlinearVerbosity. A linear initialization problem uses a preset, but not a NonlinearVerbosity; then it uses linear_verbosity. The ModelingToolkit diagnostics of the initialization problem use the toggles of the outer MTKVerbosity. The MTKVerbosity docstring lists the solver sub-specifiers for each problem family. If you call InitializationProblem directly, a preset, a Bool, or a solver specifier in verbose is the solver verbosity of the problem that it returns.

The boolean keywords warn_initialize_determined, warn_cyclic_dependency, warn_empty_op, and print_underconstrained_variables (of mtkcompile) are deprecated in favor of verbose. When explicitly passed they emit a deprecation warning and override the corresponding toggles. Julia shows these warnings only with --depwarn=yes, for example in Pkg.test.

Verbosity stored on a system

Some diagnostics run where no verbose keyword is available: the checks in the System constructor, callback affects, remake, and IfLifting and other additional_passes. These use the verbosity that is stored in the metadata of the system. Set it with the verbose keyword of System. The author of a connector can also silence the unbalanced_connector check, which mtkcompile does once for each unbalanced connector type, for that connector:

@connector function Pin(; name)
    @variables v(t) w(t) i(t) [connect = Flow]
    System(Equation[], t, [v, w, i], []; name,
        verbose = MTKVerbosity(unbalanced_connector = Silent))
end

mtkcompile stores its own verbose value on the system that it returns, so remake on a problem of mtkcompile(sys; verbose = false) is also quiet. If mtkcompile gets no verbose, it uses the value stored on its input system. Other functions that have their own verbose keyword, such as problem constructors and substitute, do not read the stored value. A custom pass can read the stored value with getmetadata(sys, ModelingToolkitBase.MTKVerbosityCtx, MTKVerbosity()).

ModelingToolkitBase.MTKVerbosity — Type
MTKVerbosity(; preset = nothing, kwargs...)
MTKVerbosity(preset::SciMLLogging.AbstractVerbosityPreset)

A SciMLLogging.jl verbosity specifier controlling diagnostic output from ModelingToolkit: the mtkcompile pipeline, problem construction and initialization, and analysis utilities such as linearization_function and analyze_initialization_jacobian.

Pass it via the verbose keyword. mtkcompile and the analysis utilities consume it directly. SciMLBase.*Problem constructors share the verbose keyword with the solver (problem keyword arguments are forwarded to solve), routed by type:

  • an MTKVerbosity sets ModelingToolkit's verbosity, and its solver sub-specifier for the problem type (see below) is placed in prob.kwargs. For example, an ODEProblem gets verbose = v.de_verbosity;
  • a SciMLLogging preset (None(), Minimal(), Standard(), Detailed(), All()) sets ModelingToolkit's verbosity and is forwarded to the solver, which accepts presets for its own verbosity specifier;
  • a Bool maps to Standard()/None() for ModelingToolkit and is forwarded to the solver unchanged;
  • any other value (e.g. a solver-specific specifier such as DEVerbosity) leaves ModelingToolkit at its default and is forwarded unchanged.

Each toggle is a SciMLLogging.MessageLevel (Silent, DebugLevel, InfoLevel, WarnLevel, ErrorLevel). Note that raising a toggle to ErrorLevel makes the corresponding message throw an error.

Toggles

Compilation (group compilation):

  • state_priority_tie: multiple variables in an alias group are tied for the highest state_priority during alias elimination. WarnLevel by default.
  • underconstrained_variables: report variables found to be underconstrained during alias elimination. Silent by default; InfoLevel at Detailed/All.
  • if_lifting_condition_grammar: the IfLifting pass encountered a condition outside the limited conditional grammar it supports and skipped it. WarnLevel by default.
  • observed_equation_cycle: print the smallest cycle among observed equations when topological sorting fails (the failure itself is always an error). Silent by default; InfoLevel at Detailed/All.

Initialization (group initialization):

  • singular_initialization: the initialization system is structurally singular. WarnLevel by default.
  • overdetermined_initialization / underdetermined_initialization: the initialization system is over/underdetermined and will be solved in a least-squares sense. WarnLevel by default.
  • scc_initialization_unavailable: SCCNonlinearProblem-based initialization requires split = true. WarnLevel by default.

Problem construction (group problem_construction):

  • cyclic_dependency: report cycles among the initial conditions of unknowns or parameters. Silent by default; WarnLevel at Detailed/All.
  • overdetermined_constraints: a BVProblem or dynamic optimization problem has more constraints and initial conditions than states. WarnLevel by default.
  • missing_scc_schedule: a simplified system unexpectedly lacks a tearing schedule when constructing an SCCNonlinearProblem. WarnLevel by default.
  • dynamic_opt_time_grid: a dt or steps argument to a dynamic optimization problem is ignored for the given time span. WarnLevel by default.
  • imperative_affect_specification: an ImperativeAffect of a callback has a duplicate name, an expression that cannot be modified, or a symbol that is both observed and modified. WarnLevel by default.
  • parameter_not_in_system: remake (or another remake_buffer call) got a symbolic variable that is not a parameter of the system, and ignored it. WarnLevel by default.

Analysis (group analysis):

  • empty_operating_point: an empty operating point was passed to linearization_function. WarnLevel by default.
  • initialization_analysis: the report of analyze_initialization_jacobian. InfoLevel by default.
  • no_unbound_inputs: generate_control_function found no unbound inputs. WarnLevel by default.
  • analysis_point_causality: an analysis-point connect looks like it has reversed causality (input where an output is expected, or vice versa). WarnLevel by default.

System construction (group system_construction):

  • independent_variable_not_parameter: the independent variable of a System is not defined with @independent_variables. WarnLevel by default.
  • constraint_variable_without_argument: a constraint or cost uses an unknown with no argument, so it applies to the full time span. WarnLevel by default.
  • unbalanced_connector: a @connector has a different number of flow variables and regular variables. mtkcompile reports it once for each connector type. The verbose of mtkcompile and the verbosity stored on the connector must both enable it. WarnLevel by default.
  • affect_default_independent_variable: an affect has no independent variable, so it uses t_nounits. WarnLevel by default.
  • substitute_skips_events: substitute(sys, rules) changed a system that has events, but it does not change the events. WarnLevel by default. Set it with the verbose keyword of substitute.

Verbosity stored on a system

Some diagnostics run where no verbose keyword is available: the checks in the System constructor, callback affects, and remake. These use the verbosity that is stored in the metadata of the system. The verbose keyword of System sets it, and mtkcompile stores its own verbose value on the system that it returns. If mtkcompile gets no verbose, it uses the value stored on its input system. Other functions that have their own verbose keyword (problem constructors, substitute, ...) do not read the stored value.

Sub-specifiers

  • initialization_verbosity: the verbosity forwarded to the solve of the initialization NonlinearProblem/SCCNonlinearProblem. Accepts a SciMLLogging preset or a solver verbosity specifier (e.g. NonlinearVerbosity). Defaults to Minimal() (None() under the None preset), so inner linear-solver chatter stays off during initialization. A preset also applies to a linear initialization problem; a NonlinearVerbosity does not, and that problem uses linear_verbosity instead. The ModelingToolkit diagnostics of the initialization problem use the toggles of the outer MTKVerbosity.

The other sub-specifiers hold the verbosity of the solver for each problem family. A problem constructor that gets an MTKVerbosity forwards the matching field to solve. Each field accepts a SciMLLogging preset or the solver's own specifier, and each preset of MTKVerbosity sets them to the same preset (for example, MTKVerbosity(None()) has de_verbosity = None()).

FieldProblem typesSolver specifier
de_verbosityODEProblem, DAEProblem, SDEProblem, DDEProblem, SDDEProblem, DiscreteProblem, ImplicitDiscreteProblem, JumpProblemDEVerbosity (DiffEqBase)
nonlinear_verbosityNonlinearProblem, NonlinearLeastSquaresProblem, IntervalNonlinearProblem, SteadyStateProblem, HomotopyProblemNonlinearVerbosity (NonlinearSolveBase)
linear_verbosityLinearProblemLinearVerbosity (LinearSolve)
optimization_verbosityOptimizationProblemOptimizationVerbosity (OptimizationBase)
bvp_verbosityBVProblemBVPVerbosity (BoundaryValueDiffEqCore)

A SteadyStateProblem solved with DynamicSS does not give nonlinear_verbosity to the ODE solve; use the odesolve_kwargs of DynamicSS for that solve. The dynamic optimization problems (for example JuMPDynamicOptProblem) store no solver verbosity, because their solve methods take their own verbose::Bool.

The solver specifiers have their own sub-specifiers. For example, the linear solves inside an ODE solve are controlled by the linear_verbosity of the DEVerbosity, not by the linear_verbosity field of MTKVerbosity:

MTKVerbosity(de_verbosity = DEVerbosity(linear_verbosity = SciMLLogging.None()))

Deprecated keyword equivalents

These boolean keywords are deprecated in favor of verbose. When explicitly passed, they emit a deprecation warning and override the corresponding toggles:

Deprecated keywordToggles overridden
warn_initialize_determinedsingular_initialization, overdetermined_initialization, underdetermined_initialization
warn_cyclic_dependencycyclic_dependency
warn_empty_op (linearization_function)empty_operating_point
print_underconstrained_variables (mtkcompile)underconstrained_variables (true sets InfoLevel)

Examples

using ModelingToolkit
using SciMLLogging: SciMLLogging, Silent, InfoLevel

mtkcompile(sys)                                                # Standard verbosity
mtkcompile(sys; verbose = false)                               # silence everything
ODEProblem(sys, op, tspan; verbose = SciMLLogging.None())      # quiet, MTK and solver
ODEProblem(sys, op, tspan; verbose = MTKVerbosity(initialization = Silent))
mtkcompile(sys; verbose = MTKVerbosity(compilation = InfoLevel))
source

Error message guidance

Errors raised while building a problem describe what went wrong and then, where it is useful, how to fix it in terms of the ModelingToolkit API — which keyword argument to pass, or where in the system to supply a value. Front ends which present a modelling language of their own can leave that part out, since advice to call ODEProblem or to pass initialization_eqs would send their users looking for something their language does not have. The description of what went wrong is unaffected.

ModelingToolkit.show_api_guidance!(false)
Experimental

show_api_guidance! is experimental and unsupported. It may change or be removed in any release, without a breaking version bump. Verbosity across the SciML ecosystem is moving to SciMLLogging.jl, which ModelingToolkit has begun adopting via MTKVerbosity; this setting is expected to be absorbed into that mechanism. That will be the supported way to control this.