Skip to content

Commit 4a53fba

Browse files
refactor: don't store InitializationSystemMetadata in system metadata
1 parent 6feb8d7 commit 4a53fba

File tree

2 files changed

+4
-68
lines changed

2 files changed

+4
-68
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,12 +1457,12 @@ function InitializationProblem{iip, specialize}(sys::AbstractSystem,
14571457
elseif isempty(u0map) && get_initializesystem(sys) === nothing
14581458
isys = generate_initializesystem(
14591459
sys; initialization_eqs, check_units, pmap = parammap,
1460-
guesses, extra_metadata = (; use_scc), algebraic_only)
1460+
guesses, algebraic_only)
14611461
simplify_system = true
14621462
else
14631463
isys = generate_initializesystem(
14641464
sys; u0map, initialization_eqs, check_units,
1465-
pmap = parammap, guesses, extra_metadata = (; use_scc), algebraic_only)
1465+
pmap = parammap, guesses, algebraic_only)
14661466
simplify_system = true
14671467
end
14681468

@@ -1477,12 +1477,6 @@ function InitializationProblem{iip, specialize}(sys::AbstractSystem,
14771477
isys = structural_simplify(isys; fully_determined)
14781478
end
14791479

1480-
meta = get_metadata(isys)
1481-
if meta isa InitializationSystemMetadata
1482-
@set! isys.metadata.oop_reconstruct_u0_p = ReconstructInitializeprob(
1483-
sys, isys)
1484-
end
1485-
14861480
ts = get_tearing_state(isys)
14871481
unassigned_vars = StructuralTransformations.singular_check(ts)
14881482
if warn_initialize_determined && !isempty(unassigned_vars)

src/systems/nonlinear/initializesystem.jl

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function generate_initializesystem(sys::AbstractTimeDependentSystem;
1111
default_dd_guess = Bool(0),
1212
algebraic_only = false,
1313
check_units = true, check_defguess = false,
14-
name = nameof(sys), extra_metadata = (;), kwargs...)
14+
name = nameof(sys), kwargs...)
1515
eqs = equations(sys)
1616
if !(eqs isa Vector{Equation})
1717
eqs = Equation[x for x in eqs if x isa Equation]
@@ -167,7 +167,7 @@ function generate_initializesystem(sys::AbstractTimeIndependentSystem;
167167
guesses = Dict(),
168168
algebraic_only = false,
169169
check_units = true, check_defguess = false,
170-
name = nameof(sys), extra_metadata = (;), kwargs...)
170+
name = nameof(sys), kwargs...)
171171
eqs = equations(sys)
172172
trueobs, eqs = unhack_observed(observed(sys), eqs)
173173
vars = unique([unknowns(sys); getfield.(trueobs, :lhs)])
@@ -432,64 +432,6 @@ function _has_delays(sys::AbstractSystem, ex, banned)
432432
return any(x -> _has_delays(sys, x, banned), args)
433433
end
434434

435-
struct ReconstructInitializeprob
436-
getter::Any
437-
setter::Any
438-
end
439-
440-
function ReconstructInitializeprob(
441-
srcsys::AbstractSystem, dstsys::AbstractSystem)
442-
syms = reduce(
443-
vcat, reorder_parameters(dstsys, parameters(dstsys));
444-
init = [])
445-
getter = getu(srcsys, syms)
446-
setter = setp_oop(dstsys, syms)
447-
return ReconstructInitializeprob(getter, setter)
448-
end
449-
450-
function (rip::ReconstructInitializeprob)(srcvalp, dstvalp)
451-
newp = rip.setter(dstvalp, rip.getter(srcvalp))
452-
if state_values(dstvalp) === nothing
453-
return nothing, newp
454-
end
455-
srcu0 = state_values(srcvalp)
456-
T = srcu0 === nothing || isempty(srcu0) ? Union{} : eltype(srcu0)
457-
if parameter_values(dstvalp) isa MTKParameters
458-
if !isempty(newp.tunable)
459-
T = promote_type(eltype(newp.tunable), T)
460-
end
461-
elseif !isempty(newp)
462-
T = promote_type(eltype(newp), T)
463-
end
464-
if T == eltype(state_values(dstvalp))
465-
u0 = state_values(dstvalp)
466-
elseif T != Union{}
467-
u0 = T.(state_values(dstvalp))
468-
end
469-
buf, repack, alias = SciMLStructures.canonicalize(SciMLStructures.Tunable(), newp)
470-
if eltype(buf) != T
471-
newbuf = similar(buf, T)
472-
copyto!(newbuf, buf)
473-
newp = repack(newbuf)
474-
end
475-
buf, repack, alias = SciMLStructures.canonicalize(SciMLStructures.Initials(), newp)
476-
if eltype(buf) != T
477-
newbuf = similar(buf, T)
478-
copyto!(newbuf, buf)
479-
newp = repack(newbuf)
480-
end
481-
return u0, newp
482-
end
483-
484-
struct InitializationSystemMetadata
485-
u0map::Dict{Any, Any}
486-
pmap::Dict{Any, Any}
487-
additional_guesses::Dict{Any, Any}
488-
additional_initialization_eqs::Vector{Equation}
489-
extra_metadata::NamedTuple
490-
oop_reconstruct_u0_p::Union{Nothing, ReconstructInitializeprob}
491-
end
492-
493435
function get_possibly_array_fallback_singletons(varmap, p)
494436
if haskey(varmap, p)
495437
return varmap[p]

0 commit comments

Comments
 (0)