pwact 0.4.0.dev0__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. {pwact-0.4.0.dev0 → pwact-0.4.1}/PKG-INFO +1 -1
  2. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/lammps.py +64 -13
  3. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/file_operation.py +1 -1
  4. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact.egg-info/PKG-INFO +1 -1
  5. {pwact-0.4.0.dev0 → pwact-0.4.1}/setup.py +1 -1
  6. {pwact-0.4.0.dev0 → pwact-0.4.1}/LICENSE +0 -0
  7. {pwact-0.4.0.dev0 → pwact-0.4.1}/README.md +0 -0
  8. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/__init__.py +0 -0
  9. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/__init__.py +0 -0
  10. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/environment.py +0 -0
  11. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/explore/__init__.py +0 -0
  12. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/explore/run_model_md.py +0 -0
  13. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/explore/select_image.py +0 -0
  14. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/__init__.py +0 -0
  15. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/aimd.py +0 -0
  16. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/direct.py +0 -0
  17. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/duplicate_scale.py +0 -0
  18. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/explore.py +0 -0
  19. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/init_bulk_run.py +0 -0
  20. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/relabel.py +0 -0
  21. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/init_bulk/relax.py +0 -0
  22. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/label/__init__.py +0 -0
  23. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/label/labeling.py +0 -0
  24. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/slurm/__init__.py +0 -0
  25. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/slurm/slurm.py +0 -0
  26. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/slurm/slurm_tool.py +0 -0
  27. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/test/__init__.py +0 -0
  28. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/test/test.py +0 -0
  29. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/test/uma_md.py +0 -0
  30. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/train/__init__.py +0 -0
  31. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/train/dp_kpu.py +0 -0
  32. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/train/train_model.py +0 -0
  33. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/__init__.py +0 -0
  34. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/cmd_infos.py +0 -0
  35. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/init_bulk_input.py +0 -0
  36. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/iter_input.py +0 -0
  37. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/resource.py +0 -0
  38. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/scf_param.py +0 -0
  39. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/__init__.py +0 -0
  40. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/model_param.py +0 -0
  41. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/nep_param.py +0 -0
  42. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/nn_feature_type.py +0 -0
  43. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/optimizer_param.py +0 -0
  44. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/train_param.py +0 -0
  45. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/train_param/work_file_param.py +0 -0
  46. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/active_learning/user_input/workdir.py +0 -0
  47. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/bin/__init__.py +0 -0
  48. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/data_format/__init__.py +0 -0
  49. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/data_format/configop.py +0 -0
  50. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/main.py +0 -0
  51. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/__init__.py +0 -0
  52. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/__init__.py +0 -0
  53. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/common.py +0 -0
  54. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/cp2k.py +0 -0
  55. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/cp2k_dp.py +0 -0
  56. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/do_direct_sample.py +0 -0
  57. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/do_eqv2model.py +0 -0
  58. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/app_lib/pwmat.py +0 -0
  59. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/constant.py +0 -0
  60. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/draw/__init__.py +0 -0
  61. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/draw/hist_model_devi.py +0 -0
  62. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/format_input_output.py +0 -0
  63. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/json_operation.py +0 -0
  64. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/pre_al_data_util.py +0 -0
  65. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/process_tool.py +0 -0
  66. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/slurm_script.py +0 -0
  67. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact/utils/tmp.py +0 -0
  68. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact.egg-info/SOURCES.txt +0 -0
  69. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact.egg-info/dependency_links.txt +0 -0
  70. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact.egg-info/entry_points.txt +0 -0
  71. {pwact-0.4.0.dev0 → pwact-0.4.1}/pwact.egg-info/top_level.txt +0 -0
  72. {pwact-0.4.0.dev0 → pwact-0.4.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pwact
3
- Version: 0.4.0.dev0
3
+ Version: 0.4.1
4
4
  Summary: PWACT is an open-source automated active learning platform based on MatPL for efficient data sampling.
5
5
  Home-page: https://github.com/LonxunQuantum/PWact
6
6
  Author: LonxunQuantum
@@ -259,7 +259,7 @@ def make_lammps_input_from_lmp_in_file(
259
259
  # boundary p p p
260
260
  # atom_style atomic
261
261
  # remove mass pair_style pair_coeff dump
262
- lmp_content = remove_lmps_lines(lmp_content)
262
+ lmp_content, insert_info = remove_lmps_lines(lmp_content)
263
263
  lmp_content.insert(0, "variable DUMP_FREQ equal %d\n" % trj_freq)
264
264
  lmp_content.insert(1, "variable restart equal %d\n" % restart)
265
265
 
@@ -290,10 +290,15 @@ def make_lammps_input_from_lmp_in_file(
290
290
 
291
291
  if merge_traj is True:
292
292
  dump_line = "dump 1 all custom ${DUMP_FREQ} all.lammpstrj id type x y z fx fy fz\n"
293
- dump_line += 'if "${restart} > 0" then "dump_modify 1 append yes"\n'
293
+ if "dump_modify" in insert_info.keys():
294
+ dump_line += 'if "${restart} > 0" then' + 'dump_modify 1 {} append yes\n'.format(" ".join(insert_info['dump_modify'].split()[2:]))
295
+ else:
296
+ dump_line += 'if "${restart} > 0" then "dump_modify 1 append yes"\n'
294
297
  else:
295
298
  dump_line = "dump 1 all custom ${DUMP_FREQ} traj/*.lammpstrj id type x y z fx fy fz\n"
296
-
299
+ if "dump_modify" in insert_info.keys():
300
+ dump_line += 'dump_modify 1 {}\n'.format(" ".join(insert_info['dump_modify'].split()[2:]))
301
+
297
302
  dump_line += "restart 10000 lmps.restart\n"
298
303
  dump_line += "\n"
299
304
 
@@ -307,16 +312,38 @@ def make_lammps_input_from_lmp_in_file(
307
312
  return "".join(lmp_content)
308
313
 
309
314
  def remove_lmps_lines(lmps_lines):
310
- removes = ["dump_freq", "units", "boundary", "restart","atom_style", "read_data", "mass", "pair_style", "pair_coeff", "dump"]
311
- new_lines = [
312
- line for line in lmps_lines
313
- if line.lstrip().startswith('#')
314
- or not any(
315
- keyword.lower() in line.lower()
316
- for keyword in removes
317
- )
318
- ]
319
- return new_lines
315
+ removes = ["dump_freq", "restart","read_data"]
316
+ remove_head = ["mass", "units", "boundary", "atom_style", "pair_style", "pair_coeff", "dump"]
317
+
318
+ insert_head = ["dump_modify"]
319
+ new_line = []
320
+ insert_info = {}
321
+ for idx, line in enumerate(lmps_lines):
322
+ if line.lstrip() == '' or line.lstrip().startswith('#'):
323
+ new_line.append(line)
324
+ continue
325
+ if any (keyword.lower() == line.lstrip().split()[0].lower() for keyword in insert_head):
326
+ insert_info[line.lstrip().split()[0].lower()] = line
327
+ continue
328
+ if any(
329
+ keyword.lower() in line.lower() for keyword in removes
330
+ ):
331
+ continue
332
+ if any (keyword.lower() == line.lstrip().split()[0].lower() for keyword in remove_head):
333
+ continue
334
+ new_line.append(line)
335
+ # new_lines = [
336
+ # line for line in lmps_lines
337
+ # if line.lstrip().startswith('#')
338
+ # or (not any(
339
+ # keyword.lower() in line.lower()
340
+ # for keyword in removes
341
+ # ) and not (
342
+ # keyword.lower() in line.lstrip().split()[0].lower()
343
+ # for keyword in remove_head
344
+ # ))
345
+ # ]
346
+ return new_line, insert_info
320
347
 
321
348
  def find_first_run_cmd_line(lmps_lines):
322
349
  for i, line in enumerate(lmps_lines):
@@ -325,3 +352,27 @@ def find_first_run_cmd_line(lmps_lines):
325
352
  return -(len(lmps_lines) - i)
326
353
  return None
327
354
 
355
+ if __name__=="__main__":
356
+ lmp_in_file = "/data/home/wuxingxing/datas/debugs/czy/lammps.in"
357
+ with open(lmp_in_file, 'r') as rf:
358
+ lmp_content = rf.readlines()
359
+ runline_idx = find_first_run_cmd_line(lmp_content)
360
+ if runline_idx is None:
361
+ raise Exception("Error! The input lmp.in file: {} is missing the 'RUN' command, please modify it!".format(lmp_in_file))
362
+ # remove the units boundary atom_stype lines
363
+ # units metal
364
+ # boundary p p p
365
+ # atom_style atomic
366
+ # remove mass pair_style pair_coeff dump
367
+ lmp_content,insert_info = remove_lmps_lines(lmp_content)
368
+ merge_traj = False
369
+ if merge_traj is True:
370
+ dump_line = "dump 1 all custom ${DUMP_FREQ} all.lammpstrj id type x y z fx fy fz\n"
371
+ if "dump_modify" in insert_info.keys():
372
+ dump_line += 'if "${restart} > 0" then' + 'dump_modify 1 {} append yes\n'.format(" ".join(insert_info['dump_modify'].split()[2:]))
373
+ else:
374
+ dump_line += 'if "${restart} > 0" then "dump_modify 1 append yes"\n'
375
+ else:
376
+ dump_line = "dump 1 all custom ${DUMP_FREQ} traj/*.lammpstrj id type x y z fx fy fz\n"
377
+ if "dump_modify" in insert_info.keys():
378
+ dump_line += 'dump_modify 1 {}\n'.format(" ".join(insert_info['dump_modify'].split()[2:]))
@@ -19,7 +19,7 @@ def check_model_type(model_load_path):
19
19
  raise Exception("ERROR! The input model file cannot be parsed!")
20
20
  else:
21
21
  model_type = "NEP"
22
- return model_type
22
+ return model_type
23
23
 
24
24
  '''
25
25
  description:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pwact
3
- Version: 0.4.0.dev0
3
+ Version: 0.4.1
4
4
  Summary: PWACT is an open-source automated active learning platform based on MatPL for efficient data sampling.
5
5
  Home-page: https://github.com/LonxunQuantum/PWact
6
6
  Author: LonxunQuantum
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="pwact",
8
- version="0.4.0.dev",
8
+ version="0.4.1",
9
9
  author="LonxunQuantum",
10
10
  author_email="lonxun@pwmat.com",
11
11
  description="PWACT is an open-source automated active learning platform based on MatPL for efficient data sampling.",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes