STFC
MPI für Kohlenforschung

University College London

hessian

 

The hessian command is very similar to the newopt command in its usage and arguments. It serves to generate a hessian only for a given function (currently the zopt function only).

The arguments to the hessian function are given in the table below:

Argument Argument type Mandatory Default To specify
function= name of the function Yes - type of problem to be optimised
verbose= Boolean No no level of output
method= name of method No finite_difference procedure to calculate the hessian (see below)
hessian= name Yes - name of output hessian
var_list= string No - specific hessian information
threshold= real No 0.2 or 0.001 (see below) threshold-value for finite-differencing selected degrees of freedom (active only with method=select_hessian and method=select_gradient.)
restart= keyword No no restarting an interrupted finite-difference hessian calculation
del= real No 0.001 displacement for finite-differencing formulae

For the function and verbose arguments see the corresponding arguments to the newopt command.

The method argument specifies the method by which the hessian is calculated. Valid options are given in the table below.

Method To do what
unit generate unit hessian for all variables
finite_difference finite difference all variables using the single-point formula
finite_difference_2 finite difference all variables using the two-point formula
analytic analytic hessian (only with theory=gamess)
guess simple guess for diagonal elements, optionally augmented with input diagonal elements and/or finite-differencing specific variables only (see the var_list argument)
modify modify parts of the hessian given input diagonal elements and/or finite-differencing specific variables only (see the var_list argument)
select_hessian finite-difference selected degrees of freedom on the basis of contributions to hessian eigenvectors
select_gradient finite-difference selected degrees of freedom on the basis of contributions to the gradient
finite_difference_eigenmodes modify an existing hessian by finite-differencing along specified hessian eigenmodes (the modes to be treated are specified in the var_list argument)

The default of the method argument is finite_difference.

The var_list argument may be used to pass specific information concerning variables into the hessian command. It is a string consisting of pairs of information. The first member of the pair is an integer, giving the rank-number of the variable (first variable has rank-number 1). The second member may be a number or a keyword. If it is a number the diagonal hessian element for the variable specified is set to this number. The keyword may be fd or fd2, which will cause a finite differencing of the specified variable only, by the one-, respectively two-point formula. The variables may be addressed in any order, and the list need not be exhaustive. To cause the diagonal element of variable 2 to be 0.34, and finite-differencing variables 5 and 8 by the two-, respectively one-point formula, input the string (note the brackets around each pair):

{2 0.34} {5 fd2} {8 fd}

The threshold argument specifies the minimum value of a contribution to a hessian eigenvector or the gradient above which a finite-differencing will be performed if the method=select_hessian option is chosen. In the case of the hessian eigenvectors being considered, the var_list argument lists the hessian eigenvectors selected, rather than the degrees of freedom as in the method=modify option. Thus

hessian [...] hessian=h method=select_hessian threshold=0.1 \
var_list= {1 2}

will perform a finite-differencing of all degrees of freedom which have a contribution larger than 0.1 in the lowest 2 eigenvectors of hessian h.

The select_gradient option ignores the var_list argument

hessian [...] hessian=h method=select_hessian threshold=0.01

will perform a finite-differencing of all degrees of freedom which have a contribution larger than 0.01 to the gradient.

The default value of threshold is 0.2 with the select_hessian option, and 0.001 with the select_gradient option.

NOTES: - The finite differencing fills both the row and the column belonging to the specified variable, overwriting whatever values were there.

- A string to serve as var_list argument may be generated automatically from the z-matrix input. See the z_create . command.

- Information on rank-numbers higher than the dimension is ignored, but a warning is issued on output.





This manual was generated using htp, an HTML pre-processor Powered by htp