Skip to content

Commit ff96602

Browse files
committed
format
1 parent b07f208 commit ff96602

File tree

7 files changed

+51
-28
lines changed

7 files changed

+51
-28
lines changed

src/systems/callbacks.jl

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -230,15 +230,17 @@ struct SymbolicContinuousCallback <: AbstractCallback
230230
conditions = (conditions isa AbstractVector) ? conditions : [conditions]
231231

232232
if isnothing(reinitializealg)
233-
any(a -> (a isa FunctionalAffect || a isa ImperativeAffect), [affect, affect_neg, initialize, finalize]) ?
234-
reinitializealg = SciMLBase.CheckInit() :
235-
reinitializealg = SciMLBase.NoInit()
233+
any(a -> (a isa FunctionalAffect || a isa ImperativeAffect),
234+
[affect, affect_neg, initialize, finalize]) ?
235+
reinitializealg = SciMLBase.CheckInit() :
236+
reinitializealg = SciMLBase.NoInit()
236237
end
237238

238239
new(conditions, make_affect(affect; iv, algeeqs, discrete_parameters),
239240
make_affect(affect_neg; iv, algeeqs, discrete_parameters),
240241
make_affect(initialize; iv, algeeqs, discrete_parameters), make_affect(
241-
finalize; iv, algeeqs, discrete_parameters), rootfind, reinitializealg)
242+
finalize; iv, algeeqs, discrete_parameters),
243+
rootfind, reinitializealg)
242244
end # Default affect to nothing
243245
end
244246

