Skip to content

Commit 83c5e35

Browse files
authored
MOI interface fixes (#188)
* MOI fixes * check variablestart too
1 parent f137df7 commit 83c5e35

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

ext/ExaModelsMOI.jl

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,16 @@ end
115115

116116
function fill_variable_start!(moim, x0, param_vis)
117117
var_to_idx = Dict{MOI.VariableIndex,Int}()
118-
for (i, vi) in enumerate(MOI.get(moim, MOI.ListOfVariableIndices()))
118+
i = 0
119+
for vi in MOI.get(moim, MOI.ListOfVariableIndices())
119120
vi param_vis && continue
121+
i += 1
120122
var_to_idx[vi] = i
121-
start = MOI.get(moim, MOI.VariablePrimalStart(), vi)
123+
start = if MOI.supports(moim, MOI.VariablePrimalStart(), typeof(vi))
124+
MOI.get(moim, MOI.VariablePrimalStart(), vi)
125+
else
126+
nothing
127+
end
122128
isnothing(start) && continue
123129
x0[i] = start
124130
end
@@ -307,8 +313,14 @@ function exafy_con(
307313
for (i, ci) in enumerate(cons)
308314
func = MOI.get(moim, MOI.ConstraintFunction(), ci)
309315
set = MOI.get(moim, MOI.ConstraintSet(), ci)
310-
start = MOI.get(moim, MOI.ConstraintPrimalStart(), ci)
311316
con_to_idx[ci] = offset + i
317+
start = if MOI.supports(
318+
moim, MOI.ConstraintPrimalStart(), typeof(ci)
319+
)
320+
MOI.get(moim, MOI.ConstraintPrimalStart(), ci)
321+
else
322+
nothing
323+
end
312324
_exafy_con_update_start(ci, start, y0, con_to_idx)
313325
_exafy_con_update_vector(ci, set, lcon, ucon, con_to_idx)
314326
bin = _exafy_con(ci, func, bin, var_to_idx, con_to_idx)

0 commit comments

Comments
 (0)