logfile.log

logfile.log is generated by the optimizer and records the sequence of events happening underneath, which is useful to troubleshoot optimization crashes.

Three types of loggers can send information to the logfile:
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:


Figure 1.

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:


Figure 2.

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:


Figure 3.

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.