@@ -23,7 +23,7 @@ struct ImplicitDiscreteSystem <: AbstractTimeDependentSystem
23
23
structurally identical.
24
24
"""
25
25
tag:: UInt
26
- """ The differential equations defining the discrete system."""
26
+ """ The difference equations defining the discrete system."""
27
27
eqs:: Vector{Equation}
28
28
""" Independent variable."""
29
29
iv:: BasicSymbolic{Real}
@@ -48,10 +48,10 @@ struct ImplicitDiscreteSystem <: AbstractTimeDependentSystem
48
48
"""
49
49
The internal systems. These are required to have unique names.
50
50
"""
51
- systems:: Vector{DiscreteSystem }
51
+ systems:: Vector{ImplicitDiscreteSystem }
52
52
"""
53
53
The default values to use when initial conditions and/or
54
- parameters are not supplied in `DiscreteProblem `.
54
+ parameters are not supplied in `ImplicitDiscreteProblem `.
55
55
"""
56
56
defaults:: Dict
57
57
"""
@@ -136,11 +136,11 @@ end
136
136
137
137
"""
138
138
$(TYPEDSIGNATURES)
139
- Constructs a DiscreteSystem .
139
+ Constructs a ImplicitDiscreteSystem .
140
140
"""
141
141
function ImplicitDiscreteSystem (eqs:: AbstractVector{<:Equation} , iv, dvs, ps;
142
142
observed = Num[],
143
- systems = DiscreteSystem [],
143
+ systems = ImplicitDiscreteSystem [],
144
144
tspan = nothing ,
145
145
name = nothing ,
146
146
description = " " ,
@@ -162,12 +162,12 @@ function ImplicitDiscreteSystem(eqs::AbstractVector{<:Equation}, iv, dvs, ps;
162
162
dvs′ = value .(dvs)
163
163
ps′ = value .(ps)
164
164
if any (hasderiv, eqs) || any (hashold, eqs) || any (hassample, eqs) || any (hasdiff, eqs)
165
- error (" Equations in a `DiscreteSystem ` can only have `Shift` operators." )
165
+ error (" Equations in a `ImplicitDiscreteSystem ` can only have `Shift` operators." )
166
166
end
167
167
if ! (isempty (default_u0) && isempty (default_p))
168
168
Base. depwarn (
169
169
" `default_u0` and `default_p` are deprecated. Use `defaults` instead." ,
170
- :DiscreteSystem , force = true )
170
+ :ImplicitDiscreteSystem , force = true )
171
171
end
172
172
173
173
defaults = Dict {Any, Any} (todict (defaults))
@@ -190,7 +190,7 @@ function ImplicitDiscreteSystem(eqs::AbstractVector{<:Equation}, iv, dvs, ps;
190
190
if length (unique (sysnames)) != length (sysnames)
191
191
throw (ArgumentError (" System names must be unique." ))
192
192
end
193
- DiscreteSystem (Threads. atomic_add! (SYSTEM_COUNT, UInt (1 )),
193
+ ImplicitDiscreteSystem (Threads. atomic_add! (SYSTEM_COUNT, UInt (1 )),
194
194
eqs, iv′, dvs′, ps′, tspan, var_to_name, observed, name, description, systems,
195
195
defaults, guesses, initializesystem, initialization_eqs, preface, connector_type,
196
196
parameter_dependencies, metadata, gui_metadata, kwargs... )
@@ -206,7 +206,7 @@ function ImplicitDiscreteSystem(eqs, iv; kwargs...)
206
206
collect_vars! (allunknowns, ps, eq, iv; op = Shift)
207
207
if iscall (eq. lhs) && operation (eq. lhs) isa Shift
208
208
isequal (iv, operation (eq. lhs). t) ||
209
- throw (ArgumentError (" A DiscreteSystem can only have one independent variable." ))
209
+ throw (ArgumentError (" An ImplicitDiscreteSystem can only have one independent variable." ))
210
210
eq. lhs in diffvars &&
211
211
throw (ArgumentError (" The shift variable $(eq. lhs) is not unique in the system of equations." ))
212
212
push! (diffvars, eq. lhs)
@@ -233,16 +233,16 @@ function ImplicitDiscreteSystem(eqs, iv; kwargs...)
233
233
push! (new_ps, p)
234
234
end
235
235
end
236
- return DiscreteSystem (eqs, iv,
236
+ return ImplicitDiscreteSystem (eqs, iv,
237
237
collect (allunknowns), collect (new_ps); kwargs... )
238
238
end
239
239
240
- function flatten (sys:: DiscreteSystem , noeqs = false )
240
+ function flatten (sys:: ImplicitDiscreteSystem , noeqs = false )
241
241
systems = get_systems (sys)
242
242
if isempty (systems)
243
243
return sys
244
244
else
245
- return DiscreteSystem (noeqs ? Equation[] : equations (sys),
245
+ return ImplicitDiscreteSystem (noeqs ? Equation[] : equations (sys),
246
246
get_iv (sys),
247
247
unknowns (sys),
248
248
parameters (sys),
@@ -258,14 +258,14 @@ function flatten(sys::DiscreteSystem, noeqs = false)
258
258
end
259
259
260
260
function generate_function (
261
- sys:: DiscreteSystem , dvs = unknowns (sys), ps = parameters (sys); wrap_code = identity, kwargs... )
261
+ sys:: ImplicitDiscreteSystem , dvs = unknowns (sys), ps = parameters (sys); wrap_code = identity, kwargs... )
262
262
exprs = [eq. rhs for eq in equations (sys)]
263
263
wrap_code = wrap_code .∘ wrap_array_vars (sys, exprs) .∘
264
264
wrap_parameter_dependencies (sys, false )
265
265
generate_custom_function (sys, exprs, dvs, ps; wrap_code, kwargs... )
266
266
end
267
267
268
- function shift_u0map_forward (sys:: DiscreteSystem , u0map, defs)
268
+ function shift_u0map_forward (sys:: ImplicitDiscreteSystem , u0map, defs)
269
269
iv = get_iv (sys)
270
270
updated = AnyDict ()
271
271
for k in collect (keys (u0map))
291
291
Generates an ImplicitDiscreteProblem from an ImplicitDiscreteSystem.
292
292
"""
293
293
function SciMLBase. ImplicitDiscreteProblem (
294
- sys:: DiscreteSystem , u0map = [], tspan = get_tspan (sys),
294
+ sys:: ImplicitDiscreteSystem , u0map = [], tspan = get_tspan (sys),
295
295
parammap = SciMLBase. NullParameters ();
296
296
eval_module = @__MODULE__ ,
297
297
eval_expression = false ,
@@ -309,7 +309,7 @@ function SciMLBase.ImplicitDiscreteProblem(
309
309
u0map = to_varmap (u0map, dvs)
310
310
u0map = shift_u0map_forward (sys, u0map, defaults (sys))
311
311
f, u0, p = process_SciMLProblem (
312
- DiscreteFunction , sys, u0map, parammap; eval_expression, eval_module)
312
+ ImplicitDiscreteFunction , sys, u0map, parammap; eval_expression, eval_module)
313
313
u0 = f (u0, p, tspan[1 ])
314
314
ImplicitDiscreteProblem (f, u0, tspan, p; kwargs... )
315
315
end
@@ -348,7 +348,7 @@ function SciMLBase.ImplicitDiscreteFunction{iip, specialize}(
348
348
349
349
if specialize === SciMLBase. FunctionWrapperSpecialize && iip
350
350
if u0 === nothing || p === nothing || t === nothing
351
- error (" u0, p, and t must be specified for FunctionWrapperSpecialize on DiscreteFunction ." )
351
+ error (" u0, p, and t must be specified for FunctionWrapperSpecialize on ImplicitDiscreteFunction ." )
352
352
end
353
353
f = SciMLBase. wrapfun_iip (f, (u0, u0, p, t))
354
354
end
@@ -395,7 +395,7 @@ function ImplicitDiscreteFunctionExpr{iip}(sys::ImplicitDiscreteSystem, dvs = un
395
395
396
396
ex = quote
397
397
$ _f
398
- DiscreteFunction {$iip} ($ fsym)
398
+ ImplicitDiscreteFunction {$iip} ($ fsym)
399
399
end
400
400
! linenumbers ? Base. remove_linenums! (ex) : ex
401
401
end
0 commit comments