Prev Subsection 7.1.1: Task Section Up Section 7.1: Optimization Input File Subsection 7.1.3: Parameters Section Next
7.1.2 Options Section
This section defines the control parameters for the optimization. The options that can be defined will depend on the chosen optimization method, which is set with an attribute of the Options section. Currently the two implemented optimization methods are the “Levenberg-Marquardt” method (type=“levmar”) and the “Constrained Levenberg-Marquardt” method (type=“constrained levmar”). Documentation for the Constrained Levenberg-Marquardt method can be found at https://users.ics.forth.gr/~lourakis/levmar/.
Note that this section is optional. When omitted, default values for the control parameters are chosen. The following parameters can be defined.
Parameter | Description | Default |
obj_tol | Convergence tolerance for objective function. (1) | 0.001 |
f_diff_scale | Forward difference scale factor (2) | 0.001 |
log_level | Sets the amount of output that is generated on screen and in the logfile by the FEBio solver (3) | LOG_NEVER |
tau | Step size scale factor (4) | 1.0e-3 |
print_level | Sets the amount of output generated by the optimization module (5) | PRINT_ITERATIONS |
For example,
<Options type="constrained levmar"> <obj_tol>0.001</obj_tol> <f_diff_scale>0.001</f_diff_scale> <print_level>PRINT_ITERATIONS</print_level> </Options>
Comments:
- The objective function that is to be minimized is a function of the form:Here, is the function that describes the model, is a vector with the (unknown) model parameters and the are the user-defined data that approximates the ideal model.
- The optimization method currently implemented requires the calculation of the gradient of the model function with respect to the model parameters . Since this gradient is not known, it will be approximated using forward differences. For example, the -th component of the gradient is approximated as follows.The value for is determined from the following formula. where, is the forward difference scale factor which can be set by the user with the fdiff_scale option.
- The log_level allows the user to control exactly how much output from the time iterations of each optimization iteration is written to the screen and logfile. The following values are allowed:
Value Description LOG_DEFAULT Use default settings (may be omitted) LOG_NEVER Don't generate any output LOG_FILE_ONLY Save to the logfile only LOG_SCREEN_ONLY Only print to the screen LOG_FILE_AND_SCREEN Save to the logfile and print to the screen - The step size scale factor tau can be set as an input only for the Constrained Levenberg-Marquardt method. It scales the initial guess for the damping parameter.
- The print_level sets how much output is generated during the optimizations. In particular, it controls if the objective function values are printed are not. The following values are allowed:
Value Description PRINT_ITERATIONS Print minimal iterations info PRINT_VERBOSE Print a lot of information, incl. objective function values