LoptCG - Script for numerical gradient optimization

LoptCG is a ksh-script that performs numerical gradient optimizations. The Conjugated Gradient (Polak-Ribiere) method is used by default. It is also possible to employ the Steepest Descent scheme but it is only recommended in some particular cases (see below).

Linear optimizations are carried out by quadratic fitting using the fortran code BULK.

A complete example of usage can be downloaded as a tar file.

LoptCG is flexible enough to run with any code for energy evaluations, nevertheless it was optimized to be used with CRYSTAL, and many capabilities of the latter are exploited. In particular, LoptCG can control the possibility of restarting the scf with previously calculated density or Fock matrices, at each energy evaluation, and to adjust the scf convergence criterion to the required precision in the first derivative. If you use the option FIXINDEX of CRYSTAL (this is recommended for optimizations), with LoptCG you can decide whether or not the reference geometry will be updated at each cycle in order to be close to the current geometry (by default, the geometry is updated at each cycle).

Since it is written in Korn shell language, LoptCG is quite machine-compatible. However, despite commands are within the unix standard, bugs are not discarded in non-standard versions of the operating system. On the other hand, language allows jobs to be controlled by shell-scripts that are sourced at different instances of the optimization; several strategies can then be designed for each problem and re-adapted interactively depending on the actual state of the job with a basic only knowledge of the shell language. This script was originally written for the own use of the author and developed to balance, in a satisfactory (but probably subjective) way, computational cost and accuracy. It was subsequently modified in order to be more friendly for users. Some of them may not agree with some of the "reasonable" choices adopted; the author hopes that alternative strategies can be realized without changing the body of the program but simply using intelligent control files, as described in the following sections. The author would be grateful if significant modifications of the program are reported to him.

As the general optimization problem is sometimes a delicate task even when using methods in which gradients are evaluated analytically, it must be stated that in the present case, in which derivatives are calculated numerically, the user should work with caution, adopting reasonable strategies based on a basic knowledge of the physical-chemistry and the mathematics of the problem. This means that LoptCG cannot be used as a "black-box" program and the author will not feel responsible for wrong uses.

Finally, a short and basic bibliography is recommended for the beginners:

A useful text-book for understanding the mathematics implied in optimization methods:
Mezey, P.G.
"Potential Energy Hypersurfaces"
Elsevier New York: (1987).

For a short explanation and comparison of the methods used in this script:
Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; Vetterling, W. T.
"Numerical Recipes",
University Press: New York (1989).

 

The author gratefully acknowledges Bartolomeo Civalleri, Furio Cora', Roberto Dovesi and Piero Ugliengo for useful suggestions.

 

Claudio M. Zicovich-Wilson

Departamento de Fisica, Universidad Autonoma del Estado de Morelos,
Av. Universidad 1001, Col. Chamilpa, 62210 Cuernavaca (Morelos) Mexico

 

LoptCG is supplied free with CRYSTAL98 to users sending the "Request for the supply of LoptCG" form together with the CRYSTAL98 request form.

A complete example of usage can be downloaded as a tar file.

Information request about LopCG should be addressed to: LoptCG c/o CRYSTAL98 Torino team.