The program Shift performs all the calculations required to oversee the minimization of the function. It can determine the optimum shift to apply to the parameters of the model, while imposing various constraints defined by the user. The model, for example, can be broken into one or more groups which move as rigid bodies. Also particular parameters can be held fixed.
Shift always works with the starting coordinate set ( init.cor) and a current fraction of shift, called the stepsize. When the stepsize is equal to zero (i.e. no shift has been applied) the program works in ``long loop'' mode. Conversely, when the stepsize is non-zero the program performs the ``short loop'' calculations.
In either case, the program evaluates all available information and determines its best guess of the next stepsize which should be tried. It then generates a new trial set of coordinates (shifted.cor) by applying this guess. The only files required to do this task are the initial coordinates ( init.cor), the parameter shift vector (newdir.dat), the function value for the current stepsize (usually rfactor.dat and geometry.dat), and the history of the previous guesses (stpfil.dat).
In a short loop that is all that is done. In the long loop the direction of shift must first be determined. The calculation of the parameter shift vector requires, in the simplest case, the first derivatives of the function being minimized. The inclusion of the second derivatives improves the quality of the shift vector considerably. The shift vector must be modified to ensure that the user's constraints will not be violated.
Shift can use four different methods to calculate the parameter shift vector. These methods are discussed in detail in the chapter ``Theory of TNT Refinement'' (page ). The program is never told which method to use. It simply looks at the information which has been given to it and uses the best method it can. The optional data are the old shift vector (olddir.dat) and the second derivatives of the function. Table shows the rules used to determine the method.
Table: Choice Table for Minimization Method