Skip to content

Commit 1fed2fd

Browse files
feat: support SciMLBase.remake_initializeprob
1 parent 0e85ce1 commit 1fed2fd

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/systems/nonlinear/initializesystem.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,25 @@ function generate_initializesystem(sys::ODESystem;
141141

142142
return sys_nl
143143
end
144+
145+
function SciMLBase.remake_initializeprob(sys::ODESystem, odefn, u0, t0, p)
146+
if (u0 === missing || !(eltype(u0) <: Pair) || isempty(u0)) &&
147+
(p === missing || !(eltype(p) <: Pair) || isempty(p))
148+
return odefn.initializeprob, odefn.initializeprobmap, odefn.initializeprobpmap
149+
end
150+
if u0 === missing
151+
u0 = Dict()
152+
end
153+
if p === missing
154+
p = Dict()
155+
end
156+
u0 = todict(u0)
157+
p = todict(p)
158+
initprob = InitializationProblem(sys, t0, u0, p)
159+
initprobmap = getu(initprob, unknowns(sys))
160+
punknowns = [p for p in all_variable_symbols(initprob) if is_parameter(sys, p)]
161+
getpunknowns = getu(initprob, punknowns)
162+
setpunknowns = setp_oop(sys, punknowns)
163+
initprobpmap = GetUpdatedMTKParameters(getpunknowns, setpunknowns)
164+
return initprob, initprobmap, initprobpmap
165+
end

0 commit comments

Comments
 (0)