@@ -107,9 +107,7 @@ def __init__(self, microgrid, solver=None):
107
107
parameters = self ._parse_microgrid ()
108
108
109
109
self .problem = self ._create_problem (* parameters )
110
- self ._passed_solver = solver
111
- self ._solver = self ._get_solver ()
112
- self ._all_solvers = self ._solvers (solver )
110
+ self ._solver , self ._all_solvers = self ._solvers (solver )
113
111
114
112
@property
115
113
def has_genset (self ):
@@ -405,30 +403,7 @@ def _solvers(self, solver=None):
405
403
else :
406
404
solvers .append (cp .CLARABEL )
407
405
408
- return solvers
409
-
410
- def _get_solver (self , failure = False ):
411
- if not failure :
412
- logger .info ("Using default solver." if self ._passed_solver is None else f"Using { self ._passed_solver } solver." )
413
- return self ._passed_solver
414
-
415
- # failure
416
-
417
- if "MOSEK" in cp .installed_solvers ():
418
- solver = cp .MOSEK
419
- elif "GLPK_MI" in cp .installed_solvers () or self ._solver == cp .MOSEK :
420
- solver = cp .GLPK_MI
421
- elif self .problem .is_mixed_integer ():
422
- assert self .has_genset
423
-
424
- raise RuntimeError ("If microgrid has a genset, the cvxpy problem becomes mixed integer. Either MOSEK or "
425
- "CVXOPT must be installed.\n "
426
- "You can install both by calling pip install -e .'[genset_mpc]' in the root folder of "
427
- "pymgrid. Note that MOSEK requires a license; see https://www.mosek.com/ for details.\n "
428
- "Academic and trial licenses are available." )
429
-
430
- logger .info (f" { self ._solver } Solver failed. Retrying with solver={ solver } " )
431
- return solver
406
+ return solvers [0 ], solvers
432
407
433
408
def _set_parameters (self , load_vector , pv_vector , grid_vector , import_price , export_price ,
434
409
e_max , e_min , p_max_charge , p_max_discharge ,
0 commit comments