Skip to content

Commit 76d022a

Browse files
docs: add comments explaining why remake is called in the problem constructor
1 parent 6ed5790 commit 76d022a

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,7 @@ function DiffEqBase.ODEProblem{iip, specialize}(sys::AbstractODESystem, u0map =
759759
kwargs1 = merge(kwargs1, (; tstops))
760760
end
761761

762+
# Call `remake` so it runs initialization if it is trivial
762763
return remake(ODEProblem{iip}(f, u0, tspan, p, pt; kwargs1..., kwargs...))
763764
end
764765
get_callback(prob::ODEProblem) = prob.kwargs[:callback]
@@ -963,6 +964,7 @@ function DiffEqBase.DAEProblem{iip}(sys::AbstractODESystem, du0map, u0map, tspan
963964
kwargs1 = merge(kwargs1, (; tstops))
964965
end
965966

967+
# Call `remake` so it runs initialization if it is trivial
966968
return remake(DAEProblem{iip}(
967969
f, du0, u0, tspan, p; differential_vars = differential_vars,
968970
kwargs..., kwargs1...))
@@ -1009,6 +1011,7 @@ function DiffEqBase.DDEProblem{iip}(sys::AbstractODESystem, u0map = [],
10091011
if cbs !== nothing
10101012
kwargs1 = merge(kwargs1, (callback = cbs,))
10111013
end
1014+
# Call `remake` so it runs initialization if it is trivial
10121015
return remake(DDEProblem{iip}(f, u0, h, tspan, p; kwargs1..., kwargs...))
10131016
end
10141017

@@ -1058,6 +1061,7 @@ function DiffEqBase.SDDEProblem{iip}(sys::AbstractODESystem, u0map = [],
10581061
else
10591062
noise_rate_prototype = zeros(eltype(u0), size(noiseeqs))
10601063
end
1064+
# Call `remake` so it runs initialization if it is trivial
10611065
return remake(SDDEProblem{iip}(f, f.g, u0, h, tspan, p;
10621066
noise_rate_prototype =
10631067
noise_rate_prototype, kwargs1..., kwargs...))

src/systems/diffeqs/sdesystem.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,7 @@ function DiffEqBase.SDEProblem{iip, specialize}(
792792

793793
kwargs = filter_kwargs(kwargs)
794794

795+
# Call `remake` so it runs initialization if it is trivial
795796
return remake(SDEProblem{iip}(f, u0, tspan, p; callback = cbs, noise,
796797
noise_rate_prototype = noise_rate_prototype, kwargs...))
797798
end

src/systems/nonlinear/nonlinearsystem.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ function DiffEqBase.NonlinearProblem{iip}(sys::NonlinearSystem, u0map,
519519
f, u0, p = process_SciMLProblem(NonlinearFunction{iip}, sys, u0map, parammap;
520520
check_length, kwargs...)
521521
pt = something(get_metadata(sys), StandardNonlinearProblem())
522+
# Call `remake` so it runs initialization if it is trivial
522523
return remake(NonlinearProblem{iip}(f, u0, p, pt; filter_kwargs(kwargs)...))
523524
end
524525

@@ -548,6 +549,7 @@ function DiffEqBase.NonlinearLeastSquaresProblem{iip}(sys::NonlinearSystem, u0ma
548549
f, u0, p = process_SciMLProblem(NonlinearFunction{iip}, sys, u0map, parammap;
549550
check_length, kwargs...)
550551
pt = something(get_metadata(sys), StandardNonlinearProblem())
552+
# Call `remake` so it runs initialization if it is trivial
551553
return remake(NonlinearLeastSquaresProblem{iip}(f, u0, p; filter_kwargs(kwargs)...))
552554
end
553555

0 commit comments

Comments
 (0)