Search code examples
openmdaoipopt

IPOPT optimizer signal handler TypeError


I am getting the following error while using IPOPT from pyOptSparse in OpenMDAO. I followed pyoptsparse documentations to install pyOptSparse with IPOPT which went very smooth. The SLSQP optimizer works perfect but IPOPT gives this error. Thank you 1


Solution

  • It looks like something is getting messed up with the user termination signal. To investigate though, it will help if you can provide the vesion information that rfalck asked for.

    The pyoptsparse driver, when used with SNOPT, supports "clean termination" which means you can send use "kill -SIGUSR1 pid" with your run process ID to terminate, and it will still clean up and give a summary. IPOPT doesn't support this, nor does SLSQP. We generally don't have any problems with SLSQP or IPOPT, but maybe some combination of your OS and IPOPT is causing a hiccup.

    As a workaround, try the following setting:

     prob.driver.options['user_terminate_signal'] = None
    

    That should turn off any of the signal caching and cleanup code. The error you got occured after the optimization finished, so you are almost there.