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.0Additionally, 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.
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:
| Toggle | Default | Controls |
|---|---|---|
state_priority_tie | WarnLevel | Tied state_priority in an alias group during alias elimination |
underconstrained_variables | Silent | Report of underconstrained variables found during alias elimination |
if_lifting_condition_grammar | WarnLevel | IfLifting skipping a condition outside its supported grammar |
observed_equation_cycle | Silent | Printing the smallest cycle when sorting observed equations fails |
singular_initialization | WarnLevel | Structurally singular initialization system |
overdetermined_initialization | WarnLevel | Overdetermined initialization system (least-squares fallback) |
underdetermined_initialization | WarnLevel | Underdetermined initialization system (least-squares fallback) |
scc_initialization_unavailable | WarnLevel | SCCNonlinearProblem initialization requires split = true |
cyclic_dependency | Silent | Cycles among initial conditions of unknowns/parameters |
overdetermined_constraints | WarnLevel | Overdetermined BVProblem/dynamic-optimization constraints |
missing_scc_schedule | WarnLevel | Simplified system unexpectedly missing a tearing schedule |
dynamic_opt_time_grid | WarnLevel | Ignored dt/steps argument in dynamic optimization |
empty_operating_point | WarnLevel | Empty operating point passed to linearization_function |
initialization_analysis | InfoLevel | The report of analyze_initialization_jacobian |
no_unbound_inputs | WarnLevel | generate_control_function found no unbound inputs |
analysis_point_causality | WarnLevel | Reversed causality in an analysis-point connect |
imperative_affect_specification | WarnLevel | Duplicate, unassignable, or observed-and-modified ImperativeAffect symbols |
parameter_not_in_system | WarnLevel | remake with a symbol that is not a parameter of the system |
independent_variable_not_parameter | WarnLevel | Independent variable not defined with @independent_variables |
constraint_variable_without_argument | WarnLevel | Constraint or cost with an unknown that has no argument |
unbalanced_connector | WarnLevel | mtkcompile: a connector with different numbers of flow and regular variables |
affect_default_independent_variable | WarnLevel | Affect with no independent variable, so it uses t_nounits |
substitute_skips_events | WarnLevel | substitute 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
MTKVerbosityapplies to ModelingToolkit, and its solver sub-specifier for the problem type is forwarded to the solver (de_verbosityfor anODEProblem,nonlinear_verbosityfor aNonlinearProblem, ...); - a preset or
Boolapplies 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))
endmtkcompile 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
MTKVerbositysets ModelingToolkit's verbosity, and its solver sub-specifier for the problem type (see below) is placed inprob.kwargs. For example, anODEProblemgetsverbose = v.de_verbosity; - a
SciMLLoggingpreset (None(),Minimal(),Standard(),Detailed(),All()) sets ModelingToolkit's verbosity and is forwarded to the solver, which accepts presets for its own verbosity specifier; - a
Boolmaps toStandard()/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 higheststate_priorityduring alias elimination.WarnLevelby default.underconstrained_variables: report variables found to be underconstrained during alias elimination.Silentby default;InfoLevelatDetailed/All.if_lifting_condition_grammar: theIfLiftingpass encountered a condition outside the limited conditional grammar it supports and skipped it.WarnLevelby default.observed_equation_cycle: print the smallest cycle among observed equations when topological sorting fails (the failure itself is always an error).Silentby default;InfoLevelatDetailed/All.
Initialization (group initialization):
singular_initialization: the initialization system is structurally singular.WarnLevelby default.overdetermined_initialization/underdetermined_initialization: the initialization system is over/underdetermined and will be solved in a least-squares sense.WarnLevelby default.scc_initialization_unavailable:SCCNonlinearProblem-based initialization requiressplit = true.WarnLevelby default.
Problem construction (group problem_construction):
cyclic_dependency: report cycles among the initial conditions of unknowns or parameters.Silentby default;WarnLevelatDetailed/All.overdetermined_constraints: aBVProblemor dynamic optimization problem has more constraints and initial conditions than states.WarnLevelby default.missing_scc_schedule: a simplified system unexpectedly lacks a tearing schedule when constructing anSCCNonlinearProblem.WarnLevelby default.dynamic_opt_time_grid: adtorstepsargument to a dynamic optimization problem is ignored for the given time span.WarnLevelby default.imperative_affect_specification: anImperativeAffectof a callback has a duplicate name, an expression that cannot be modified, or a symbol that is both observed and modified.WarnLevelby default.parameter_not_in_system:remake(or anotherremake_buffercall) got a symbolic variable that is not a parameter of the system, and ignored it.WarnLevelby default.
Analysis (group analysis):
empty_operating_point: an empty operating point was passed tolinearization_function.WarnLevelby default.initialization_analysis: the report ofanalyze_initialization_jacobian.InfoLevelby default.no_unbound_inputs:generate_control_functionfound no unbound inputs.WarnLevelby default.analysis_point_causality: an analysis-pointconnectlooks like it has reversed causality (input where an output is expected, or vice versa).WarnLevelby default.
System construction (group system_construction):
independent_variable_not_parameter: the independent variable of aSystemis not defined with@independent_variables.WarnLevelby default.constraint_variable_without_argument: a constraint or cost uses an unknown with no argument, so it applies to the full time span.WarnLevelby default.unbalanced_connector: a@connectorhas a different number of flow variables and regular variables.mtkcompilereports it once for each connector type. Theverboseofmtkcompileand the verbosity stored on the connector must both enable it.WarnLevelby default.affect_default_independent_variable: an affect has no independent variable, so it usest_nounits.WarnLevelby default.substitute_skips_events:substitute(sys, rules)changed a system that has events, but it does not change the events.WarnLevelby default. Set it with theverbosekeyword ofsubstitute.
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 initializationNonlinearProblem/SCCNonlinearProblem. Accepts aSciMLLoggingpreset or a solver verbosity specifier (e.g.NonlinearVerbosity). Defaults toMinimal()(None()under theNonepreset), so inner linear-solver chatter stays off during initialization. A preset also applies to a linear initialization problem; aNonlinearVerbositydoes not, and that problem useslinear_verbosityinstead. The ModelingToolkit diagnostics of the initialization problem use the toggles of the outerMTKVerbosity.
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()).
| Field | Problem types | Solver specifier |
|---|---|---|
de_verbosity | ODEProblem, DAEProblem, SDEProblem, DDEProblem, SDDEProblem, DiscreteProblem, ImplicitDiscreteProblem, JumpProblem | DEVerbosity (DiffEqBase) |
nonlinear_verbosity | NonlinearProblem, NonlinearLeastSquaresProblem, IntervalNonlinearProblem, SteadyStateProblem, HomotopyProblem | NonlinearVerbosity (NonlinearSolveBase) |
linear_verbosity | LinearProblem | LinearVerbosity (LinearSolve) |
optimization_verbosity | OptimizationProblem | OptimizationVerbosity (OptimizationBase) |
bvp_verbosity | BVProblem | BVPVerbosity (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 keyword | Toggles overridden |
|---|---|
warn_initialize_determined | singular_initialization, overdetermined_initialization, underdetermined_initialization |
warn_cyclic_dependency | cyclic_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))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)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.