Skip to content

Commit d3aa8bb

Browse files
committed
add fix for extending a Nonlinear system with no independent variables
add fix for extending a Nonlinear system with no independent variables fix incorrect issue number in comment
1 parent 1712ac2 commit d3aa8bb

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/systems/abstractsystem.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,12 @@ by default.
826826
function extend(sys::AbstractSystem, basesys::AbstractSystem; name::Symbol=nameof(sys))
827827
T = SciMLBase.parameterless_type(basesys)
828828
iv = independent_variable(basesys)
829-
sys = convert_system(T, sys, iv)
829+
if iv === nothing
830+
sys = convert_system(T, sys)
831+
else
832+
sys = convert_system(T, sys, iv)
833+
end
834+
830835
eqs = union(equations(basesys), equations(sys))
831836
sts = union(states(basesys), states(sys))
832837
ps = union(parameters(basesys), parameters(sys))

test/nonlinearsystem.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,24 @@ np = NonlinearProblem(ns, [0,0,0], [1,2,3], jac=true, sparse=true)
136136
end
137137
issue819()
138138
end
139+
140+
# issue #1115
141+
@testset "Extending a NonlinearSystem with no iv" begin
142+
@parameters a b
143+
@variables x y
144+
eqs1 = [
145+
0 ~ a * x
146+
]
147+
eqs2 = [
148+
0 ~ b * y
149+
]
150+
151+
@named sys1 = NonlinearSystem(eqs1, [x], [a])
152+
@named sys2 = NonlinearSystem(eqs2, [y], [b])
153+
@named sys3 = extend(sys1, sys2)
154+
155+
@test isequal(union(Set(parameters(sys1)), Set(parameters(sys2))), Set(parameters(sys3)))
156+
@test isequal(union(Set(states(sys1)), Set(states(sys2))), Set(states(sys3)))
157+
@test isequal(union(Set(equations(sys1)), Set(equations(sys2))), Set(equations(sys3)))
158+
end
159+

0 commit comments

Comments
 (0)