Skip to content

Commit f230ad0

Browse files
committed
fix: reset LAMMPS minimization timesteps
Coding-Agent: Codex Codex-Version: codex-cli 0.149.0 Model: gpt-5.6-sol Reasoning-Effort: xhigh
1 parent d5ce577 commit f230ad0

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

dpgen/auto_test/lib/lammps.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,11 @@ def make_lammps_equi(
252252
if change_box:
253253
ret += "fix 1 all box/relax iso 0.0 \n"
254254
ret += "minimize %e %e %d %d\n" % (etol, ftol, maxiter, maxeval) # noqa: UP031
255+
# Align dump and thermo output at the start of each minimization stage.
256+
ret += "reset_timestep 0\n"
255257
ret += "fix 1 all box/relax aniso 0.0 \n"
256258
ret += "minimize %e %e %d %d\n" % (etol, ftol, maxiter, maxeval) # noqa: UP031
259+
ret += "reset_timestep 0\n"
257260
ret += "fix 1 all box/relax tri 0.0 \n"
258261
ret += "minimize %e %e %d %d\n" % (etol, ftol, maxiter, maxeval) # noqa: UP031
259262
ret += "variable N equal count(all)\n"

tests/auto_test/test_lammps.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from dpgen.auto_test.common_equi import make_equi, run_equi
1313
from dpgen.auto_test.Lammps import Lammps
14-
from dpgen.auto_test.lib.lammps import inter_deepmd
14+
from dpgen.auto_test.lib.lammps import inter_deepmd, make_lammps_equi
1515

1616
from .context import setUpModule # noqa: F401
1717

@@ -94,6 +94,31 @@ def test_make_input_file(self):
9494
self.assertTrue(os.path.islink(os.path.join(abs_equi_path, "in.lammps")))
9595
self.assertTrue(os.path.isfile(os.path.join(abs_equi_path, "task.json")))
9696

97+
def test_make_lammps_equi_resets_successive_minimizations(self):
98+
"""Successive box relaxations should share aligned output timesteps."""
99+
input_text = make_lammps_equi(
100+
"conf.lmp",
101+
{"Al": 0},
102+
inter_deepmd,
103+
{
104+
"model_name": ["frozen_model.pb"],
105+
"param_type": {"Al": 0},
106+
"deepmd_version": "1.1.0",
107+
},
108+
)
109+
lines = input_text.splitlines()
110+
minimize_lines = [
111+
index for index, line in enumerate(lines) if line.startswith("minimize")
112+
]
113+
reset_lines = [
114+
index
115+
for index, line in enumerate(lines)
116+
if line.startswith("reset_timestep")
117+
]
118+
119+
self.assertEqual(3, len(minimize_lines))
120+
self.assertEqual([minimize_lines[0] + 1, minimize_lines[1] + 1], reset_lines)
121+
97122
def test_forward_common_files(self):
98123
fc_files = ["in.lammps", "frozen_model.pb"]
99124
self.assertEqual(self.Lammps.forward_common_files(), fc_files)

0 commit comments

Comments
 (0)