|
11 | 11 |
|
12 | 12 | from dpgen.auto_test.common_equi import make_equi, run_equi |
13 | 13 | 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 |
15 | 15 |
|
16 | 16 | from .context import setUpModule # noqa: F401 |
17 | 17 |
|
@@ -94,6 +94,31 @@ def test_make_input_file(self): |
94 | 94 | self.assertTrue(os.path.islink(os.path.join(abs_equi_path, "in.lammps"))) |
95 | 95 | self.assertTrue(os.path.isfile(os.path.join(abs_equi_path, "task.json"))) |
96 | 96 |
|
| 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 | + |
97 | 122 | def test_forward_common_files(self): |
98 | 123 | fc_files = ["in.lammps", "frozen_model.pb"] |
99 | 124 | self.assertEqual(self.Lammps.forward_common_files(), fc_files) |
|
0 commit comments