logfile.log
logfile.log is generated by the optimizer and records the sequence of events happening underneath, which is useful to troubleshoot optimization crashes.
- Sent by Optimizer
- Whenever the cost function or sensitivity is evaluated, optimizer
generates a log message which tells you what it is trying to do. The
message generated by optimizer starts with
msolve.optimize.Optimizer and looks like
this:
The log message contains the iteration number, the log level (importance of message), and the event itself. If your optimization stops and this is the last message you can see from the logfile, it indicates hat the problem occured before the second iteration started.
- Sent by Response
- Each response object evaluates itself before the optimizer can evaluate
the cost function/sensitivity. When the response is evaluated, a logging
message is generated by the response logger. The message generated by
response class starts with msolve.optimize.Response
and looks like this:
The log message contains the iteration number, the log level (message importance), and the name and value of the response that generated the information. If your optimization stops and this is the last message you can see from the logfile, it implies that the response definition is not correct or the response cannot be evaluated under the current design (an invalid design, for example).
- Sent by OptimizerValidator
- If the optimizer steps into a design that is invalid for MotionSolve, OptimizerValidator sends a message to the
logfile. The message starts with
msolve.optimize.Optimizer.OptimizerValidator
followed by error or warning message:
If that is the last message you can see from logfile before the optimization crashes, it indicates that the optimizer stepped into a point where the model became physically invalid. You can solve the problem by tightening Dv.blimit or adding constraints.