This paragraph and the next needs to be better integrated…. Fixed volume optimization of the atomic positions. All atoms are moved - there is currently no method for constraining specific atoms. This is called by the statement “‘’if (optimize_lattice(cfg)) call diary(cfg)’‘“ in socorro.f90.

optimize_lattice returns a logical that indicates whether any modifications to cfg have occurred. The cfg that is returned corresponds to the optimized positions.

The relevant options in argvf are as follows

atom_mass_xxx - This is the mass of the atom in amu used for quench_minimization.
Here xxx is replaced by the tag used in the crystal file. There should be one line like this for each type.
The default is to assume a mass of 1 amu.
relax_method - Specify the relaxation method to be used.
NONE - default Do not perform a structural optimization
STEEPEST_DESCENTS, SD - What is implemented here is the simple approach of changing the coordinates by F*relax_prefactor where F is the current force and relax_prefactor is a parameter that you can set (see below). This is usually NOT the best way to get to a minimum. It was included because it was the obvious first thing to code and is a standard ‘brute force’ approach to optimization.
CONJUGATE_GRADIENT, CG ‘conjugate gradients’ - Implements a conjugate gradient search for the minimum energy structure. (See Press, et.al, ‘Numerical Recipes’ for a description of this algorithm.) This is typically the best way to go when the initial positions are close to the minimum.
QUENCHED_MINIMIZATION, QM ‘quenched MD’ - This implements an algorithm described in Della Valle and Andersen, J. Chem. Phys. 97, 2682 (1992). It performs a molecular dynamics simulation using the ‘velocity Verlet’ algorithm with the following modifications. At each time step and for each particle, the velocity is reset as follows. If the projection of the force along the velocity is positive, the velocity is replaced by the projection of the velocity along the direction of the force. If the projection is negative, the velocity is set to zero. This will quench the dynamics to the minimum. This approach seems to be best suited for getting close to the minimum when the initial guess may be poor.
relax_steps - This sets a maximum number of force calls that can be made to attempt to find the minimum.
Note that in some cases, the actual number of calls may exceed this slightly since it will always try to finish the line minimizations in the conjugate gradient approach.
default: 100
relax_time_step - This is used in relax_method=QM.
It sets the fixed time step for the MD simulation. default: 1.0 (probably too small for most cases.)
relax_tol - This is the stopping criteria for all methods.
The code stops when the root mean square value of the force components is less than this value.
default: 1.d-3.

« Structural Optimization | TOC | Molecular Dynamics »