From 774b944935b8b71ff3333dc01c595dbeac6d1c11 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Wed, 16 Oct 2024 17:33:15 -0400 Subject: [PATCH] Update integrator_interface.jl with new interface information --- src/integrator_interface.jl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/integrator_interface.jl b/src/integrator_interface.jl index f40026f50..a17806510 100644 --- a/src/integrator_interface.jl +++ b/src/integrator_interface.jl @@ -321,18 +321,29 @@ end addsteps!(i::DEIntegrator, args...) = nothing """ - reeval_internals_due_to_modification!(integrator::DEIntegrator, continuous_modification=true) + reeval_internals_due_to_modification!(integrator::DEIntegrator, continuous_modification::Bool=true; + callback_initializealg = nothing) Update DE integrator after changes by callbacks. For DAEs (either implicit or semi-explicit), this requires re-solving alebraic variables. If continuous_modification is true (or unspecified), this should also recalculate interpolation data. Otherwise the integrator is allowed to skip recalculating the interpolation. + +# Arguments + +- `continuous_modification`: determines whether the modification is due to a continuous change (continuous callback) + or a discrete callback. For a continuous change, this can include a change to time which requires a re-evaluation + of the interpolations. +- `callback_initializealg`: the initialization algorithm provided by the callback. For DAEs, this is the choice for the + initialization that is done post callback. The default value of `nothing` means that the initialization choice + used for the DAE should be performed post-callback. """ function reeval_internals_due_to_modification!( - integrator::DEIntegrator, continuous_modification) + integrator::DEIntegrator, continuous_modification::Bool; + callback_initializealg = nothing) reeval_internals_due_to_modification!(integrator::DEIntegrator) end -reeval_internals_due_to_modification!(integrator::DEIntegrator) = nothing +reeval_internals_due_to_modification!(integrator::DEIntegrator; callback_initializealg = nothing) = nothing """ set_t!(integrator::DEIntegrator, t)