From 89aee1bee2b603aa618738e92b4ea3e5b0b9b890 Mon Sep 17 00:00:00 2001 From: jClugstor Date: Wed, 13 Sep 2023 16:21:36 -0400 Subject: [PATCH 1/5] added parameters and states to intermediate result --- src/operations.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/operations.jl b/src/operations.jl index 2447d4c..3dfeb64 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -26,7 +26,7 @@ function amr_get(amr::JSON3.Object, ::Type{ODESystem}) paramnames = [Symbol(x.id) for x in ode.parameters] paramvars = [only(@parameters $x) for x in paramnames] paramvals = [x.value for x in ode.parameters] - sym_defs = paramvars .=> paramvals + sym_defs = Dict(paramvars .=> paramvals) initial_exprs = [MathML.parse_str(x.expression_mathml) for x in ode.initials] initial_vals = map(x -> substitute(x, sym_defs), initial_exprs) @@ -120,8 +120,8 @@ 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, t, u, p) = integrator + publish_to_rabbitmq(; iter=iter, time=t, state=u, params = p, id=o.id, retcode=SciMLBase.check_error(integrator)) end EasyModelAnalysis.DifferentialEquations.u_modified!(integrator, false) From c4c215ef00ce3822bf3588a68bd3d9da2f9ffa25 Mon Sep 17 00:00:00 2001 From: jClugstor Date: Thu, 14 Sep 2023 16:18:46 -0400 Subject: [PATCH 2/5] states and params should be dictionaries --- src/operations.jl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/operations.jl b/src/operations.jl index 3dfeb64..62795f1 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -26,7 +26,7 @@ function amr_get(amr::JSON3.Object, ::Type{ODESystem}) paramnames = [Symbol(x.id) for x in ode.parameters] paramvars = [only(@parameters $x) for x in paramnames] paramvals = [x.value for x in ode.parameters] - sym_defs = Dict(paramvars .=> paramvals) + sym_defs = paramvars .=> paramvals initial_exprs = [MathML.parse_str(x.expression_mathml) for x in ode.initials] initial_vals = map(x -> substitute(x, sym_defs), initial_exprs) @@ -120,8 +120,12 @@ end function (o::IntermediateResults)(integrator) if o.last_callback + o.every ≤ Dates.now() o.last_callback = Dates.now() - (; iter, t, u, p) = integrator - publish_to_rabbitmq(; iter=iter, time=t, state=u, params = p, id=o.id, + (; iter, f, t, u, p) = integrator + + state_dict = Dict(states(f.sys) .=> u) + param_dict = Dict(params(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) From a92ef62d81fedcfcf182c2d58123f8febac2298a Mon Sep 17 00:00:00 2001 From: jClugstor Date: Fri, 15 Sep 2023 15:19:45 -0400 Subject: [PATCH 3/5] parameters typo :/ --- src/operations.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/operations.jl b/src/operations.jl index b23b3a4..53ff144 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -125,7 +125,7 @@ function (o::IntermediateResults)(integrator) (; iter, f, t, u, p) = integrator state_dict = Dict(states(f.sys) .=> u) - param_dict = Dict(params(f.sys) .=> p) + 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)) From 3364723f3107d73140e33dfee365300f2463564f Mon Sep 17 00:00:00 2001 From: jClugstor Date: Fri, 15 Sep 2023 15:29:02 -0400 Subject: [PATCH 4/5] specified ModelingToolit --- src/operations.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/operations.jl b/src/operations.jl index 53ff144..b1e61ae 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -124,8 +124,8 @@ function (o::IntermediateResults)(integrator) o.last_callback = Dates.now() (; iter, f, t, u, p) = integrator - state_dict = Dict(states(f.sys) .=> u) - param_dict = Dict(parameters(f.sys) .=> p) + state_dict = Dict(ModelingToolkit.states(f.sys) .=> u) + param_dict = Dict(ModelingToolkit.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)) From 7d736dabfca9704fcb905c03d105e069883b284d Mon Sep 17 00:00:00 2001 From: jClugstor Date: Mon, 18 Sep 2023 11:16:01 -0400 Subject: [PATCH 5/5] rid of specifying ModelingToolkit, it broke stuff --- src/SimulationService.jl | 2 +- src/operations.jl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 b1e61ae..53ff144 100644 --- a/src/operations.jl +++ b/src/operations.jl @@ -124,8 +124,8 @@ function (o::IntermediateResults)(integrator) o.last_callback = Dates.now() (; iter, f, t, u, p) = integrator - state_dict = Dict(ModelingToolkit.states(f.sys) .=> u) - param_dict = Dict(ModelingToolkit.parameters(f.sys) .=> p) + 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))