Skip to content

minimize

Energy minimization helpers for molecular mechanics systems.

import mlx_atomistic.minimize

class MinimizationResult
def __init__(positions: mx.array, energy: mx.array, energy_history: mx.array, max_force_history: mx.array, steps: int, converged: bool, method: str = 'steepest_descent', convergence_reason: str = '')

Result of a simple force-based energy minimization.

Parameters

NameTypeDefaultDescription
positionsmx.array
energymx.array
energy_historymx.array
max_force_historymx.array
stepsint
convergedbool
methodstr'steepest_descent'
convergence_reasonstr''
def minimize_energy(positions, force_terms: ForceTerm | list[ForceTerm] | tuple[ForceTerm, ...], *, cell: Cell | None = None, max_steps: int = 200, step_size: float = 0.001, force_tolerance: float = 0.001, backtracking: float = 0.5, min_step_size: float = 1e-12, neighbor_manager: NeighborListManager | None = None, method: str = 'steepest_descent') -> MinimizationResult

Minimize potential energy with a selectable local optimizer.

Parameters

NameTypeDefaultDescription
positions
force_termsForceTerm | list[ForceTerm] | tuple[ForceTerm, ...]
cellCell | NoneNone
max_stepsint200
step_sizefloat0.001
force_tolerancefloat0.001
backtrackingfloat0.5
min_step_sizefloat1e-12
neighbor_managerNeighborListManager | NoneNone
methodstr'steepest_descent'

Returns

  • MinimizationResult