minimize

Jump to Description or Examples; explanation of how commands are documented.


Purpose

The purpose of the minimize command is to refine the structure of a molecular system by regressing its potential energy to a local minimum.


Syntax

minimize ?path? ?keyword = value? ... ?execute? ?keyword = value?...


Path/Keyword Values Default Meaning
meth*od casc*ade cascade Select the minimization scheme. steep*est conju*gate newt*on final_conv*ergence real 0.001 Stopping criterion for maximum derivative. iter*ation_limit integer 300 Maximum number of iterations to perform.
sd Pathname to parameters for steepest-descents method. conv*ergence real 1000.0 Maximum derivative to achieve with steepest-descents method. line*_search_precision real 0.1 Precision of the line minimization at each iteration of steepest descents. peek string peek BTCL command called after every iteration to write out .ipc and/or .pcar files to monitor the progress of a minimization. Value may be "" to turn off the peek mechanism.
cg Pathname to parameters for conjugate-gradients method. meth*od polak polak Select a particular conjugate- flet*cher gradients algorithm. conv*ergence real 10.0 Maximum derivative to achieve with conjugate-gradients method. line*_search_precision real 0.1 Precision of the line minimization at each iteration of conjugate gradients.
newton Pathname to parameters for Newton methods. meth*od bfgs bfgs Select a particular Newton dfp algorithm. newton_r*aphson trunc*ated conv*ergence real 0.001 Maximum derivative to achieve with any Newton method. line*_search_precision real 0.9 Precision of the line minimization at each iteration of the chosen Newton method. move*ment_limit real 0.2 Limit how far atoms can move in one step. cell Boolean false For periodic systems, whether to include cell parameters as minimization variables.
execute Pathname to execute structures (a separate execute structure is passed to the minimize command for each occurrence of execute). command string "echo hello" A full BTCL command, enclosed in quotes (" ") or braces ({ }), to be executed during minimization (e.g., print). before Boolean false Execute command before minimization run begins. after Boolean false Execute command after minimization run ends (ignored if the command was already executed in the last minimization step). freq*uency real 0.0 Frequency (in fs) with which to execute command. first_step real 0.0 Start executing the command after this period of simulated time (fs). last_step real 0.0 Stop executing the command after this period of simulated time (0.0 means to keep executing the command until the run is complete).

Description

Jump to Syntax or Examples

The minimize command does not alter any forcefield parameters. It simply minimizes the energy function that has already been set up.

Three minimization methods are available: steepest descents, conjugate gradients, and Newton methods. For highly strained structures, the steepest-descents method is recommended. After the initial strain is removed, the more rapid (linearly convergent) conjugate gradients should be used. If a highly accurate energy minimum is desired, one or more of the Newton methods can be used, since these are quadratically convergent.

The minimizer always starts with the steepest-descents method to make sure any severe strain is removed. After sd convergence is achieved, it stops if the method is set to steepest; otherwise, it proceeds to the conjugate-gradients method.

Conjugate-gradients minimization is done with the method selected by cg method until cg convergence is achieved.

If the chosen method is newton (or cascade), the minimization proceeds with newton method until newton convergence is reached. However, if convergence is achieved or if iteration_limit is exceeded before reaching the end of the sequence of methods, minimization terminates at that point.

There are two slightly different algorithms for conjugate gradients: Polak-Ribiere and Fletcher-Reeves, which can be selected by the cg method keyword.

Of the various Newton methods, the Davidson-Fletcher-Powell (dfp) and Broydon-Fletcher-Goldfarb-Shanno (bfgs) methods build a second-derivative matrix iteratively so that the matrix is equivalent to the true second-derivative matrix upon convergence.

Newton-Raphson and truncated Newton-Raphson methods compute the analytic second derivatives at each iteration. Thus, the quasi-Newton methods require less time per iteration but more iterations to achieve convergence than Newton-Raphson methods.

For larger systems, each iteration of the truncated method is faster than the corresponding iteration of the regular Newton-Raphson. However, the latter is expected to be more robust. All the Newton-Raphson methods require storing the matrix of the second derivatives, which can take prohibitively large amounts of memory for systems having more than a few hundred atoms.

movement_limit insures against the possibility of obtaining unrealistic structures by moving a particular atom by a large distance in one step.

sd line_search_precision, cg line_search_precision, and newton line_search_precision indicate how accurately a line minimization is to be done at each iteration of the respective method. Each is expressed as the ratio of the derivative along the line search direction to the initial derivative. The value should be between (but not including) zero and one and may have some minor effect on the overall speed of minimization.

When a periodic system is used, by default, the cell dimensions and shape are fixed. If the cell keyword appears in the command, then the cell parameters are modified to find the cell dimensions and angles that optimize the energy.

The execute pathname keyword and its associated parameters are used to specify subcommands to be performed during a minimization run and when they should be performed.

For the first execute structure, all the execute subparameters are set to the default values listed above, e.g., before = false. Parameter values in subsequent execute structures default to the values used in the previous execute structure. For example, if the first execute structure specifies +before, the next execute structure will assume +before unless -before is specified.

The execute structure typically contains the print command, to write out the instantaneous and average values that are calculated during a run (see the print command and the examples below). The frequency, beginning, and end of the subcommand execution are specified as step number (unlike in the dynamics command, where they are specified in femtoseconds).

Here is information on the minimize database.


Example 1

Jump to Syntax or Description

minimize
This command uses default values either internally set in the program or previously set by the user for all the parameters listed above. No printing is done, except for a summary when minimization is completed.

By default, the minimizer starts with steepest descents, then cascades into conjugate gradients as the derivative becomes smaller, and finally refines the structure by the BFGS method.

Example 2

minimize method = conjugate \ 
 	 cg convergence = 0.01 sd convergence = 10.0
Here the user has chosen not to use any Newton method. Instead, the convergence criterion for steepest descents and the stopping criterion are tightened.

Example 3

minimize iteration_limit = 500, newton method = truncated
Here, an accurate minimum is sought with the truncated Newton-Raphson method by increasing the iteration limit to 500 from the default of 300.

Example 4

minimize execute frequency = 10 \ 
 	 command = {print output +energy_summary}
This command line indicates to perform minimization with the default options, printing an energy summary every 10 steps during the minimization. (See the dynamics Example 3 for additional information on how to use the execute structure.)

Example 5

minimize peek = {peek cpu_time_step = 2.0 filename = look +carfile} \
 	 execute frequency = 10 command = {print output +energy_summary}
This command line performs the same minimization as in the previous example, except every 2 seconds (cpu time) the files look.pek and look.pcar are generated. These contain the energy and coordinates, respectively, of the system at that point in the minimization process. (See the peek command for more information.


Main access page Advanced-Use access.

List of BTCL commands history command molGeom command

Copyright Biosym/MSI