# Module MMTK.Minimization

## Class SteepestDescentMinimizer: Steepest-descent minimizer

The minimizer can handle fixed atoms, but no distance constraints. It is fully thread-safe.

Constructor: SteepestDescentMinimizer(universe, **options)

universe

  the universe on which the minimizer acts

options

  keyword options:

  - steps: the number of minimization steps (default is 100)

  - step_size: the initial size of a minimization step (default is 0.002 nm)

  - convergence: the root-mean-square gradient length at which minimization stops (default is 0.01 kJ/mol/nm)

  - actions: a list of actions to be executed periodically (default is none)

  - threads: the number of threads to use in energy evaluation (default set by MMTK_ENERGY_THREADS)

  - background: if true, the minimization is executed as a separate thread (default: 0)

  - mpi_communicator: an MPI communicator object, or None, meaning no parallelization (default: None)

The minimization is started by calling the minimizer object. All the keyword options listed above can be specified either when creating the minimizer or when calling it.

The following data categories and variables are available for output:

- category "configuration": configuration and box size (for periodic universes)

- category "gradients": energy gradients for each atom

- category "energy": potential energy and norm of the potential energy gradient

## Class ConjugateGradientMinimizer: Conjugate gradient minimizer

The minimizer can handle fixed atoms, but no distance constraints. It is fully thread-safe.

Constructor: ConjugateGradientMinimizer(universe, **options)

universe

  the universe on which the minimizer acts

options

  keyword options:

  - steps: the number of minimization steps (default is 100)

  - step_size: the initial size of a minimization step (default is 0.002 nm)

  - convergence: the root-mean-square gradient length at which minimization stops (default is 0.01 kJ/mol/nm)

  - actions: a list of actions to be executed periodically (default is none)

  - threads: the number of threads to use in energy evaluation (default set by MMTK_ENERGY_THREADS)

  - background: if true, the minimization is executed as a separate thread (default: 0)

The minimization is started by calling the minimizer object. All the keyword options listed above can be specified either when creating the minimizer or when calling it.

The following data categories and variables are available for output:

- category "configuration": configuration and box size (for periodic universes)

- category "gradients": energy gradients for each atom

- category "energy": potential energy and norm of the potential energy gradient