From f0fca433271b04c089b19d311cf4cbde4a4caa0f Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Wed, 3 Jul 2024 16:55:10 +0530 Subject: [PATCH] fix: fix inconsistent defaults with `default_toterm` variables --- src/systems/diffeqs/odesystem.jl | 5 ++++- src/systems/diffeqs/sdesystem.jl | 3 +++ src/systems/discrete_system/discrete_system.jl | 3 +++ src/systems/jumps/jumpsystem.jl | 3 +++ src/systems/nonlinear/nonlinearsystem.jl | 3 +++ src/systems/optimization/constraints_system.jl | 3 +++ src/systems/optimization/optimizationsystem.jl | 3 +++ 7 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/systems/diffeqs/odesystem.jl b/src/systems/diffeqs/odesystem.jl index b0bb9dd9a4..f44851bb7f 100644 --- a/src/systems/diffeqs/odesystem.jl +++ b/src/systems/diffeqs/odesystem.jl @@ -238,6 +238,9 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps; end defaults = todict(defaults) defaults = Dict{Any, Any}(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end var_to_name = Dict() process_variables!(var_to_name, defaults, dvs′) process_variables!(var_to_name, defaults, ps′) @@ -410,7 +413,7 @@ function build_explicit_observed_function(sys, ts; Set(arguments(st)[1] for st in sts if iscall(st) && operation(st) === getindex)) observed_idx = Dict(x.lhs => i for (i, x) in enumerate(obs)) - param_set = Set(full_parameters(sys)) + param_set = Set(ps) param_set = union(param_set, Set(arguments(p)[1] for p in param_set if iscall(p) && operation(p) === getindex)) param_set_ns = Set(unknowns(sys, p) for p in full_parameters(sys)) diff --git a/src/systems/diffeqs/sdesystem.jl b/src/systems/diffeqs/sdesystem.jl index 09bea2d152..ae764eaeb3 100644 --- a/src/systems/diffeqs/sdesystem.jl +++ b/src/systems/diffeqs/sdesystem.jl @@ -187,6 +187,9 @@ function SDESystem(deqs::AbstractVector{<:Equation}, neqs::AbstractArray, iv, dv end defaults = todict(defaults) defaults = Dict(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end var_to_name = Dict() process_variables!(var_to_name, defaults, dvs′) diff --git a/src/systems/discrete_system/discrete_system.jl b/src/systems/discrete_system/discrete_system.jl index 1f8c1796e2..71a7386099 100644 --- a/src/systems/discrete_system/discrete_system.jl +++ b/src/systems/discrete_system/discrete_system.jl @@ -149,6 +149,9 @@ function DiscreteSystem(eqs::AbstractVector{<:Equation}, iv, dvs, ps; end defaults = todict(defaults) defaults = Dict(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end var_to_name = Dict() process_variables!(var_to_name, defaults, dvs′) diff --git a/src/systems/jumps/jumpsystem.jl b/src/systems/jumps/jumpsystem.jl index 4da6ce710c..515cffd319 100644 --- a/src/systems/jumps/jumpsystem.jl +++ b/src/systems/jumps/jumpsystem.jl @@ -175,6 +175,9 @@ function JumpSystem(eqs, iv, unknowns, ps; end defaults = todict(defaults) defaults = Dict(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end unknowns, ps = value.(unknowns), value.(ps) var_to_name = Dict() diff --git a/src/systems/nonlinear/nonlinearsystem.jl b/src/systems/nonlinear/nonlinearsystem.jl index db13bb4541..136a7d8079 100644 --- a/src/systems/nonlinear/nonlinearsystem.jl +++ b/src/systems/nonlinear/nonlinearsystem.jl @@ -147,6 +147,9 @@ function NonlinearSystem(eqs, unknowns, ps; jac = RefValue{Any}(EMPTY_JAC) defaults = todict(defaults) defaults = Dict{Any, Any}(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end unknowns, ps = value.(unknowns), value.(ps) var_to_name = Dict() diff --git a/src/systems/optimization/constraints_system.jl b/src/systems/optimization/constraints_system.jl index 7fde00e2f4..0d6d084ae6 100644 --- a/src/systems/optimization/constraints_system.jl +++ b/src/systems/optimization/constraints_system.jl @@ -134,6 +134,9 @@ function ConstraintsSystem(constraints, unknowns, ps; jac = RefValue{Any}(EMPTY_JAC) defaults = todict(defaults) defaults = Dict(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end var_to_name = Dict() process_variables!(var_to_name, defaults, unknowns′) diff --git a/src/systems/optimization/optimizationsystem.jl b/src/systems/optimization/optimizationsystem.jl index 3a9f8aef74..88e4e6b6af 100644 --- a/src/systems/optimization/optimizationsystem.jl +++ b/src/systems/optimization/optimizationsystem.jl @@ -112,6 +112,9 @@ function OptimizationSystem(op, unknowns, ps; end defaults = todict(defaults) defaults = Dict(value(k) => value(v) for (k, v) in pairs(defaults)) + for k in collect(keys(defaults)) + defaults[default_toterm(k)] = defaults[k] + end var_to_name = Dict() process_variables!(var_to_name, defaults, unknowns′)