Skip to content

Commit 7393a3d

Browse files
Merge pull request #3746 from AayushSabharwal/as/discsys-toterm
fix: appropriately toterm defaults when creating `DiscreteProblem`
2 parents c38ab96 + 829a8b8 commit 7393a3d

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-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: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,21 @@ 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+
p ==> 28.0,
283+
ρ => 10.0,
284+
β => 8 / 3]
285+
286+
@mtkcompile discsys = System(
287+
[x ~ x(k - 1) * ρ + y(k - 2), y ~ y(k - 1) * σ - z(k - 2),
288+
z ~ z(k - 1) * β + x(k - 2)],
289+
t; defaults = [x => 1.0, y => 1.0, z => 1.0, x(k - 1) => 1.0,
290+
y(k - 1) => 1.0, z(k - 1) => 1.0])
291+
discprob = DiscreteProblem(discsys, p, (0, 10))
292+
sol = solve(discprob, FunctionMap())
293+
@test SciMLBase.successful_retcode(sol)
294+
end

0 commit comments

Comments
 (0)