@@ -1223,21 +1223,24 @@ end
12231223struct ObservedFunctionCache{S}
12241224 sys:: S
12251225 dict:: Dict{Any, Any}
1226+ steady_state:: Bool
12261227 eval_expression:: Bool
12271228 eval_module:: Module
12281229end
12291230
1230- function ObservedFunctionCache (sys; eval_expression = false , eval_module = @__MODULE__ )
1231- return ObservedFunctionCache (sys, Dict (), eval_expression, eval_module)
1231+ function ObservedFunctionCache (
1232+ sys; steady_state = false , eval_expression = false , eval_module = @__MODULE__ )
1233+ return ObservedFunctionCache (sys, Dict (), steady_state, eval_expression, eval_module)
12321234end
12331235
12341236# This is hit because ensemble problems do a deepcopy
12351237function Base. deepcopy_internal (ofc:: ObservedFunctionCache , stackdict:: IdDict )
12361238 sys = deepcopy (ofc. sys)
12371239 dict = deepcopy (ofc. dict)
1240+ steady_state = ofc. steady_state
12381241 eval_expression = ofc. eval_expression
12391242 eval_module = ofc. eval_module
1240- newofc = ObservedFunctionCache (sys, dict, eval_expression, eval_module)
1243+ newofc = ObservedFunctionCache (sys, dict, steady_state, eval_expression, eval_module)
12411244 stackdict[ofc] = newofc
12421245 return newofc
12431246end
@@ -1248,6 +1251,12 @@ function (ofc::ObservedFunctionCache)(obsvar, args...)
12481251 ofc. sys, obsvar; eval_expression = ofc. eval_expression,
12491252 eval_module = ofc. eval_module)
12501253 end
1254+ if ofc. steady_state
1255+ obs = let fn = obs
1256+ fn1 (u, p, t = Inf ) = fn (u, p, t)
1257+ fn1
1258+ end
1259+ end
12511260 if args === ()
12521261 return obs
12531262 else
0 commit comments