@@ -286,7 +288,7 @@ function make_affect(affect::Vector{Equation}; discrete_parameters::AbstractVect
286288
sys_params = collect(setdiff(params, union(discrete_parameters, pre_params)))
287289
discretes = map(tovar, discrete_parameters)
288290
dvs = collect(dvs)
289-
_dvs = map(default_toterm, dvs)
291+
_dvs = map(default_toterm, dvs)
290292

291293
aff_map = Dict(zip(discretes, discrete_parameters))
292294
rev_map = Dict(zip(discrete_parameters, discretes))
@@ -446,9 +448,10 @@ struct SymbolicDiscreteCallback <: AbstractCallback
446448
c = is_timed_condition(condition) ? condition : value(scalarize(condition))
447449

448450
if isnothing(reinitializealg)
449-
any(a -> (a isa FunctionalAffect || a isa ImperativeAffect), [affect, initialize, finalize]) ?
450-
reinitializealg = SciMLBase.CheckInit() :
451-
reinitializealg = SciMLBase.NoInit()
451+
any(a -> (a isa FunctionalAffect || a isa ImperativeAffect),
452+
[affect, initialize, finalize]) ?
453+
reinitializealg = SciMLBase.CheckInit() :
454+
reinitializealg = SciMLBase.NoInit()
452455
end
453456
new(c, make_affect(affect; iv, algeeqs, discrete_parameters),
454457
make_affect(initialize; iv, algeeqs, discrete_parameters),
@@ -582,7 +585,8 @@ end
582585
function Base.:(==)(e1::AbstractCallback, e2::AbstractCallback)
583586
(is_discrete(e1) === is_discrete(e2)) || return false
584587
(isequal(e1.conditions, e2.conditions) && isequal(e1.affect, e2.affect) &&
585-
isequal(e1.initialize, e2.initialize) && isequal(e1.finalize, e2.finalize)) && isequal(e1.reinitializealg, e2.reinitializealg) ||
588+
isequal(e1.initialize, e2.initialize) && isequal(e1.finalize, e2.finalize)) &&
589+
isequal(e1.reinitializealg, e2.reinitializealg) ||
586590
return false
587591
is_discrete(e1) ||
588592
(isequal(e1.affect_neg, e2.affect_neg) && isequal(e1.rootfind, e2.rootfind))
@@ -619,7 +623,8 @@ function compile_condition(
619623

620624
if !is_discrete(cbs)
621625
condit = reduce(vcat, flatten_equations(condit))
622-
condit = condit isa AbstractVector ? [c.lhs - c.rhs for c in condit] : [condit.lhs - condit.rhs]
626+
condit = condit isa AbstractVector ? [c.lhs - c.rhs for c in condit] :
627+
[condit.lhs - condit.rhs]
623628
end
624629

625630
fs = build_function_wrapper(sys,
@@ -685,15 +690,18 @@ function generate_continuous_callbacks(sys::AbstractSystem, dvs = unknowns(sys),
685690
ps = parameters(sys; initial_parameters = true); kwargs...)
686691
cbs = continuous_events(sys)
687692
isempty(cbs) && return nothing
688-
cb_classes = Dict{Tuple{SciMLBase.RootfindOpt, SciMLBase.DAEInitializationAlgorithm}, Vector{SymbolicContinuousCallback}}()
693+
cb_classes = Dict{Tuple{SciMLBase.RootfindOpt, SciMLBase.DAEInitializationAlgorithm},
694+
Vector{SymbolicContinuousCallback}}()
689695

690696
# Sort the callbacks by their rootfinding method
691697
for cb in cbs
692-
_cbs = get!(() -> SymbolicContinuousCallback[], cb_classes, (cb.rootfind, cb.reinitializealg))
698+
_cbs = get!(() -> SymbolicContinuousCallback[],
699+
cb_classes, (cb.rootfind, cb.reinitializealg))
693700
push!(_cbs, cb)
694701
end
695702
sort!(OrderedDict(cb_classes), by = cb -> cb[1])
696-
compiled_callbacks = [generate_callback(cb, sys; kwargs...) for ((rf, reinit), cb) in cb_classes]
703+
compiled_callbacks = [generate_callback(cb, sys; kwargs...)
704+
for ((rf, reinit), cb) in cb_classes]
697705
if length(compiled_callbacks) == 1
698706
return only(compiled_callbacks)
699707
else
@@ -791,7 +799,8 @@ function generate_callback(cb, sys; kwargs...)
791799
return PresetTimeCallback(trigger, affect; initialize,
792800
finalize, initializealg = cb.reinitializealg)
793801
elseif is_timed
794-
return PeriodicCallback(affect, trigger; initialize, finalize, initializealg = cb.reinitializealg)
802+
return PeriodicCallback(
803+
affect, trigger; initialize, finalize, initializealg = cb.reinitializealg)
795804
else
796805
return DiscreteCallback(trigger, affect; initialize,
797806
finalize, initializealg = cb.reinitializealg)

src/systems/model_parsing.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ function _model_macro(mod, name, expr, isconnector)
137137
$(d_evts...)
138138
]))))
139139

140-
141140
f = if length(where_types) == 0
142141
:($(Symbol(:__, name, :__))(; name, $(kwargs...)) = $exprs)
143142
else

src/systems/systems.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ function __structural_simplify(sys::AbstractSystem, io = nothing; simplify = fal
155155
get_iv(ode_sys), unknowns(ode_sys), parameters(ode_sys);
156156
name = nameof(ode_sys), is_scalar_noise, observed = observed(ode_sys), defaults = defaults(sys),
157157
parameter_dependencies = parameter_dependencies(sys), assertions = assertions(sys),
158-
guesses = guesses(sys), initialization_eqs = initialization_equations(sys), continuous_events = continuous_events(sys), discrete_events = discrete_events(sys))
158+
guesses = guesses(sys), initialization_eqs = initialization_equations(sys),
159+
continuous_events = continuous_events(sys),
160+
discrete_events = discrete_events(sys))
159161
end
160162
end
161163

