Skip to content

Commit 408caa6

Browse files
feat: add dedicated remake method for SteadyStateProblem
1 parent 2e5b043 commit 408caa6

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/remake.jl

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,47 @@ function remake(prob::NonlinearProblem;
712712
return prob
713713
end
714714

715+
function remake(prob::SteadyStateProblem;
716+
f = missing,
717+
u0 = missing,
718+
p = missing,
719+
kwargs = missing,
720+
interpret_symbolicmap = true,
721+
use_defaults = false,
722+
lazy_initialization = nothing,
723+
build_initializeprob = true,
724+
_kwargs...)
725+
newu0, newp = updated_u0_p(prob, u0, p; interpret_symbolicmap, use_defaults)
726+
727+
if build_initializeprob
728+
if f !== missing && has_initialization_data(f)
729+
initialization_data = remake_initialization_data(
730+
prob.f.sys, f, u0, nothing, p, newu0, newp)
731+
else
732+
initialization_data = remake_initialization_data(
733+
prob.f.sys, prob.f, u0, nothing, p, newu0, newp)
734+
end
735+
else
736+
initialization_data = nothing
737+
end
738+
739+
f = coalesce(f, prob.f)
740+
f = remake(prob.f; f, initialization_data)
741+
742+
prob = if kwargs === missing
743+
SteadyStateProblem{isinplace(prob)}(f = f, u0 = newu0, p = newp; prob.kwargs...,
744+
_kwargs...)
745+
else
746+
SteadyStateProblem{isinplace(prob)}(f = f, u0 = newu0, p = newp; kwargs...)
747+
end
748+
749+
u0, p = maybe_eager_initialize_problem(prob, initialization_data, lazy_initialization)
750+
@reset prob.u0 = u0
751+
@reset prob.p = p
752+
753+
return prob
754+
end
755+
715756
"""
716757
remake(prob::NonlinearLeastSquaresProblem; f = missing, u0 = missing, p = missing,
717758
kwargs = missing, _kwargs...)

0 commit comments

Comments
 (0)