Skip to content

Commit 6b15906

Browse files
committed
Add postprocess_fbody in cb generating function
1 parent cd0a1c9 commit 6b15906

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ function generate_difference_cb(sys::ODESystem, dvs = states(sys), ps = paramete
128128
d.update ? eq.rhs : eq.rhs + v
129129
end
130130

131-
f_oop, f_iip = build_function(body, u, p, t; expression=Val{false}, kwargs...)
131+
pre = get_postprocess_fbody(sys)
132+
f_oop, f_iip = build_function(body, u, p, t; expression=Val{false}, postprocess_fbody=pre, kwargs...)
132133

133134
cb_affect! = let f_oop=f_oop, f_iip=f_iip
134135
function cb_affect!(integ)
@@ -578,12 +579,11 @@ symbolically calculating numerical enhancements.
578579
function DiffEqBase.ODEProblem{iip}(sys::AbstractODESystem,u0map,tspan,
579580
parammap=DiffEqBase.NullParameters();kwargs...) where iip
580581
f, u0, p = process_DEProblem(ODEFunction{iip}, sys, u0map, parammap; kwargs...)
581-
if any(isdifferenceeq.(equations(sys)))
582-
ODEProblem{iip}(f,u0,tspan,p;difference_cb=generate_difference_cb(sys),kwargs...)
582+
if any(isdifferenceeq, equations(sys))
583+
ODEProblem{iip}(f,u0,tspan,p;difference_cb=generate_difference_cb(sys;kwargs...),kwargs...)
583584
else
584585
ODEProblem{iip}(f,u0,tspan,p;kwargs...)
585586
end
586-
587587
end
588588

589589
"""
@@ -610,12 +610,11 @@ function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem,du0map,u0map,tspan,
610610
diffvars = collect_differential_variables(sys)
611611
sts = states(sys)
612612
differential_vars = map(Base.Fix2(in, diffvars), sts)
613-
if any(isdifferenceeq.(equations(sys)))
614-
DAEProblem{iip}(f,du0,u0,tspan,p;difference_cb=generate_difference_cb(sys),differential_vars=differential_vars,kwargs...)
613+
if any(isdifferenceeq, equations(sys))
614+
DAEProblem{iip}(f,du0,u0,tspan,p;difference_cb=generate_difference_cb(sys; kwargs...),differential_vars=differential_vars,kwargs...)
615615
else
616-
DAEProblem{iip}(f,du0,u0,tspan,p;differential_vars=differential_vars,kwargs...)
616+
DAEProblem{iip}(f,du0,u0,tspan,p;differential_vars=differential_vars,kwargs...)
617617
end
618-
619618
end
620619

621620
"""

0 commit comments

Comments
 (0)