>>> import pyomo.environ as pyo
>>> from pyomo.contrib import appsi
>>> m = pyo.ConcreteModel()
>>> m.x = pyo.Var()
>>> m.obj = pyo.Objective(expr=m.x**2)
>>> opt = appsi.solvers.Ipopt()
>>> opt.config.load_solution = False
>>> results = opt.solve(m)
>>> if results.termination_condition == appsi.base.TerminationCondition.optimal:
... print('optimal solution found: ', results.best_feasible_objective)
... results.solution_loader.load_vars()
... print('the optimal value of x is ', m.x.value)
... elif results.best_feasible_objective is not None:
... print('sub-optimal but feasible solution found: ', results.best_feasible_objective)
... results.solution_loader.load_vars(vars_to_load=[m.x])
... print('The value of x in the feasible solution is ', m.x.value)
... elif results.termination_condition in {appsi.base.TerminationCondition.maxIterations, appsi.base.TerminationCondition.maxTimeLimit}:
... print('No feasible solution was found. The best lower bound found was ', results.best_objective_bound)
... else:
... print('The following termination condition was encountered: ', results.termination_condition)