@@ -11,7 +11,7 @@ struct SymbolicAffect
1111end
1212
1313function SymbolicAffect (affect:: Vector{Equation} ; alg_eqs = Equation[],
14- discrete_parameters = infer_discrete_parameters (affect) , kwargs... )
14+ discrete_parameters = Any[] , kwargs... )
1515 if ! (discrete_parameters isa AbstractVector)
1616 discrete_parameters = Any[discrete_parameters]
1717 elseif ! (discrete_parameters isa Vector{Any})
@@ -31,38 +31,6 @@ function Symbolics.fast_substitute(aff::SymbolicAffect, rules)
3131 map (substituter, aff. discrete_parameters))
3232end
3333
34- # The discrete parameters (i.e. parameters that are updated in an event) can be inferred as
35- # those that occur in an affect equation *outside* of a `Pre(...)` operator.
36- function infer_discrete_parameters (affects)
37- discrete_parameters = Set ()
38- for affect in affects
39- if affect isa Equation
40- infer_discrete_parameters! (discrete_parameters, affect. lhs)
41- infer_discrete_parameters! (discrete_parameters, affect. rhs)
42- elseif affect isa NamedTuple
43- haskey (affect, :modified ) && union! (discrete_parameters, affect. modified)
44- end
45- end
46- return collect (discrete_parameters)
47- end
48-
49- # Find all `expr`'s parameters that occur *outside* of a Pre(...) statement. Add these to `discrete_parameters`.
50- function infer_discrete_parameters! (discrete_parameters, expr)
51- expr_pre_removed = Symbolics. replacenode (expr, precall_to_1)
52- dynamic_symvars = Symbolics. get_variables (expr_pre_removed)
53- # Change this coming line to a Symbolic append type of thing.
54- union! (discrete_parameters, filter (ModelingToolkit. isparameter, dynamic_symvars))
55- end
56-
57- # When updating vector variables, the affect side can be a vector.
58- function infer_discrete_parameters! (discrete_parameters, expr_vec:: Vector )
59- foreach (expr -> infer_discrete_parameters! (discrete_parameters, expr), expr_vec)
60- end
61-
62- # Functions for replacing a Pre-call with a `1.0` (removing its content from an expression).
63- is_precall (expr) = iscall (expr) ? operation (expr) isa Pre : false
64- precall_to_1 (expr) = (is_precall (expr) ? 1.0 : expr)
65-
6634struct AffectSystem
6735 """ The internal implicit discrete system whose equations are solved to obtain values after the affect."""
6836 system:: AbstractSystem
0 commit comments