Class EnergyMinimizer
java.lang.Object
org.episteme.natural.chemistry.computational.EnergyMinimizer
Energy minimization algorithms.
Used to find stable molecular geometries.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic doubleconjugateGradient(Molecule molecule, int maxIterations) Conjugate Gradient minimization.static doublesteepestDescent(Molecule molecule, int maxIterations, double learningRate, double tolerance) Steepest Descent minimization.
-
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 minimizemaxIterations- Maximum stepslearningRate- Step sizetolerance- Energy change tolerance for convergence- Returns:
- Final potential energy
-
conjugateGradient
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
-