test/fmi/fmi.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ end
157157
@testset "v2, CS" begin
158158
fmu = loadFMU(joinpath(FMU_DIR, "SimpleAdder.fmu"); type = :CS)
159159
@named adder = MTK.FMIComponent(
160-
Val(2); fmu, type = :CS, communication_step_size = 1e-6, reinitializealg = BrownFullBasicInit())
160+
Val(2); fmu, type = :CS, communication_step_size = 1e-6,
161+
reinitializealg = BrownFullBasicInit())
161162
@test MTK.isinput(adder.a)
162163
@test MTK.isinput(adder.b)
163164
@test MTK.isoutput(adder.out)
@@ -209,7 +210,8 @@ end
209210
@testset "v3, CS" begin
210211
fmu = loadFMU(joinpath(FMU_DIR, "StateSpace.fmu"); type = :CS)
211212
@named sspace = MTK.FMIComponent(
212-
Val(3); fmu, communication_step_size = 1e-6, type = :CS, reinitializealg = BrownFullBasicInit())
213+
Val(3); fmu, communication_step_size = 1e-6, type = :CS,
214+
reinitializealg = BrownFullBasicInit())
213215
@test MTK.isinput(sspace.u)
214216
@test MTK.isoutput(sspace.y)
215217
@test !MTK.isinput(sspace.x) && !MTK.isoutput(sspace.x)

test/odesystem.jl

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,18 +1038,19 @@ prob = ODEProblem(sys, [x => 1.0], (0.0, 10.0))
10381038
eqs = [
10391039
D(x) ~ p * x
10401040
]
1041-
@mtkbuild sys = ODESystem(eqs, t; continuous_events = [[norm(x) ~ 3.0] => [x ~ ones(3)]])
1041+
@mtkbuild sys = ODESystem(
1042+
eqs, t; continuous_events = [[norm(x) ~ 3.0] => [x ~ ones(3)]])
10421043
# array affect equations used to not work
10431044
prob1 = @test_nowarn ODEProblem(sys, [x => ones(3)], (0.0, 10.0), [p => ones(3, 3)])
10441045
sol1 = @test_nowarn solve(prob1, Tsit5())
1045-
1046+
10461047
# array condition equations also used to not work
10471048
@mtkbuild sys = ODESystem(
10481049
eqs, t; continuous_events = [[x ~ sqrt(3) * ones(3)] => [x ~ ones(3)]])
10491050
# array affect equations used to not work
10501051
prob2 = @test_nowarn ODEProblem(sys, [x => ones(3)], (0.0, 10.0), [p => ones(3, 3)])
10511052
sol2 = @test_nowarn solve(prob2, Tsit5())
1052-
1053+
10531054
@test sol1.u sol2.u[2:end]
10541055
end
10551056

@@ -1541,7 +1542,12 @@ end
15411542
@testset "Observed variables dependent on discrete parameters" begin
15421543
@variables x(t) obs(t)
15431544
@parameters c(t)
1544-
@mtkbuild sys = ODESystem([D(x) ~ c * cos(x), obs ~ c], t, [x], [c]; discrete_events = [SymbolicDiscreteCallback(1.0 => [c ~ Pre(c) + 1], discrete_parameters = [c])])
1545+
@mtkbuild sys = ODESystem([D(x) ~ c * cos(x), obs ~ c],
1546+
t,
1547+
[x],
1548+
[c];
1549+
discrete_events = [SymbolicDiscreteCallback(
1550+
1.0 => [c ~ Pre(c) + 1], discrete_parameters = [c])])
15451551
prob = ODEProblem(sys, [x => 0.0], (0.0, 2pi), [c => 1.0])
15461552
sol = solve(prob, Tsit5())
15471553
@test sol[obs] 1:7
@@ -1609,7 +1615,8 @@ end
16091615
@test osys1 == osys2 # true
16101616

