Skip to content

Commit 2064680

Browse files
fixup! feat: support parameter updates in initialize_dae!
1 parent 60a45fa commit 2064680

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ version = "6.87.0"
55

66
[deps]
77
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
8+
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"
89
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
910
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
1011
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
@@ -46,6 +47,7 @@ TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77"
4647

4748
[compat]
4849
ADTypes = "0.2, 1"
50+
Accessors = "0.1.36"
4951
Adapt = "3.0, 4"
5052
ArrayInterface = "7"
5153
DataStructures = "0.18"

src/OrdinaryDiffEq.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ using Reexport
1414

1515
using Logging
1616

17+
using Accessors: @reset
18+
1719
using MuladdMacro, SparseArrays, FastClosures
1820

1921
using LinearAlgebra

src/initialize_dae.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,11 @@ function _initialize_dae!(integrator, prob::Union{ODEProblem, DAEProblem},
164164
else
165165
error("Unreachable reached. Report this error.")
166166
end
167-
if isdefined(prob.f, :initializeprobpmap) && prob.f.initializeprobpmap !== nothing
167+
if SciMLBase.has_initializeprobpmap(prob.f)
168168
integrator.p = prob.f.initializeprobpmap(prob, nlsol)
169+
sol = integrator.sol
170+
@reset sol.prob.p = integrator.p
171+
integrator.sol = sol
169172
end
170173

171174
if nlsol.retcode != ReturnCode.Success

0 commit comments

Comments
 (0)