Skip to content

Commit 3e32fd2

Browse files
author
Lucas Morton
committed
Propagation of 'check' flag through remaining constructors.
1 parent 40b6708 commit 3e32fd2

File tree

6 files changed

+15
-9
lines changed

6 files changed

+15
-9
lines changed

src/systems/control/controlsystem.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ function ControlSystem(loss, deqs::AbstractVector{<:Equation}, iv, dvs, controls
9090
default_u0=Dict(),
9191
default_p=Dict(),
9292
defaults=_merge(Dict(default_u0), Dict(default_p)),
93-
name=nothing)
93+
name=nothing,
94+
kwargs...)
9495
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
9596
if !(isempty(default_u0) && isempty(default_p))
9697
Base.depwarn("`default_u0` and `default_p` are deprecated. Use `defaults` instead.", :ControlSystem, force=true)
@@ -108,7 +109,7 @@ function ControlSystem(loss, deqs::AbstractVector{<:Equation}, iv, dvs, controls
108109
collect_defaults!(defaults, dvs′)
109110
collect_defaults!(defaults, ps′)
110111
ControlSystem(value(loss), deqs, iv′, dvs′, controls′,
111-
ps′, observed, name, systems, defaults)
112+
ps′, observed, name, systems, defaults, kwargs...)
112113
end
113114

114115
struct ControlToExpr
@@ -200,5 +201,5 @@ function runge_kutta_discretize(sys::ControlSystem,dt,tspan;
200201
equalities = vcat(stages,updates,control_equality)
201202
opt_states = vcat(reduce(vcat,reduce(vcat,states_timeseries)),reduce(vcat,reduce(vcat,k_timeseries)),reduce(vcat,reduce(vcat,control_timeseries)))
202203

203-
OptimizationSystem(reduce(+,losses, init=0),opt_states,ps,equality_constraints = equalities, name=nameof(sys))
204+
OptimizationSystem(reduce(+,losses, init=0),opt_states,ps,equality_constraints = equalities, name=nameof(sys), checks = false)
204205
end

src/systems/diffeqs/sdesystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ function SDESystem(deqs::AbstractVector{<:Equation}, neqs, iv, dvs, ps;
106106
defaults=_merge(Dict(default_u0), Dict(default_p)),
107107
name=nothing,
108108
connection_type=nothing,
109+
checks = true,
109110
)
110111
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
111112
deqs = collect(deqs)
@@ -133,7 +134,7 @@ function SDESystem(deqs::AbstractVector{<:Equation}, neqs, iv, dvs, ps;
133134
ctrl_jac = RefValue{Any}(Matrix{Num}(undef, 0, 0))
134135
Wfact = RefValue(Matrix{Num}(undef, 0, 0))
135136
Wfact_t = RefValue(Matrix{Num}(undef, 0, 0))
136-
SDESystem(deqs, neqs, iv′, dvs′, ps′, var_to_name, ctrl′, observed, tgrad, jac, ctrl_jac, Wfact, Wfact_t, name, systems, defaults, connection_type)
137+
SDESystem(deqs, neqs, iv′, dvs′, ps′, var_to_name, ctrl′, observed, tgrad, jac, ctrl_jac, Wfact, Wfact_t, name, systems, defaults, connection_type, checks = checks)
137138
end
138139

139140
SDESystem(sys::ODESystem, neqs; kwargs...) = SDESystem(equations(sys), neqs, get_iv(sys), states(sys), parameters(sys); kwargs...)

src/systems/discrete_system/discrete_system.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ function DiscreteSystem(
7878
default_u0=Dict(),
7979
default_p=Dict(),
8080
defaults=_merge(Dict(default_u0), Dict(default_p)),
81+
kwargs...,
8182
)
8283
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
8384
eqs = collect(eqs)
@@ -100,7 +101,7 @@ function DiscreteSystem(
100101
if length(unique(sysnames)) != length(sysnames)
101102
throw(ArgumentError("System names must be unique."))
102103
end
103-
DiscreteSystem(eqs, iv′, dvs′, ps′, var_to_name, ctrl′, observed, name, systems, default_u0, default_p)
104+
DiscreteSystem(eqs, iv′, dvs′, ps′, var_to_name, ctrl′, observed, name, systems, default_u0, default_p, kwargs...)
104105
end
105106

106107
"""

src/systems/jumps/jumpsystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ function JumpSystem(eqs, iv, states, ps;
7171
defaults=_merge(Dict(default_u0), Dict(default_p)),
7272
name=nothing,
7373
connection_type=nothing,
74+
checks = true,
7475
kwargs...)
7576
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
7677
eqs = collect(eqs)
@@ -101,7 +102,7 @@ function JumpSystem(eqs, iv, states, ps;
101102
process_variables!(var_to_name, defaults, states)
102103
process_variables!(var_to_name, defaults, ps)
103104

104-
JumpSystem{typeof(ap)}(ap, value(iv), states, ps, var_to_name, observed, name, systems, defaults, connection_type)
105+
JumpSystem{typeof(ap)}(ap, value(iv), states, ps, var_to_name, observed, name, systems, defaults, connection_type, checks = checks)
105106
end
106107

107108
function generate_rate_function(js::JumpSystem, rate)

src/systems/nonlinear/nonlinearsystem.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ function NonlinearSystem(eqs, states, ps;
7070
defaults=_merge(Dict(default_u0), Dict(default_p)),
7171
systems=NonlinearSystem[],
7272
connection_type=nothing,
73+
checks = true,
7374
)
7475
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
7576
# Move things over, but do not touch array expressions
@@ -92,7 +93,7 @@ function NonlinearSystem(eqs, states, ps;
9293
process_variables!(var_to_name, defaults, states)
9394
process_variables!(var_to_name, defaults, ps)
9495

95-
NonlinearSystem(eqs, states, ps, var_to_name, observed, jac, name, systems, defaults, nothing, connection_type)
96+
NonlinearSystem(eqs, states, ps, var_to_name, observed, jac, name, systems, defaults, nothing, connection_type, checks = checks)
9697
end
9798

9899
function calculate_jacobian(sys::NonlinearSystem; sparse=false, simplify=false)

src/systems/optimization/optimizationsystem.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ function OptimizationSystem(op, states, ps;
6060
default_p=Dict(),
6161
defaults=_merge(Dict(default_u0), Dict(default_p)),
6262
name=nothing,
63-
systems = OptimizationSystem[])
63+
systems = OptimizationSystem[],
64+
checks = true)
6465
name === nothing && throw(ArgumentError("The `name` keyword must be provided. Please consider using the `@named` macro"))
6566
if !(isempty(default_u0) && isempty(default_p))
6667
Base.depwarn("`default_u0` and `default_p` are deprecated. Use `defaults` instead.", :OptimizationSystem, force=true)
@@ -81,7 +82,7 @@ function OptimizationSystem(op, states, ps;
8182
value(op), states, ps, var_to_name,
8283
observed,
8384
equality_constraints, inequality_constraints,
84-
name, systems, defaults
85+
name, systems, defaults, checks = checks
8586
)
8687
end
8788

0 commit comments

Comments
 (0)