Skip to content

Commit bdc1eba

Browse files
TEMP COMMIT: add debug statements
1 parent a99c0d8 commit bdc1eba

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

lib/ModelingToolkitBase/src/utils.jl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,8 @@ function (::OperatorIsAtomic{O})(ex::SymbolicT) where {O}
767767
end
768768
end
769769

770+
__DEBUG_CV::Bool = false
771+
770772
"""
771773
$(TYPEDSIGNATURES)
772774
@@ -782,11 +784,13 @@ can be checked using `check_scope_depth`.
782784
This function should return `nothing`.
783785
"""
784786
function collect_vars!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{SymbolicT}, expr::SymbolicT, iv::Union{SymbolicT, Nothing}, ::Type{op} = Symbolics.Operator; depth = 0) where {op}
787+
__DEBUG_CV && @info "collect_vars!" expr
785788
Moshi.Match.@match expr begin
786789
BSImpl.Const() => return
787790
BSImpl.Sym() => return collect_var!(unknowns, parameters, expr, iv; depth)
788791
_ => nothing
789792
end
793+
__DEBUG_CV && @info "No early exit"
790794
vars = OrderedSet{SymbolicT}()
791795
SU.search_variables!(vars, expr; is_atomic = OperatorIsAtomic{op}())
792796
for var in vars
@@ -799,6 +803,7 @@ function collect_vars!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{S
799803
_ => collect_var!(unknowns, parameters, var, iv; depth)
800804
end
801805
end
806+
__DEBUG_CV && @info "Exit collect_vars!" expr
802807
return nothing
803808
end
804809

@@ -846,6 +851,7 @@ end
846851
function collect_vars!(
847852
unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{SymbolicT}, expr, iv::Union{SymbolicT, Nothing}, ::Type{op} = Symbolics.Operator; depth = 0
848853
) where {op}
854+
__DEBUG_CV && @info "Fallback" expr
849855
return nothing
850856
end
851857

@@ -857,6 +863,7 @@ Add `var` to `unknowns` or `parameters` appropriately, and search through any ex
857863
in known metadata of `var` using `collect_vars!`.
858864
"""
859865
function collect_var!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{SymbolicT}, var::SymbolicT, iv::Union{SymbolicT, Nothing}; depth = 0)
866+
__DEBUG_CV && @info "Enter" var
860867
isequal(var, iv) && return nothing
861868
if Symbolics.iswrapped(var)
862869
error(
@@ -872,7 +879,10 @@ function collect_var!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{Sy
872879
)
873880
end
874881
arr, isarr = split_indexed_var(var)
875-
check_scope_depth(getmetadata(arr, SymScope, LocalScope())::AllScopes, depth) || return nothing
882+
if !check_scope_depth(getmetadata(arr, SymScope, LocalScope())::AllScopes, depth)
883+
__DEBUG_CV && @info "Exit scope" var
884+
return nothing
885+
end
876886
var = setmetadata(var, SymScope, LocalScope())
877887
if iscalledparameter(var)
878888
callable = getcalledparameter(var)
@@ -885,6 +895,7 @@ function collect_var!(unknowns::OrderedSet{SymbolicT}, parameters::OrderedSet{Sy
885895
end
886896
# Add also any parameters that appear only as defaults in the var
887897
if hasdefault(var) && (def = getdefault(var)) !== missing
898+
__DEBUG_CV && @info "Found default" def
888899
if def isa SymbolicT
889900
collect_vars!(unknowns, parameters, def, iv)
890901
elseif def isa Num

lib/ModelingToolkitBase/test/extensions/dynamic_optimization.jl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,16 @@ end
328328
D(v) ~ (T_interp(t) - drag(h, v)) / m - gravity(h),
329329
D(m) ~ -T_interp(t) / c,
330330
]
331-
@mtkcompile rocket_ode = System(eqs, t)
331+
ModelingToolkitBase.__DEBUG_CV = true
332+
rocket_ode = try
333+
@mtkcompile rocket_ode = System(eqs, t)
334+
catch
335+
rethrow()
336+
finally
337+
ModelingToolkitBase.__DEBUG_CV = false
338+
end
339+
@info Symbolics.getdefaultval(m)
340+
@info parameters(rocket_ode)
332341
interpmap = Dict(T_interp => ctrl_to_spline(jsol.input_sol, CubicSpline))
333342
u0map = [h => h₀, v => 0]
334343
pmap = [

lib/ModelingToolkitBase/test/odesystem.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ Set(unknowns(new_sys2)) == Set(
850850

851851
let # Issue https://github.com/SciML/ModelingToolkit.jl/issues/2322
852852
@parameters a = 10 b = a / 10 c = a / 20
853-
853+
@info Symbolics.getdefaultval(b)
854854
Dt = D
855855

856856
@variables x(t) = 1 z(t)
@@ -859,9 +859,14 @@ let # Issue https://github.com/SciML/ModelingToolkit.jl/issues/2322
859859
Dt(x) ~ -b * (x - z),
860860
0 ~ z - c * x,
861861
]
862-
863-
sys = System(eqs, t; name = :kjshdf)
864-
862+
ModelingToolkitBase.__DEBUG_CV = true
863+
sys = try
864+
System(eqs, t; name = :kjshdf)
865+
catch
866+
rethrow()
867+
finally
868+
ModelingToolkitBase.__DEBUG_CV = false
869+
end
865870
sys_simp = mtkcompile(sys)
866871

867872
@test a keys(ModelingToolkitBase.initial_conditions(sys_simp))

0 commit comments

Comments
 (0)