Skip to content

Commit 5e7f048

Browse files
committed
pass check_units through
1 parent a61f4bf commit 5e7f048

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,7 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
778778
build_initializeprob = true,
779779
initialization_eqs = [],
780780
fully_determined = false,
781+
check_units = true,
781782
kwargs...)
782783
eqs = equations(sys)
783784
dvs = unknowns(sys)
@@ -816,7 +817,7 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
816817
end
817818
initializeprob = ModelingToolkit.InitializationProblem(
818819
sys, t, u0map, parammap; guesses, warn_initialize_determined,
819-
initialization_eqs, eval_expression, eval_module, fully_determined)
820+
initialization_eqs, eval_expression, eval_module, fully_determined, check_units)
820821
initializeprobmap = getu(initializeprob, unknowns(sys))
821822

822823
zerovars = Dict(setdiff(unknowns(sys), keys(defaults(sys))) .=> 0.0)
@@ -1426,18 +1427,19 @@ function InitializationProblem{iip, specialize}(sys::AbstractODESystem,
14261427
warn_initialize_determined = true,
14271428
initialization_eqs = [],
14281429
fully_determined = false,
1430+
check_units = true,
14291431
kwargs...) where {iip, specialize}
14301432
if !iscomplete(sys)
14311433
error("A completed system is required. Call `complete` or `structural_simplify` on the system before creating an `ODEProblem`")
14321434
end
14331435
if isempty(u0map) && get_initializesystem(sys) !== nothing
1434-
isys = get_initializesystem(sys; initialization_eqs)
1436+
isys = get_initializesystem(sys; initialization_eqs, check_units)
14351437
elseif isempty(u0map) && get_initializesystem(sys) === nothing
14361438
isys = structural_simplify(
1437-
generate_initializesystem(sys; initialization_eqs); fully_determined)
1439+
generate_initializesystem(sys; initialization_eqs, check_units); fully_determined)
14381440
else
14391441
isys = structural_simplify(
1440-
generate_initializesystem(sys; u0map, initialization_eqs); fully_determined)
1442+
generate_initializesystem(sys; u0map, initialization_eqs, check_units); fully_determined)
14411443
end
14421444

14431445
uninit = setdiff(unknowns(sys), [unknowns(isys); getfield.(observed(isys), :lhs)])

src/systems/nonlinear/initializesystem.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ function generate_initializesystem(sys::ODESystem;
1010
default_dd_value = 0.0,
1111
algebraic_only = false,
1212
initialization_eqs = [],
13+
check_units = true,
1314
kwargs...)
1415
sts, eqs = unknowns(sys), equations(sys)
1516
idxs_diff = isdiffeq.(eqs)
@@ -102,6 +103,7 @@ function generate_initializesystem(sys::ODESystem;
102103
pars;
103104
defaults = merge(ModelingToolkit.defaults(sys), todict(u0), dd_guess),
104105
parameter_dependencies = parameter_dependencies(sys),
106+
checks = check_units,
105107
name,
106108
kwargs...)
107109

test/dq_units.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,5 +207,6 @@ end
207207
u0 = [pend.x => 1.0, pend.y => 0.0]
208208
p = [pend.g => 1.0, pend.L => 1.0]
209209
guess = [pend.λ => 0.0]
210-
@test_broken prob = ODEProblem(pend, u0, (0.0, 1.0), p; guesses = guess)
210+
@test prob = ODEProblem(
211+
pend, u0, (0.0, 1.0), p; guesses = guess, check_units = false) isa Any
211212
end

0 commit comments

Comments
 (0)