"""Optimizers for geometry relaxations.This module provides optimization algorithms for atomic structures in a batched format,enabling efficient relaxation of multiple atomic structures simultaneously. It uses afilter-based design where cell optimization constraints and parameterizations arehandled by separate filter functions."""fromcollections.abcimportCallablefromenumimportStrEnumfromtypingimportAny,Final,Literal,get_argsfromtorch_sim.optimizers.cell_filtersimportCellFireState,CellOptimState# noqa: F401fromtorch_sim.optimizers.fireimportfire_init,fire_stepfromtorch_sim.optimizers.gradient_descentimport(gradient_descent_init,gradient_descent_step,)fromtorch_sim.optimizers.stateimportFireState,OptimState# noqa: F401FireFlavor=Literal["vv_fire","ase_fire"]vv_fire_key,ase_fire_key=get_args(FireFlavor)
[docs]classOptimizer(StrEnum):"""Enumeration of the optimization flavors."""gradient_descent="gradient_descent"fire="fire"