@@ -63,7 +63,7 @@ function ParallelDynamicalSystem(ds::CoreDynamicalSystem, states::Vector{<:Abstr
6363 pds = CoupledODEs (prob, ds. diffeq; internalnorm = inorm)
6464 end
6565 M = ds isa CoupledODEs && isinplace (ds)
66- prob = referrenced_sciml_prob (ds)
66+ prob = referrenced_sciml_prob (ds)
6767 return ParallelDynamicalSystemAnalytic {typeof(pds), M} (pds, dynamic_rule (ds), prob)
6868end
6969
@@ -131,11 +131,19 @@ end
131131# Analytically knwon rule: extensions
132132# ##########################################################################################
133133for f in (:(SciMLBase. step!), :current_time , :initial_time , :isdiscretetime , :reinit! ,
134- :current_parameters , :initial_parameters , :successful_step ,
134+ :current_parameters , :initial_parameters ,
135135 )
136136 @eval $ (f)(pdsa:: ParallelDynamicalSystemAnalytic , args... ; kw... ) = $ (f)(pdsa. ds, args... ; kw... )
137137end
138138
139+ function successful_step (pdsa:: ParallelDynamicalSystemAnalytic )
140+ if ! isdiscretetime (pdsa)
141+ return successful_step (pdsa. ds)
142+ else
143+ return all (x -> (isfinite (x) && ! isnan (x)), current_state (pdsa))
144+ end
145+ end
146+
139147(pdsa:: ParallelDynamicalSystemAnalytic )(t:: Real , i:: Int = 1 ) = pdsa. ds (t)[i]
140148dynamic_rule (pdsa:: ParallelDynamicalSystemAnalytic ) = pdsa. original_f
141149
0 commit comments