Skip to content

Commit 57cb89a

Browse files
docs: add comments explaining why remake is called in the problem constructor
1 parent b6ff50a commit 57cb89a

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/systems/diffeqs/abstractodesystem.jl

+4
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

+1
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

+2
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@ function DiffEqBase.NonlinearProblem{iip}(sys::NonlinearSystem, u0map,
526526
f, u0, p = process_SciMLProblem(NonlinearFunction{iip}, sys, u0map, parammap;
527527
check_length, kwargs...)
528528
pt = something(get_metadata(sys), StandardNonlinearProblem())
529+
# Call `remake` so it runs initialization if it is trivial
529530
return remake(NonlinearProblem{iip}(f, u0, p, pt; filter_kwargs(kwargs)...))
530531
end
531532

@@ -555,6 +556,7 @@ function DiffEqBase.NonlinearLeastSquaresProblem{iip}(sys::NonlinearSystem, u0ma
555556
f, u0, p = process_SciMLProblem(NonlinearFunction{iip}, sys, u0map, parammap;
556557
check_length, kwargs...)
557558
pt = something(get_metadata(sys), StandardNonlinearProblem())
559+
# Call `remake` so it runs initialization if it is trivial
558560
return remake(NonlinearLeastSquaresProblem{iip}(f, u0, p; filter_kwargs(kwargs)...))
559561
end
560562

0 commit comments

Comments
 (0)