def test_GOA_Nonconvex2(self): with SolverFactory('mindtpy') as opt: model = Nonconvex2() print('\n Solving Nonconvex2 with global Outer Approximation') results = opt.solve(model, strategy='GOA', mip_solver=required_solvers[1], nlp_solver='baron', add_no_good_cuts=True) self.assertIs(results.solver.termination_condition, TerminationCondition.optimal) self.assertAlmostEqual(value(model.objective.expr), -0.94347, places=2)
from pyomo.environ import SolverFactory, value from pyomo.environ import * from pyomo.opt import TerminationCondition required_solvers = ('baron', 'cplex_persistent') if not all(SolverFactory(s).available(False) for s in required_solvers): subsolvers_available = False elif not SolverFactory('baron').license_is_valid(): subsolvers_available = False else: subsolvers_available = True model_list = [ EightProcessFlowsheet(convex=False), Nonconvex1(), Nonconvex2(), Nonconvex3(), Nonconvex4(), ] @unittest.skipIf(not subsolvers_available, 'Required subsolvers %s are not available' % (required_solvers, )) @unittest.skipIf(not pyomo.core.base.symbolic.differentiate_available, 'Symbolic differentiation is not available') @unittest.skipIf(not pyomo.contrib.mcpp.pyomo_mcpp.mcpp_available(), 'MC++ is not available') class TestMindtPy(unittest.TestCase): """Tests for the MindtPy solver plugin.""" def test_GOA(self):