LocalEnergyMinimizer

class LocalEnergyMinimizer

Given a Context, this class searches for a new set of particle positions that represent a local minimum of the potential energy. The search is performed with the L-BFGS algorithm. Distance constraints are enforced during minimization by adding a harmonic restraining force to the potential function. The strength of the restraining force is steadily increased until the minimum energy configuration satisfies all constraints to within the tolerance specified by the Context’s Integrator.

Energy minimization is done using the force groups defined by the Integrator. If you have called setIntegrationForceGroups() on it to restrict the set of forces used for integration, only the energy of the included forces will be minimized.

Public Static Functions

static void minimize(Context &context, double tolerance = 10, int maxIterations = 0, MinimizationReporter *reporter = NULL)

Search for a new set of particle positions that represent a local potential energy minimum. On exit, the Context will have been updated with the new positions.

Parameters
  • context – a Context specifying the System to minimize and the initial particle positions

  • tolerance – this specifies how precisely the energy minimum must be located. Minimization will be halted once the root-mean-square value of all force components reaches this tolerance (in kJ/mol/nm). The default value is 10.

  • maxIterations – the maximum number of iterations to perform. If this is 0, minimation is continued until the results converge without regard to how many iterations it takes. The default value is 0.

  • reporter – an optional MinimizationReporter to invoke after each iteration. This can be used to monitor the progress of minimization or to stop minimization early.