@@ -6,12 +6,20 @@ This file contains helper functions for callbacks. The affect! function are defi
66
77abstract type AbstractSaveFunc end
88
9+ function _kwargs_set_tstops (kwargs, tlist)
10+ tstops = haskey (kwargs, :tstops ) ? unique! (sort! (vcat (tlist, kwargs. tstops))) : tlist
11+ return merge (kwargs, (tstops = tstops,))
12+ end
13+
914# Multiple dispatch depending on the progress_bar and e_ops types
1015function _generate_se_me_kwargs (e_ops, progress_bar, tlist, kwargs, method)
1116 cb = _generate_save_callback (e_ops, tlist, progress_bar, method)
12- return _merge_kwargs_with_callback (kwargs, cb)
17+
18+ kwargs2 = _kwargs_set_tstops (kwargs, tlist)
19+ return _merge_kwargs_with_callback (kwargs2, cb)
1320end
14- _generate_se_me_kwargs (e_ops:: Nothing , progress_bar:: Val{false} , tlist, kwargs, method) = kwargs
21+ _generate_se_me_kwargs (e_ops:: Nothing , progress_bar:: Val{false} , tlist, kwargs, method) =
22+ _kwargs_set_tstops (kwargs, tlist)
1523
1624function _generate_stochastic_kwargs (
1725 e_ops,
@@ -26,8 +34,7 @@ function _generate_stochastic_kwargs(
2634
2735 # Ensure that the noise is stored in tlist. # TODO : Fix this directly in DiffEqNoiseProcess.jl
2836 # See https://github.com/SciML/DiffEqNoiseProcess.jl/issues/214 for example
29- tstops = haskey (kwargs, :tstops ) ? unique! (sort! (vcat (tlist, kwargs. tstops))) : tlist
30- kwargs2 = merge (kwargs, (tstops = tstops,))
37+ kwargs2 = _kwargs_set_tstops (kwargs, tlist)
3138
3239 if SF === SaveFuncSSESolve
3340 cb_normalize = _ssesolve_generate_normalize_cb ()
@@ -44,7 +51,7 @@ _generate_stochastic_kwargs(
4451 store_measurement:: Val{false} ,
4552 kwargs,
4653 method:: Type{SF} ,
47- ) where {SF<: AbstractSaveFunc } = kwargs
54+ ) where {SF<: AbstractSaveFunc } = _kwargs_set_tstops ( kwargs, tlist)
4855
4956function _merge_kwargs_with_callback (kwargs, cb)
5057 kwargs2 =
0 commit comments