Closed
Description
Recently I noticed that the numerical checks in PowerSimulations.jl since it takes a long time to run with HiGHS w.r.t to Gurobi or Xpress.
This is the loop we use is something like this
function get_constraint_numerical_bounds(model::OperationModel)
if !is_built(model)
error("Model not built, can't calculate constraint numerical bounds")
end
bounds = ConstraintBounds()
for (const_key, constraint_array) in get_constraints(get_optimization_container(model))
# TODO: handle this at compile and not at run time
if isa(constraint_array, SparseAxisArray)
for idx in eachindex(constraint_array)
constraint_array[idx] == 0.0 && continue
con_obj = JuMP.constraint_object(constraint_array[idx])
update_coefficient_bounds(bounds, con_obj, (const_key, idx))
update_rhs_bounds(bounds, con_obj, (const_key, idx))
end
else
for idx in Iterators.product(constraint_array.axes...)
!isassigned(constraint_array, idx...) && continue
con_obj = JuMP.constraint_object(constraint_array[idx...])
update_coefficient_bounds(bounds, con_obj, (const_key, idx))
update_rhs_bounds(bounds, con_obj, (const_key, idx))
end
end
end
return bounds
end
Metadata
Metadata
Assignees
Labels
No labels