Skip to content

Commit 6943db5

Browse files
support fparam in lmp template (#1662)
in previous version, if we use `template` in model deviation process, the generated LAMMPS input file would neglect fparam-dependence in DP model, as ``` pair_style deepmd ../graph.000.pb ../graph.001.pb ../graph.002.pb ../graph.003.pb out_freq 10 out_file model_devi.out pair_coeff * * ``` here we fixed this problem, as ``` pair_style deepmd ../graph.000.pb ../graph.001.pb ../graph.002.pb ../graph.003.pb out_freq 10 out_file model_devi.out fparam ${ELE_TEMP} pair_coeff * * ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced the LAMMPS input model to support configurations based on electron temperature settings. - Added flexibility in handling different input scenarios with the introduction of a new parameter. - **Bug Fixes** - Improved compatibility checks for the specified DeepMD version in the input model construction. - **Documentation** - Updated comments for clarity regarding the new functionality and parameter usage. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 47a23b3 commit 6943db5

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

dpgen/generator/run.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,9 @@ def find_only_one_key(lmp_lines, key):
10051005
return found[0]
10061006

10071007

1008-
def revise_lmp_input_model(lmp_lines, task_model_list, trj_freq, deepmd_version="1"):
1008+
def revise_lmp_input_model(
1009+
lmp_lines, task_model_list, trj_freq, deepmd_version="1", use_ele_temp=0
1010+
):
10091011
idx = find_only_one_key(lmp_lines, ["pair_style", "deepmd"])
10101012
graph_list = " ".join(task_model_list)
10111013
if Version(deepmd_version) < Version("1"):
@@ -1014,13 +1016,22 @@ def revise_lmp_input_model(lmp_lines, task_model_list, trj_freq, deepmd_version=
10141016
trj_freq,
10151017
)
10161018
else:
1017-
lmp_lines[idx] = (
1018-
"pair_style deepmd %s out_freq %d out_file model_devi.out\n"
1019-
% (
1020-
graph_list,
1021-
trj_freq,
1019+
if use_ele_temp == 0:
1020+
lmp_lines[idx] = (
1021+
"pair_style deepmd %s out_freq %d out_file model_devi.out\n"
1022+
% (
1023+
graph_list,
1024+
trj_freq,
1025+
)
1026+
)
1027+
elif use_ele_temp == 1:
1028+
lmp_lines[idx] = (
1029+
"pair_style deepmd %s out_freq %d out_file model_devi.out fparam ${ELE_TEMP}\n"
1030+
% (
1031+
graph_list,
1032+
trj_freq,
1033+
)
10221034
)
1023-
)
10241035
return lmp_lines
10251036

10261037

@@ -1289,6 +1300,8 @@ def _make_model_devi_revmat(iter_index, jdata, mdata, conf_systems):
12891300
sys_idx = expand_idx(cur_job["sys_idx"])
12901301
if len(sys_idx) != len(list(set(sys_idx))):
12911302
raise RuntimeError("system index should be uniq")
1303+
1304+
use_ele_temp = jdata.get("use_ele_temp", 0)
12921305
mass_map = jdata["mass_map"]
12931306
use_plm = jdata.get("model_devi_plumed", False)
12941307
use_plm_path = jdata.get("model_devi_plumed_path", False)
@@ -1394,6 +1407,7 @@ def _make_model_devi_revmat(iter_index, jdata, mdata, conf_systems):
13941407
task_model_list,
13951408
trj_freq,
13961409
deepmd_version=deepmd_version,
1410+
use_ele_temp=use_ele_temp,
13971411
)
13981412
else:
13991413
if len(lmp_lines[template_pair_deepmd_idx].split()) != (
@@ -1414,6 +1428,7 @@ def _make_model_devi_revmat(iter_index, jdata, mdata, conf_systems):
14141428
task_model_list,
14151429
trj_freq,
14161430
deepmd_version=deepmd_version,
1431+
use_ele_temp=use_ele_temp,
14171432
)
14181433
# use revise_lmp_input_model to raise error message if "part_style" or "deepmd" not found
14191434
else:
@@ -1422,6 +1437,7 @@ def _make_model_devi_revmat(iter_index, jdata, mdata, conf_systems):
14221437
task_model_list,
14231438
trj_freq,
14241439
deepmd_version=deepmd_version,
1440+
use_ele_temp=use_ele_temp,
14251441
)
14261442

14271443
lmp_lines = revise_lmp_input_dump(

0 commit comments

Comments
 (0)