Package ffx.openmm

Class MinimizationReporter

java.lang.Object
ffx.openmm.MinimizationReporter

public class MinimizationReporter extends Object
A MinimizationReporter can be passed to LocalEnergyMinimizer::minimize() to provide periodic information on the progress of minimization, and to give you the chance to stop minimization early. Define a subclass that overrides report() and implement it to take whatever action you want.

To correctly interpret the information passed to the reporter, you need to know a bit about how the minimizer works. The L-BFGS algorithm used by the minimizer does not support constraints. The minimizer therefore replaces all constraints with harmonic restraints, then performs unconstrained minimization of a combined objective function that is the sum of the system's potential energy and the restraint energy. Once minimization completes, it checks whether all constraints are satisfied to an acceptable tolerance. It not, it increases the strength of the harmonic restraints and performs additional minimization. If the error in constrained distances is especially large, it may choose to throw out all work that has been done so far and start over with stronger restraints. This has several important consequences.

  • The objective function being minimized not actually the same as the potential energy.
  • The objective function and the potential energy can both increase between iterations.
  • The total number of iterations performed could be larger than the number specified by the maxIterations argument, if that many iterations leaves unacceptable constraint errors.
  • All work is provisional. It is possible for the minimizer to throw it out and start over.
  • Constructor Details

    • MinimizationReporter

      public MinimizationReporter()
      Constructor.
  • Method Details

    • getPointer

      public com.sun.jna.ptr.PointerByReference getPointer()
      Pointer to the reporter.
      Returns:
      the pointer.
    • destroy

      public void destroy()
      Destroy the reporter.