Reputation: 273
Traceback (most recent call last):
File "/home/rory/Documents/coloring_test/problemSolver.py", line 151, in <module>
p.run_driver()
File "/home/rory/.local/lib/python3.6/site-packages/openmdao/core/problem.py", line 663, in run_driver
return self.driver.run()
File "/home/rory/.local/lib/python3.6/site-packages/openmdao/drivers/pyoptsparse_driver.py", line 493, in run
signal.signal(sigusr, self._signal_cache)
File "/usr/lib/python3.6/signal.py", line 47, in signal
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
TypeError: signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object
There are a couple of situations where I see this error:
I receive this error when I run_driver() using IPOPT with mumps on my Dymos problem which I haven't managed to get working yet.
Whenever I run run_driver() while using IPOPT with HSL instead of mumps for any dynamics problem, including the basic examples from Dymos.
Preceding this error is the list of constraints at each node, all of which have a value of 0.00 (their reference value).
1251 traj.phases.phase0.path_constraints.path:c_fl i -1.000000E+30 0.000000E+00 1.000000E+00 9.00000E+100
1252 traj.phases.phase0.path_constraints.path:c_fl i -1.000000E+30 0.000000E+00 1.000000E+00 9.00000E+100
1253 traj.phases.phase0.path_constraints.path:c_fl i -1.000000E+30 0.000000E+00 1.000000E+00 9.00000E+100
1254 traj.phases.phase0.path_constraints.path:c_fl i -1.000000E+30 0.000000E+00 1.000000E+00 9.00000E+100
No iterations appear to be solved by IPOPT.
Also, as a side question, I see that HSL has many solvers such as ma27, ma77 within the install directory. How do I specify which one is being installed, or if they all are, which is being used by IPOPT?
Upvotes: 0
Views: 104
Reputation: 2202
That error is caused by a feature that allows you to send a termination signal from the OS and get a clean exit from SNOPT. That feature seems to cause problems with some operating systems, and we should really turn it off by default.
You can work around the problem by setting:
prob.driver.options['user_terminate_signal'] = None
That should get around the exception. I don't know the answer to the IPOPT side question though.
Upvotes: 3