Skip to content

Commit a5ee8e9

Browse files
Merge pull request #878 from AayushSabharwal/as/allow-scc-init
feat: allow SCCNonlinearProblem in OverrideInit
2 parents 86e671e + 01c8d25 commit a5ee8e9

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/initialization.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ struct OverrideInitData{IProb, UIProb, IProbMap, IProbPmap}
3232

3333
function OverrideInitData(initprob::I, update_initprob!::J, initprobmap::K,
3434
initprobpmap::L) where {I, J, K, L}
35-
@assert initprob isa Union{NonlinearProblem, NonlinearLeastSquaresProblem}
35+
@assert initprob isa
36+
Union{SCCNonlinearProblem, NonlinearProblem, NonlinearLeastSquaresProblem}
3637
return new{I, J, K, L}(initprob, update_initprob!, initprobmap, initprobpmap)
3738
end
3839
end

src/problems/nonlinear_problems.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,8 @@ mutable struct SCCNonlinearProblem{uType, iip, P, E, I, Par} <:
472472

473473
function SCCNonlinearProblem{P, E, I, Par}(
474474
probs::P, funs::E, indp::I, pobj::Par, alias::Bool) where {P, E, I, Par}
475-
u0 = mapreduce(state_values, vcat, probs)
475+
u0 = mapreduce(
476+
state_values, vcat, probs; init = similar(state_values(first(probs)), 0))
476477
uType = typeof(u0)
477478
new{uType, false, P, E, I, Par}(probs, funs, indp, pobj, alias)
478479
end
@@ -501,7 +502,8 @@ function SymbolicIndexingInterface.parameter_values(prob::SCCNonlinearProblem)
501502
prob.parameter_object
502503
end
503504
function SymbolicIndexingInterface.state_values(prob::SCCNonlinearProblem)
504-
mapreduce(state_values, vcat, prob.probs)
505+
mapreduce(
506+
state_values, vcat, prob.probs; init = similar(state_values(first(prob.probs)), 0))
505507
end
506508

507509
function SymbolicIndexingInterface.set_state!(prob::SCCNonlinearProblem, val, idx)

0 commit comments

Comments
 (0)