Skip to content

Commit 1df65e4

Browse files
fix: appropriately toterm defaults when creating DiscreteProblem
1 parent 5963a5b commit 1df65e4

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/systems/problem_utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1309,7 +1309,7 @@ function process_SciMLProblem(
13091309

13101310
check_inputmap_keys(sys, op)
13111311

1312-
defs = add_toterms(recursive_unwrap(defaults(sys)))
1312+
defs = add_toterms(recursive_unwrap(defaults(sys)); replace = is_discrete_system(sys))
13131313
kwargs = NamedTuple(kwargs)
13141314

13151315
if eltype(eqs) <: Equation

test/discrete_system.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,17 @@ end
274274
sol = solve(prob, FunctionMap())
275275
@test sol[[x..., y...], end] == 8ones(4)
276276
end
277+
278+
@testset "Defaults are totermed appropriately" begin
279+
@parameters σ ρ β q
280+
@variables x(t) y(t) z(t)
281+
k = ShiftIndex(t)
282+
@mtkcompile discsys = System(
283+
[x ~ x(k - 1) * ρ + y(k - 2), y ~ y(k - 1) * σ - z(k - 2),
284+
z ~ z(k - 1) * β + x(k - 2)],
285+
t; defaults = [x => 1.0, y => 1.0, z => 1.0, x(k - 1) => 1.0,
286+
y(k - 1) => 1.0, z(k - 1) => 1.0])
287+
discprob = DiscreteProblem(discsys, p, (0, 10))
288+
sol = solve(discprob, FunctionMap())
289+
@test SciMLBase.successful_retcode(sol)
290+
end

0 commit comments

Comments
 (0)