Geometry Optimization
Name GOCenter
Section Calculation Modes::Geometry Optimization
Type logical
Default no
(Experimental) If set to yes, Octopus centers the geometry at
every optimization step. It also reduces the degrees of
freedom of the optimization by using the translational
invariance.
Name GOConstrains
Section Calculation Modes::Geometry Optimization
Type block
If XYZGOConstrains, PDBConstrains, and XSFGOConstrains
are not present, Octopus will try to fetch the geometry optimization
contrains from this block. If this block is not present, Octopus
will not set any constrains. The format of this block can be
illustrated by this example:
%GOConstrains
‘C’ | 1 | 0 | 0
‘O’ | 1 | 0 | 0
%
Coordinates with a constrain value of 0 will be optimized, while coordinates with a constrain different from zero will be kept fixed. So, in this example the x coordinates of both atoms will remain fixed and the distance between the two atoms along the x axis will be constant.
Note: It is important for the constrains to maintain the ordering
in which the atoms were defined in the coordinates specifications.
Moreover, constrains impose fixed absolute coordinates, therefore
constrains are not compatible with GOCenter = yes
Name GOFireIntegrator
Section Calculation Modes::Geometry Optimization
Type integer
Default verlet
The Fire algorithm (GOMethod = fire) uses a molecular dynamics
integrator to compute new geometries and velocities.
Currently, two integrator schemes can be selected
Options:
- verlet:
The Velocity Verlet algorithm.
- euler:
The Euler method.
Name GOFireMass
Section Calculation Modes::Geometry Optimization
Type float
Default 1.0 amu
The Fire algorithm (GOMethod = fire) assumes that all degrees of freedom
are comparable. All the velocities should be on the same
scale, which for heteronuclear systems can be roughly
achieved by setting all the atom masses equal, to the value
specified by this variable.
By default the mass of a proton is selected (1 amu).
However, a selection of GOFireMass = 0.01 can, in manys systems,
speed up the geometry optimization procedure.
If GOFireMass <= 0, the masses of each
species will be used.
Name GOLineTol
Section Calculation Modes::Geometry Optimization
Type float
Default 0.1
Tolerance for line-minimization. Applies only to GSL methods
that use the forces.
WARNING: in some weird units.
Name GOMaxIter
Section Calculation Modes::Geometry Optimization
Type integer
Default 200
Even if the convergence criterion is not satisfied, the minimization will stop
after this number of iterations.
Name GOMethod
Section Calculation Modes::Geometry Optimization
Type integer
Default fire
Method by which the minimization is performed. For more information see the
GSL documentation.
Options:
- steep:
Simple steepest descent.
- steep_native:
(Experimental) Non-gsl implementation of steepest descent.
- cg_fr:
Fletcher-Reeves conjugate-gradient algorithm. The
conjugate-gradient algorithm proceeds as a succession of line
minimizations. The sequence of search directions is used to build
up an approximation to the curvature of the function in the
neighborhood of the minimum.
- cg_pr:
Polak-Ribiere conjugate-gradient algorithm.
- cg_bfgs:
Vector Broyden-Fletcher-Goldfarb-Shanno (BFGS) conjugate-gradient algorithm.
It is a quasi-Newton method which builds up an approximation to the second
derivatives of the function f using the difference between successive gradient
vectors. By combining the first and second derivatives, the algorithm is able
to take Newton-type steps towards the function minimum, assuming quadratic
behavior in that region.
- cg_bfgs2:
The bfgs2 version of this minimizer is the most efficient version available,
and is a faithful implementation of the line minimization scheme described in
Fletcher, Practical Methods of Optimization, Algorithms 2.6.2 and 2.6.4.
- simplex:
This is experimental, and in fact, not recommended unless you just want to
fool around. It is the Nead-Melder simplex algorithm, as implemented in the
GNU Scientific Library (GSL). It does not make use of the gradients (i.e., the
forces) which makes it less efficient than other schemes. It is included here
for completeness, since it is free.
- fire:
The FIRE algorithm. See also GOFireMass and GOFireIntegrator.
Ref: E. Bitzek, P. Koskinen, F. Gahler, M. Moseler, and P. Gumbsch, Phys. Rev. Lett. 97, 170201 (2006).
Name GOMinimumMove
Section Calculation Modes::Geometry Optimization
Type float
Convergence criterion, for stopping the minimization. In
units of length; minimization is stopped when the coordinates
of all species change less than GOMinimumMove, or the
GOTolerance criterion is satisfied.
If GOMinimumMove < 0, this criterion is ignored.
Default is -1, except 0.001 b with GOMethod = simplex.
Note that if you use GOMethod = simplex,
then you must supply a non-zero GOMinimumMove.
Name GOObjective
Section Calculation Modes::Geometry Optimization
Type integer
Default minimize_energy
This rather esoteric option allows one to choose which
objective function to minimize during a geometry
minimization. The use of this variable may lead to
inconsistencies, so please make sure you know what you are
doing.
Options:
- minimize_energy:
Use the total energy as objective function.
- minimize_forces:
Use $\sqrt{\sum_i \left| f_i \right|^2}$ as objective function.
Note that in this case one still uses the forces as the gradient of the objective function.
This is, of course, inconsistent, and may lead to very strange behavior.
Name GOStep
Section Calculation Modes::Geometry Optimization
Type float
Initial step for the geometry optimizer. The default is 0.5.
WARNING: in some weird units.
For the FIRE minimizer, default value is 0.1 fs,
and corresponds to the initial time-step for the MD.
Name GOTolerance
Section Calculation Modes::Geometry Optimization
Type float
Default 0.001 H/b (0.051 eV/A)
Convergence criterion, for stopping the minimization. In
units of force; minimization is stopped when all forces on
ions are smaller than this criterion, or the
GOMinimumMove is satisfied. If GOTolerance < 0,
this criterion is ignored.
Name GOType
Section Calculation Modes::Geometry Optimization
Type flag
Default ions
This variable defines which parameters are allowed to change during the optimization.
Multiple options can be chosen e.g. “ion_positions + cell_shape”.
Only one type of lattice vectors relaxation is possible.
Options:
- ion_positions:
Relax position of ions
- cell_shape:
Relax cell shape. This changes lattice vector lengths and directions.
- cell_volume:
Relax cell volume. Only allow for rescaling the lengths of lattice vectors.
Name PDBGOConstrains
Section Calculation Modes::Geometry Optimization
Type string
Like XYZGOConstrains but in PDB format, as in PDBCoordinates.
Name XSFGOConstrains
Section Calculation Modes::Geometry Optimization
Type string
Like XYZGOConstrains but in XCrySDen format, as in XSFCoordinates.
Name XYZGOConstrains
Section Calculation Modes::Geometry Optimization
Type string
Octopus will try to read the coordinate-dependent constrains from the XYZ file
specified by the variable XYZGOConstrains.
Note: It is important for the contrains to maintain the ordering
in which the atoms were defined in the coordinates specifications.
Moreover, constrains impose fixed absolute coordinates, therefore
constrains are not compatible with GOCenter = yes