Class EnergyMinimizer

java.lang.Object
org.episteme.natural.chemistry.computational.EnergyMinimizer

public class EnergyMinimizer extends Object
Energy minimization algorithms. Used to find stable molecular geometries.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • EnergyMinimizer

      public EnergyMinimizer()
  • Method Details

    • steepestDescent

      public static double steepestDescent(Molecule molecule, int maxIterations, double learningRate, double tolerance)
      Steepest Descent minimization. Iteratively moves atoms against the gradient of potential energy.

      Algorithm:

      1. Calculate forces F = -grad(E)
      2. Update positions: x += learningRate * F
      3. Repeat until energy converges
      

      Parameters:
      molecule - The molecule to minimize
      maxIterations - Maximum steps
      learningRate - Step size
      tolerance - Energy change tolerance for convergence
      Returns:
      Final potential energy
    • conjugateGradient

      public static double conjugateGradient(Molecule molecule, int maxIterations)
      Conjugate Gradient minimization. Faster convergence than steepest descent near minimum. Uses Fletcher-Reeves formula for beta calculation.

      Algorithm:

      1. d = -grad(E)
      2. alpha = line_search(d)
      3. x += alpha * d
      4. beta = |new_grad|^2 / |old_grad|^2
      5. d = -new_grad + beta * d