Skip to content

Commit de8bce1

Browse files
committed
compile DiscreteCallbacks
1 parent 2eb9674 commit de8bce1

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/systems/callbacks.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,3 +282,19 @@ function generate_rootfinding_callback(cbs, sys::AbstractODESystem, dvs = states
282282
VectorContinuousCallback(cond, affect, length(eqs))
283283
end
284284
end
285+
286+
function generate_discrete_callbacks(sys::AbstractSystem, dvs = states(sys),
287+
ps = parameters(sys); kwargs...)
288+
has_discrete_events(sys) || return nothing
289+
symcbs = discrete_events(sys)
290+
isempty(symcbs) && return nothing
291+
292+
dbs = map(symcbs) do cb
293+
c = compile_condition(cb, sys, dvs, ps; expression=Val{false}, kwargs...)
294+
as = compile_affect(affect_equations(cb), sys, dvs, ps; expression = Val{false},
295+
kwargs...)
296+
DiscreteCallback(c, as)
297+
end
298+
299+
dbs
300+
end

0 commit comments

Comments
 (0)