Skip to content

Commit c24e9df

Browse files
authored
Merge pull request #917 from scipopt/add-createConsBasicLinear
Add _createConsBasicLinear
2 parents c7ecb2a + a006ea6 commit c24e9df

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## Unreleased
44
### Added
5+
- Added stage checks to presolve, freereoptsolve, freetransform
56
- Added primal_dual_evolution recipe and a plot recipe
67
### Fixed
78
### Changed

src/pyscipopt/scip.pxi

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2057,6 +2057,15 @@ cdef class Model:
20572057
def freeTransform(self):
20582058
"""Frees all solution process data including presolving and
20592059
transformed problem, only original problem is kept."""
2060+
if self.getStage() not in [SCIP_STAGE_INIT,
2061+
SCIP_STAGE_PROBLEM,
2062+
SCIP_STAGE_TRANSFORMED,
2063+
SCIP_STAGE_PRESOLVING,
2064+
SCIP_STAGE_PRESOLVED,
2065+
SCIP_STAGE_SOLVING,
2066+
SCIP_STAGE_SOLVED]:
2067+
raise Warning("method cannot be called in stage %i." % self.getStage())
2068+
20602069
self._modelvars = {
20612070
var: value
20622071
for var, value in self._modelvars.items()
@@ -6175,6 +6184,11 @@ cdef class Model:
61756184

61766185
def presolve(self):
61776186
"""Presolve the problem."""
6187+
if self.getStage() not in [SCIP_STAGE_PROBLEM, SCIP_STAGE_TRANSFORMED,\
6188+
SCIP_STAGE_PRESOLVING, SCIP_STAGE_PRESOLVED, \
6189+
SCIP_STAGE_SOLVED]:
6190+
raise Warning("method cannot be called in stage %i." % self.getStage())
6191+
61786192
PY_SCIP_CALL(SCIPpresolve(self._scip))
61796193
self._bestSol = Solution.create(self._scip, SCIPgetBestSol(self._scip))
61806194

@@ -8977,6 +8991,15 @@ cdef class Model:
89778991

89788992
def freeReoptSolve(self):
89798993
"""Frees all solution process data and prepares for reoptimization."""
8994+
8995+
if self.getStage() not in [SCIP_STAGE_INIT,
8996+
SCIP_STAGE_PROBLEM,
8997+
SCIP_STAGE_TRANSFORMED,
8998+
SCIP_STAGE_PRESOLVING,
8999+
SCIP_STAGE_PRESOLVED,
9000+
SCIP_STAGE_SOLVING,
9001+
SCIP_STAGE_SOLVED]:
9002+
raise Warning("method cannot be called in stage %i." % self.getStage())
89809003
PY_SCIP_CALL(SCIPfreeReoptSolve(self._scip))
89819004

89829005
def chgReoptObjective(self, coeffs, sense = 'minimize'):

0 commit comments

Comments
 (0)