Skip to content

Commit 604fde8

Browse files
authored
Merge pull request #1549 from SciML/myb/ob
Scalarize in observed function building
2 parents 24a3fd2 + 6f1c63c commit 604fde8

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

src/structural_transformation/codegen.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ function build_observed_function(
386386
if (isscalar = !(ts isa AbstractVector))
387387
ts = [ts]
388388
end
389-
ts = Symbolics.scalarize.(value.(ts))
389+
ts = unwrap.(Symbolics.scalarize(ts))
390390

391391
vars = Set()
392392
sys = state.sys

src/systems/diffeqs/odesystem.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ function build_explicit_observed_function(
270270
if (isscalar = !(ts isa AbstractVector))
271271
ts = [ts]
272272
end
273-
ts = Symbolics.scalarize.(value.(ts))
273+
ts = unwrap.(Symbolics.scalarize(ts))
274274

275275
vars = Set()
276276
foreach(Base.Fix1(vars!, vars), ts)

test/nonlinearsystem.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,3 +177,20 @@ eq = [
177177
]
178178
@named sys = ODESystem(eq)
179179
@test length(equations(structural_simplify(sys))) == 0
180+
181+
#1504
182+
let
183+
@variables u[1:4]
184+
185+
eqs = [u[1] ~ 1,
186+
u[2] ~ 1,
187+
u[3] ~ 1,
188+
u[4] ~ 1]
189+
190+
sys = NonlinearSystem(eqs, collect(u[1:4]), Num[], defaults=Dict([]), name=:test)
191+
prob = NonlinearProblem(sys, ones(length(sys.states)))
192+
193+
sol = NonlinearSolve.solve(prob, NewtonRaphson())
194+
195+
@test sol[u] ones(4)
196+
end

0 commit comments

Comments
 (0)