# Geometry Optimization

To perform a geometry optimization with Octopus one should set the CalculationMode to go. The method to be used should be set using the variable GOMethod. Note that most of the methods use the minimization routines from GSL.

The stopping criteria can be set with the variables GOTolerance and GOMinimumMove. Then minimization will be stopped when all forces on ions are smaller than GOTolerance or when all species coordinates change less than GOMinimumMove during one minimization step. If none of the previous criteria is matched after a number of minimization steps equal to GOMaxIter, then the minimization will be stopped with an error message.

After each minimization step taken by the GSL algorithms Octopus will write the current geometry to a file named go.XXXX.xyz (XXXX is the iteration number) in the directory geom . As an extra information, the title of the xyz file (second line) contains the total energy.

Currently, the default method used for geometry optimizations is GOMethod = FIRE. Otherwise, many times, if the stopping criteria are too small, the GSL routines will return an error message stating that they were unable to improve the solution.

At the end of the run, if the minimization was successful, the minimized geometry will be written to a file named min.xyz in the working directory.