Skip to content

Commit 0bcd5b3

Browse files
authored
support max_steps for ase minimizer (#372)
Adds `max_steps` parameter to `ASEMinimizer`.
1 parent f2bd6df commit 0bcd5b3

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

dpdata/plugins/ase.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,16 @@ class ASEMinimizer(Minimizer):
221221
ase optimizer class
222222
fmax : float, optional, default=5e-3
223223
force convergence criterion
224+
max_steps : int, optional
225+
max steps to optimize
224226
optimizer_kwargs : dict, optional
225227
other parameters for optimizer
226228
"""
227229
def __init__(self,
228230
driver: Driver,
229231
optimizer: Type["Optimizer"] = None,
230232
fmax: float = 5e-3,
233+
max_steps: int = None,
231234
optimizer_kwargs: dict = {}) -> None:
232235
self.calculator = driver.ase_calculator
233236
if optimizer is None:
@@ -240,6 +243,7 @@ def __init__(self,
240243
**optimizer_kwargs.copy(),
241244
}
242245
self.fmax = fmax
246+
self.max_steps = max_steps
243247

244248
def minimize(self, data: dict) -> dict:
245249
"""Minimize the geometry.
@@ -261,7 +265,7 @@ def minimize(self, data: dict) -> dict:
261265
for atoms in structures:
262266
atoms.calc = self.calculator
263267
dyn = self.optimizer(atoms, **self.optimizer_kwargs)
264-
dyn.run(fmax=self.fmax)
268+
dyn.run(fmax=self.fmax, steps=self.max_steps)
265269
ls = dpdata.LabeledSystem(atoms, fmt="ase/structure", type_map=data['atom_names'])
266270
labeled_system.append(ls)
267-
return labeled_system.data
271+
return labeled_system.data

0 commit comments

Comments
 (0)