@@ -100,7 +100,7 @@ function gen_nlsolve(eqs, vars, u0map::AbstractDict, assignments, deps, var2assi
100
100
length (eqs) == length (vars) || throw (ArgumentError (" vars must be of the same length as the number of equations to find the roots of" ))
101
101
rhss = map (x-> x. rhs, eqs)
102
102
# We use `vars` instead of `graph` to capture parameters, too.
103
- paramset = Set (Iterators. flatten (ModelingToolkit. vars (r) for r in rhss))
103
+ paramset = Set {Any} (Iterators. flatten (ModelingToolkit. vars (r) for r in rhss))
104
104
105
105
init_assignments = [var2assignment[p] for p in paramset if haskey (var2assignment, p)]
106
106
tmp = [init_assignments]
@@ -109,8 +109,8 @@ function gen_nlsolve(eqs, vars, u0map::AbstractDict, assignments, deps, var2assi
109
109
init_assignments = next_assignments
110
110
push! (tmp, init_assignments)
111
111
end
112
- needed_assignments = mapreduce (i-> assignments[i], vcat, reverse (tmp))
113
- extravars = Set (Iterators. flatten (ModelingToolkit. vars (r. rhs) for r in needed_assignments))
112
+ needed_assignments = mapreduce (i-> assignments[i], vcat, unique ( reverse (tmp) ))
113
+ extravars = Set {Any} (Iterators. flatten (ModelingToolkit. vars (r. rhs) for r in needed_assignments))
114
114
union! (paramset, extravars)
115
115
# these are not the subject of the root finding
116
116
setdiff! (paramset, vars); setdiff! (paramset, map (a-> a. lhs, needed_assignments))
0 commit comments