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:
3838 obj_nl_expr : Optional [NonlinearExpressionData ]
3939 con_nl_expr_map : MutableMapping [int , NonlinearExpressionData ]
4040
41+ _status : Optional [int ]
42+
4143 def __init__ (self ):
42- self ._kc = None
4344 self .var_map = {}
4445 self .con_map = {}
4546 self .obj_nl_expr = None
4647 self .con_nl_expr_map = {}
48+ self ._kc = None
49+ self ._status = None
4750
4851 def __del__ (self ):
4952 self .close ()
@@ -53,7 +56,7 @@ def renew(self):
5356 self ._kc = Package .create_context ()
5457
5558 def close (self ):
56- if hasattr ( self , "_kc" ) and self ._kc is not None :
59+ if self ._kc is not None :
5760 self ._execute (knitro .KN_free )
5861 self ._kc = None
5962
@@ -151,11 +154,14 @@ def set_obj(self, obj: ObjectiveData):
151154
152155 def solve (self ) -> int :
153156 self ._register_callback ()
154- return self ._execute (knitro .KN_solve )
157+ self ._status = self ._execute (knitro .KN_solve )
158+ return self ._status
155159
156160 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
159165
160166 def get_num_iters (self ) -> int :
161167 return self ._execute (knitro .KN_get_number_iters )
You can’t perform that action at this time.
0 commit comments