File tree Expand file tree Collapse file tree 1 file changed +11
-5
lines changed
pyomo/contrib/solver/solvers/knitro Expand file tree Collapse file tree 1 file changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -38,12 +38,15 @@ class Engine:
38
38
obj_nl_expr : Optional [NonlinearExpressionData ]
39
39
con_nl_expr_map : MutableMapping [int , NonlinearExpressionData ]
40
40
41
+ _status : Optional [int ]
42
+
41
43
def __init__ (self ):
42
- self ._kc = None
43
44
self .var_map = {}
44
45
self .con_map = {}
45
46
self .obj_nl_expr = None
46
47
self .con_nl_expr_map = {}
48
+ self ._kc = None
49
+ self ._status = None
47
50
48
51
def __del__ (self ):
49
52
self .close ()
@@ -53,7 +56,7 @@ def renew(self):
53
56
self ._kc = Package .create_context ()
54
57
55
58
def close (self ):
56
- if hasattr ( self , "_kc" ) and self ._kc is not None :
59
+ if self ._kc is not None :
57
60
self ._execute (knitro .KN_free )
58
61
self ._kc = None
59
62
@@ -151,11 +154,14 @@ def set_obj(self, obj: ObjectiveData):
151
154
152
155
def solve (self ) -> int :
153
156
self ._register_callback ()
154
- return self ._execute (knitro .KN_solve )
157
+ self ._status = self ._execute (knitro .KN_solve )
158
+ return self ._status
155
159
156
160
def get_status (self ) -> int :
157
- status , _ , _ , _ = self ._execute (knitro .KN_get_solution )
158
- return status
161
+ if self ._status is None :
162
+ msg = "Solver has not been run yet. Since the solver has not been executed, no status is available."
163
+ raise RuntimeError (msg )
164
+ return self ._status
159
165
160
166
def get_num_iters (self ) -> int :
161
167
return self ._execute (knitro .KN_get_number_iters )
You can’t perform that action at this time.
0 commit comments