diff --git a/src/SimulationService.jl b/src/SimulationService.jl index ff4e0c2..2b3fe50 100644 --- a/src/SimulationService.jl +++ b/src/SimulationService.jl @@ -18,7 +18,7 @@ import JSON3 import JSONSchema import LinearAlgebra: norm import MathML -import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem, ODEProblem, ODESolution, structural_simplify, states, observed +import ModelingToolkit: @parameters, substitute, Differential, Num, @variables, ODESystem, ODEProblem, ODESolution, structural_simplify, states, observed, parameters import OpenAPI import Oxygen import Pkg diff --git a/src/operations.jl b/src/operations.jl index 7b24107..53ff144 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -122,8 +122,12 @@ end function (o::IntermediateResults)(integrator) if o.last_callback + o.every ≤ Dates.now() o.last_callback = Dates.now() - (; iter, t, u, uprev) = integrator - publish_to_rabbitmq(; iter=iter, time=t, params=u, abserr=norm(u - uprev), id=o.id, + (; iter, f, t, u, p) = integrator + + state_dict = Dict(states(f.sys) .=> u) + param_dict = Dict(parameters(f.sys) .=> p) + + publish_to_rabbitmq(; iter=iter, time=t, state=state_dict, params = param_dict, id=o.id, retcode=SciMLBase.check_error(integrator)) end EasyModelAnalysis.DifferentialEquations.u_modified!(integrator, false)