Skip to content

Commit 8c99c3d

Browse files
committed
Fix defaults functions
1 parent af9e2b5 commit 8c99c3d

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

docs/src/tutorials/tearing_parallelism.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ function ConstantVoltage(;name, V = 1.0)
5959
V ~ p.v - n.v
6060
0 ~ p.i + n.i
6161
]
62-
ODESystem(eqs, t, [], [V], systems=[p, n], default=Dict(V => val), name=name)
62+
ODESystem(eqs, t, [], [V], systems=[p, n], defaults=Dict(V => val), name=name)
6363
end
6464

6565
function HeatPort(;name)
6666
@variables T(t) Q_flow(t)
67-
return ODESystem(Equation[], t, [T, Q_flow], [], default=Dict(T=>293.15, Q_flow=>0.0), name=name)
67+
return ODESystem(Equation[], t, [T, Q_flow], [], defaults=Dict(T=>293.15, Q_flow=>0.0), name=name)
6868
end
6969

7070
function HeatingResistor(;name, R=1.0, TAmbient=293.15, alpha=1.0)
@@ -101,7 +101,7 @@ function HeatCapacitor(;name, rho=8050, V=1, cp=460, TAmbient=293.15)
101101
]
102102
ODESystem(
103103
eqs, t, [], [rho, V, cp], systems=[h],
104-
default=Dict(rho=>rho_val, V=>V_val, cp=>cp_val),
104+
defaults=Dict(rho=>rho_val, V=>V_val, cp=>cp_val),
105105
name=name,
106106
)
107107
end
@@ -160,7 +160,7 @@ end
160160
eqs = [
161161
D(E) ~ sum(((i, sys),)->getproperty(sys, Symbol(:resistor, i)).h.Q_flow, enumerate(rc_systems))
162162
]
163-
big_rc = ODESystem(eqs, t, [], [], systems=rc_systems, default=Dict(E=>0.0))
163+
big_rc = ODESystem(eqs, t, [], [], systems=rc_systems, defaults=Dict(E=>0.0))
164164
```
165165

166166
Now let's say we want to expose a bit more parallelism via running tearing.

src/systems/abstractsystem.jl

+9-9
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,8 @@ namespace_variables(sys::AbstractSystem) = states(sys, states(sys))
284284
namespace_parameters(sys::AbstractSystem) = parameters(sys, parameters(sys))
285285

286286
function namespace_defaults(sys)
287-
d_u0 = defaults(sys)
288-
Dict(states(sys, k) => namespace_expr(d_u0[k], nameof(sys), independent_variable(sys)) for k in keys(d_u0))
287+
defs = defaults(sys)
288+
Dict((isparameter(k) ? parameters(sys, k) : states(sys, k)) => namespace_expr(defs[k], nameof(sys), independent_variable(sys)) for k in keys(defs))
289289
end
290290

291291
function namespace_equations(sys::AbstractSystem)
@@ -344,8 +344,8 @@ end
344344

345345
function defaults(sys::AbstractSystem)
346346
systems = get_systems(sys)
347-
d_u0 = get_defaults(sys)
348-
isempty(systems) ? d_u0 : mapreduce(namespace_defaults, merge, systems; init=d_u0)
347+
defs = get_defaults(sys)
348+
isempty(systems) ? defs : mapreduce(namespace_defaults, merge, systems; init=defs)
349349
end
350350

351351
states(sys::AbstractSystem, v) = renamespace(nameof(sys), v)
@@ -405,13 +405,13 @@ function Base.show(io::IO, sys::AbstractSystem)
405405
Base.printstyled(io, "States ($nvars):"; bold=true)
406406
nrows = min(nvars, limit ? rows : nvars)
407407
limited = nrows < length(vars)
408-
d_u0 = has_defaults(sys) ? defaults(sys) : nothing
408+
defs = has_defaults(sys) ? defaults(sys) : nothing
409409
for i in 1:nrows
410410
s = vars[i]
411411
print(io, "\n ", s)
412412

413-
if d_u0 !== nothing
414-
val = get(d_u0, s, nothing)
413+
if defs !== nothing
414+
val = get(defs, s, nothing)
415415
if val !== nothing
416416
print(io, " [defaults to $val]")
417417
end
@@ -428,8 +428,8 @@ function Base.show(io::IO, sys::AbstractSystem)
428428
s = vars[i]
429429
print(io, "\n ", s)
430430

431-
if d_u0 !== nothing
432-
val = get(d_u0, s, nothing)
431+
if defs !== nothing
432+
val = get(defs, s, nothing)
433433
if val !== nothing
434434
print(io, " [defaults to $val]")
435435
end

test/components.jl

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using ModelingToolkit, OrdinaryDiffEq
55
const t = Sym{ModelingToolkit.Parameter{Real}}(:t)
66
function Pin(;name)
77
@variables v(t) i(t)
8-
ODESystem(Equation[], t, [v, i], [], name=name, default=[v=>1.0, i=>1.0])
8+
ODESystem(Equation[], t, [v, i], [], name=name, defaults=[v=>1.0, i=>1.0])
99
end
1010

1111
function Ground(name)
@@ -23,7 +23,7 @@ function ConstantVoltage(name; V = 1.0)
2323
V ~ p.v - n.v
2424
0 ~ p.i + n.i
2525
]
26-
ODESystem(eqs, t, [], [V], systems=[p, n], default=Dict(V => val), name=name)
26+
ODESystem(eqs, t, [], [V], systems=[p, n], defaults=Dict(V => val), name=name)
2727
end
2828

2929
function Resistor(name; R = 1.0)
@@ -37,7 +37,7 @@ function Resistor(name; R = 1.0)
3737
0 ~ p.i + n.i
3838
v ~ p.i * R
3939
]
40-
ODESystem(eqs, t, [v], [R], systems=[p, n], default=Dict(R => val), name=name)
40+
ODESystem(eqs, t, [v], [R], systems=[p, n], defaults=Dict(R => val), name=name)
4141
end
4242

4343
function Capacitor(name; C = 1.0)
@@ -52,7 +52,7 @@ function Capacitor(name; C = 1.0)
5252
0 ~ p.i + n.i
5353
D(v) ~ p.i / C
5454
]
55-
ODESystem(eqs, t, [v], [C], systems=[p, n], default=Dict(C => val), name=name)
55+
ODESystem(eqs, t, [v], [C], systems=[p, n], defaults=Dict(C => val), name=name)
5656
end
5757

5858
R = 1.0
@@ -82,7 +82,7 @@ rc_eqs = [
8282

8383
rc_model = ODESystem(rc_eqs, t, systems=[resistor, capacitor, source, ground], name=:rc)
8484
sys = structural_simplify(rc_model)
85-
@test ModelingToolkit.default(sys) == Dict(
85+
@test ModelingToolkit.defaults(sys) == Dict(
8686
capacitor.C => 1.0,
8787
source.V => 1.0,
8888
resistor.R => 1.0,

test/symbolic_parameters.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ u0 = Pair{Num, Any}[
1919
y => σ, # default u0 from default p
2020
z => u-0.1,
2121
]
22-
ns = NonlinearSystem(eqs, [x,y,z],[σ,ρ,β], name=:ns, defaults=merge(par, u0))
22+
ns = NonlinearSystem(eqs, [x,y,z],[σ,ρ,β], name=:ns, defaults=[par; u0])
2323
ns.y = u*1.1
2424
resolved = ModelingToolkit.varmap_to_vars(Dict(), parameters(ns), defaults=ModelingToolkit.defaults(ns))
2525
@test resolved == [1, 0.1+1, (0.1+1)*1.1]

0 commit comments

Comments
 (0)