Skip to content

cyipopt fails with load_solutions=False #2958

Open
@ZedongPeng

Description

@ZedongPeng

Summary

cyipopt solver will fail when we set load_solution=False.

Steps to reproduce the issue

def test_solve_square(self):
m = pyo.ConcreteModel()
m.ex_block = ExternalGreyBoxBlock(concrete=True)
block = m.ex_block
m_ex = _make_external_model()
input_vars = [m_ex.a, m_ex.b, m_ex.r, m_ex.x_out, m_ex.y_out]
external_vars = [m_ex.x, m_ex.y]
residual_cons = [m_ex.c_out_1, m_ex.c_out_2]
external_cons = [m_ex.c_ex_1, m_ex.c_ex_2]
ex_model = ExternalPyomoModel(
input_vars, external_vars, residual_cons, external_cons
)
block.set_external_model(ex_model)
_add_linking_constraints(m)
m.a.fix(1)
m.b.fix(2)
m.r.fix(3)
m.obj = pyo.Objective(expr=0)
solver = pyo.SolverFactory("cyipopt")
solver.solve(m)

Change line 223 to solver.solve(m,load_solutions=False)

Error Message

$ # Output message here, including entire stack trace, if available
======================================================================
ERROR: test_solve_square (__main__.TestExternalGreyBoxBlock)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/zedongpeng/Github/pyomo/pyomo/contrib/pynumero/interfaces/tests/test_external_pyomo_block.py", line 223, in test_solve_square
    solver.solve(m,load_solutions=False)
  File "/Users/zedongpeng/Github/pyomo/pyomo/contrib/pynumero/algorithms/solvers/cyipopt_solver.py", line 405, in solve
    sm = nlp.symbol_map
AttributeError: 'PyomoNLPWithGreyBoxBlocks' object has no attribute 'symbol_map'

Information on your system

Pyomo version: 6.6.2.dev0
Python version: 3.10.12
Operating system: macOS
How Pyomo was installed (PyPI, conda, source): source
Solver (if applicable): cyipopt

Additional information

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions