Skip to content

Commit b285332

Browse files
fix: respect eval_expression, eval_module in compile_equational_affect
1 parent a299ec6 commit b285332

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/systems/callbacks.jl

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,8 @@ end
895895
Compile an affect defined by a set of equations. Systems with algebraic equations will solve implicit discrete problems to obtain their next state. Systems without will generate functions that perform explicit updates.
896896
"""
897897
function compile_equational_affect(
898-
aff::Union{AffectSystem, Vector{Equation}}, sys; reset_jumps = false, kwargs...)
898+
aff::Union{AffectSystem, Vector{Equation}}, sys; reset_jumps = false,
899+
eval_expression = false, eval_module = @__MODULE__, kwargs...)
899900
if aff isa AbstractVector
900901
aff = make_affect(
901902
aff; iv = get_iv(sys), warn_no_algebraic = false)
@@ -930,11 +931,13 @@ function compile_equational_affect(
930931
integ = gensym(:MTKIntegrator)
931932

932933
u_up, u_up! = build_function_wrapper(sys, (@view rhss[is_u]), dvs, _ps..., t;
933-
wrap_code = add_integrator_header(sys, integ, :u),
934-
expression = Val{false}, outputidxs = u_idxs, wrap_mtkparameters, cse = false)
934+
wrap_code = add_integrator_header(sys, integ, :u), expression = Val{false},
935+
outputidxs = u_idxs, wrap_mtkparameters, cse = false, eval_expression,
936+
eval_module)
935937
p_up, p_up! = build_function_wrapper(sys, (@view rhss[is_p]), dvs, _ps..., t;
936-
wrap_code = add_integrator_header(sys, integ, :p),
937-
expression = Val{false}, outputidxs = p_idxs, wrap_mtkparameters, cse = false)
938+
wrap_code = add_integrator_header(sys, integ, :p), expression = Val{false},
939+
outputidxs = p_idxs, wrap_mtkparameters, cse = false, eval_expression,
940+
eval_module)
938941

939942
return let dvs_to_update = dvs_to_update, ps_to_update = ps_to_update,
940943
reset_jumps = reset_jumps, u_up! = u_up!, p_up! = p_up!
@@ -963,7 +966,8 @@ function compile_equational_affect(
963966

964967
affprob = ImplicitDiscreteProblem(affsys, [dv => 0 for dv in unknowns(affsys)],
965968
(0, 0), [p => 0.0 for p in parameters(affsys)];
966-
build_initializeprob = false, check_length = false)
969+
build_initializeprob = false, check_length = false, eval_expression,
970+
eval_module, check_compatibility = false)
967971

968972
function implicit_affect!(integ)
969973
new_u0 = affu_getter(integ)

0 commit comments

Comments
 (0)