16111617
continuous_events = [[X ~ 1.0] => [X ~ Pre(X) + 5.0]]
1612-
discrete_events = [SymbolicDiscreteCallback(5.0 => [d ~ d / 2.0], discrete_parameters = [d])]
1618+
discrete_events = [SymbolicDiscreteCallback(
1619+
5.0 => [d ~ d / 2.0], discrete_parameters = [d])]
16131620

16141621
osys1 = complete(ODESystem([eq], t; name = :osys, continuous_events))
16151622
osys2 = complete(ODESystem([eq], t; name = :osys))

test/parameter_dependencies.jl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using ModelingToolkit
22
using Test
3-
using ModelingToolkit: t_nounits as t, D_nounits as D, SymbolicDiscreteCallback, SymbolicContinuousCallback
3+
using ModelingToolkit: t_nounits as t, D_nounits as D, SymbolicDiscreteCallback,
4+
SymbolicContinuousCallback
45
using OrdinaryDiffEq
56
using StochasticDiffEq
67
using JumpProcesses
@@ -225,7 +226,8 @@ end
225226
@test_nowarn solve(prob, Tsit5())
226227

227228
@mtkbuild sys = ODESystem(eqs, t; parameter_dependencies = [kq => 2kp],
228-
discrete_events = [SymbolicDiscreteCallback([0.5] => [kp ~ 2.0], discrete_parameters = [kp])])
229+
discrete_events = [SymbolicDiscreteCallback(
230+
[0.5] => [kp ~ 2.0], discrete_parameters = [kp])])
229231
prob = ODEProblem(sys, [x => 0.0, y => 0.0], (0.0, Tf),
230232
[kp => 1.0; z(k - 1) => 3.0; yd(k - 1) => 0.0; z(k - 2) => 4.0;
231233
yd(k - 2) => 2.0])
@@ -269,7 +271,8 @@ end
269271

270272
@named sys = ODESystem(eqs, t)
271273
@named sdesys = SDESystem(sys, noiseeqs; parameter_dependencies ==> 2σ],
272-
discrete_events = [SymbolicDiscreteCallback([10.0] =>~ 15.0], discrete_parameters = [σ])])
274+
discrete_events = [SymbolicDiscreteCallback(
275+
[10.0] =>~ 15.0], discrete_parameters = [σ])])
273276
sdesys = complete(sdesys)
274277
prob = SDEProblem(
275278
sdesys, [x => 1.0, y => 0.0, z => 0.0], (0.0, 100.0), [σ => 10.0, β => 2.33])
@@ -308,7 +311,8 @@ end
308311

309312
@named js2 = JumpSystem(
310313
[j₁, j₃], t, [S, I, R], [γ]; parameter_dependencies ==> 0.01γ],
311-
discrete_events = [SymbolicDiscreteCallback([10.0] =>~ 0.02], discrete_parameters = [γ])])
314+
discrete_events = [SymbolicDiscreteCallback(
315+
[10.0] =>~ 0.02], discrete_parameters = [γ])])
312316
js2 = complete(js2)
313317
dprob = DiscreteProblem(js2, u₀map, tspan, parammap)
314318
jprob = JumpProblem(js2, dprob, Direct(), save_positions = (false, false), rng = rng)

test/symbolic_events.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1100,7 +1100,7 @@ end
11001100
f = ModelingToolkit.FunctionalAffect(
11011101
f = (i, u, p, c) -> seen = true, sts = [], pars = [], discretes = [])
11021102
cb1 = ModelingToolkit.SymbolicContinuousCallback(
1103-
[x ~ 0], nothing, initialize = [x ~ 1.5], finalize = f)
1103+
[x ~ 0], nothing, initialize = [x ~ 1.5], finalize = f)
11041104
@mtkbuild sys = ODESystem(D(x) ~ -1, t, [x], []; continuous_events = [cb1])
11051105
prob = ODEProblem(sys, [x => 1.0], (0.0, 2), [])
11061106
sol = solve(prob, Tsit5(); dtmax = 0.01)

0 commit comments

Comments
 (0)