Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions linopy/solvers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1578,8 +1578,7 @@ def solve_problem_from_file(

if solution_fn is not None:
try:
# TODO: possibly update saving of solution file
m.writesol(path_to_string(solution_fn))
m.writebinsol(path_to_string(solution_fn))
except Exception as err:
logger.info("Unable to save solution file. Raised error: %s", err)

Expand All @@ -1591,13 +1590,15 @@ def solve_problem_from_file(
def get_solver_solution() -> Solution:
objective = m.getObjVal()

var = [str(v) for v in m.getVariable()]

sol = pd.Series(m.getSolution(var), index=var, dtype=float)
var = m.getnamelist(xpress.Namespaces.COLUMN, 0, m.attributes.cols - 1)
sol = pd.Series(m.getSolution(), index=var, dtype=float)

try:
dual_ = [str(d) for d in m.getConstraint()]
dual = pd.Series(m.getDual(dual_), index=dual_, dtype=float)
_dual = m.getDual()
constraints = m.getnamelist(
xpress.Namespaces.ROW, 0, m.attributes.rows - 1
)
dual = pd.Series(_dual, index=constraints, dtype=float)
except (xpress.SolverError, xpress.ModelError, SystemError):
logger.warning("Dual values of MILP couldn't be parsed")
dual = pd.Series(dtype=float)
Expand Down
Loading