pwact 0.2.0__py3-none-any.whl → 0.2.2.dev0__py3-none-any.whl

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.
@@ -0,0 +1,41 @@
1
+ from ase.io import read
2
+ from fairchem.core import OCPCalculator
3
+ import os
4
+ output_file = 'train.xyz'
5
+ traj = read("select.xyz", index=":")
6
+ calc = OCPCalculator(
7
+ checkpoint_path="/share/public/PWMLFF_test_data/eqv2-models/eqV2_31M_omat.pt",
8
+ cpu=False,
9
+ )
10
+
11
+ def atoms2xyzstr(atoms):
12
+ num_atom = atoms.get_global_number_of_atoms()
13
+ vol = atoms.get_volume()
14
+ pos = atoms.positions
15
+ forces = atoms.get_forces()
16
+ energy = atoms.get_potential_energy()
17
+ cell = atoms.cell
18
+ virial = -atoms.get_stress(voigt=False) * vol
19
+ xyzstr = "%d\n" % num_atom
20
+ xyz_head = 'Lattice="%.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f" Properties=species:S:1:pos:R:3:forces:R:3 energy=%.8f'
21
+ xyz_format = (cell[0,0],cell[0,1],cell[0,2],cell[1,0],cell[1,1],cell[1,2],cell[2,0],cell[2,1],cell[2,2],energy)
22
+ if virial is not None:
23
+ xyz_head += ' virial="%.8f %.8f %.8f %.8f %.8f %.8f %.8f %.8f %.8f"'
24
+ xyz_format += (
25
+ virial[0,0], virial[0,1], virial[0,2],
26
+ virial[1,0], virial[1,1], virial[1,2],
27
+ virial[2,0], virial[2,1], virial[2,2]
28
+ )
29
+ xyz_head += '\n'
30
+ xyzstr += xyz_head % xyz_format
31
+ for i in range(num_atom):
32
+ xyzstr += "%2s %14.8f %14.8f %14.8f %14.8f %14.8f %14.8f\n" %\
33
+ (atoms[i].symbol,pos[i,0],pos[i,1],pos[i,2],forces[i,0],forces[i,1],forces[i,2])
34
+ return xyzstr
35
+
36
+ f = open(output_file, "w")
37
+ for i in range(len(traj)):
38
+ atoms = traj[i]
39
+ atoms.calc = calc
40
+ f.write(atoms2xyzstr(atoms))
41
+ f.close()
pwact/utils/constant.py CHANGED
@@ -41,6 +41,7 @@ class SLURM_JOB_TYPE:
41
41
  vasp_scf = "vasp/scf"
42
42
  vasp_aimd = "vasp/aimd"
43
43
  lammps = "lammps"
44
+ direct = "direct"
44
45
 
45
46
  '''
46
47
  description:
@@ -138,6 +139,7 @@ class DFT_STYLE:
138
139
  pwmat = "pwmat"
139
140
  cp2k = "cp2k"
140
141
  lammps = "lammps"
142
+ bigmodel="bigmodel"
141
143
 
142
144
  '''
143
145
  description:
@@ -156,6 +158,8 @@ class DFT_STYLE:
156
158
  return PWDATA.cp2k_scf
157
159
  else:
158
160
  return PWDATA.vasp_poscar
161
+ if dft_style.lower() == DFT_STYLE.bigmodel.lower():
162
+ return PWDATA.extxyz
159
163
 
160
164
  @staticmethod
161
165
  def get_normal_config(dft_style:str): # the input config file name of pwmat vasp and cp2k
@@ -249,17 +253,6 @@ class DFT_STYLE:
249
253
  scf_list = [_.lower() for _ in scf_list]
250
254
  return scf_list
251
255
 
252
- '''
253
- description:
254
- the files in scf does not need reserve
255
- return {*}
256
- author: wuxingxing
257
- '''
258
- @staticmethod
259
- def get_scf_del_list():
260
- del_list = ["final.config"]
261
- return del_list
262
-
263
256
  @staticmethod
264
257
  def get_aimd_config(dft_style:str):
265
258
  if dft_style == DFT_STYLE.pwmat:
@@ -357,6 +350,20 @@ class INIT_BULK:
357
350
  scf_tag = "tag.scf.success"
358
351
  scf_tag_failed ="tag.scf.failed"
359
352
 
353
+ bigmodel="bigmodel"
354
+ bigmodel_job = "bigmodel.job"
355
+ bigmodel_tag = "tag.bigmodel.success"
356
+ bigmodel_tag_failed ="tag.bigmodel.failed"
357
+ bigmodel_traj = "traj.xyz"
358
+
359
+ direct="direct"
360
+ direct_job = "direct.job"
361
+ direct_tag = "tag.direct.success"
362
+ direct_tag_failed ="tag.direct.failed"
363
+ candidate_xyz="candidate.xyz"
364
+ candidate_idx="candidate.json"
365
+ direct_traj = "select.xyz"
366
+
360
367
  collection = "collection"
361
368
  npy_format_save_dir = "PWdata"
362
369
  npy_format_name = "datapath.txt"
@@ -413,11 +420,18 @@ class EXPLORE_FILE_STRUCTURE:
413
420
  kpu= "kpu"
414
421
  md = "md"
415
422
  select = "select"
423
+ direct = "direct"
416
424
  md_tag = "tag.md.success"
417
425
  md_tag_faild = "tag.md.error"
418
426
  md_job = "md.job"
427
+ direct_tag = "tag.direct.success"
428
+ direct_tag_faild = "tag.direct.error"
429
+ direct_job = "direct.job"
419
430
  # selected image info file names
420
431
  candidate = "candidate.csv"
432
+ candidate_xyz="candidate.xyz"
433
+ select_idx = "select_idx.dat"
434
+ select_xyz = "select.xyz"
421
435
  # candidate_random = "candidate_random.csv"
422
436
  candidate_delete = "candidate_delete.csv"
423
437
  failed = "fail.csv"
@@ -446,11 +460,17 @@ class EXPLORE_FILE_STRUCTURE:
446
460
 
447
461
 
448
462
  class LABEL_FILE_STRUCTURE:
463
+ bigmodel="bigmodel"
449
464
  scf = "scf"
450
465
  result = "result"
451
466
  scf_tag = "tag.scf.success"
452
467
  scf_tag_failed = "tag.scf.failed"
453
468
  scf_job = "scf.job"
469
+ bigmodel_job="bigmodel.job"
470
+ bigmodel_tag = "tag.bigmodel.success"
471
+ bigmodel_tag_failed = "tag.bigmodel.failed"
472
+ train_xyz = "train.xyz"
473
+
454
474
 
455
475
  class LAMMPS:
456
476
  input_lammps="in.lammps"
@@ -318,8 +318,15 @@ def get_file_extension(file_name:str, split_char = "."):
318
318
  @Author :wuxingxing
319
319
  """
320
320
 
321
- def get_random_nums(start, end, n):
322
- numsArray = set()
323
- while len(numsArray) < n:
324
- numsArray.add(random.randint(start, end-1))
325
- return list(numsArray)
321
+ def get_random_nums(start, end, n, seed=None):
322
+ if seed is not None:
323
+ local_random = random.Random(seed) # 独立的随机实例
324
+ numsArray = set()
325
+ while len(numsArray) < n:
326
+ numsArray.add(local_random.randint(start, end-1))
327
+ return list(numsArray)
328
+ else:
329
+ numsArray = set()
330
+ while len(numsArray) < n:
331
+ numsArray.add(random.randint(start, end-1))
332
+ return list(numsArray)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pwact
3
- Version: 0.2.0
3
+ Version: 0.2.2.dev0
4
4
  Summary: PWACT is an open-source automated active learning platform based on PWMLFF for efficient data sampling.
5
5
  Home-page: https://github.com/LonxunQuantum/PWact
6
6
  Author: LonxunQuantum
@@ -1,18 +1,20 @@
1
1
  pwact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- pwact/main.py,sha256=gsWBnVrBXLbclzonbYhZKPgVOQxb3_FVfKCezlJZz9Y,15100
2
+ pwact/main.py,sha256=FubLfN4QaqPEe7aYGzZhqvT2T2GEvMyU3hy07jvXEWU,15379
3
3
  pwact/active_learning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  pwact/active_learning/environment.py,sha256=1vzOWnCNR2OXMFKz4DjQF2wb0aw1Xkjnz7cy1YGQrus,512
5
5
  pwact/active_learning/explore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- pwact/active_learning/explore/run_model_md.py,sha256=hrE-vMJBlvgxTiG0WFG86RX2Gi7ImtutF0PoT2RTTN0,21312
7
- pwact/active_learning/explore/select_image.py,sha256=bDhDbdu6aoFfAdq_z3ha6qnxDGrQjfoHPVOKH7_u1VQ,14470
6
+ pwact/active_learning/explore/run_model_md.py,sha256=n3f6aSMr1Cpw_cSUrlH28JwoWW7VLwUMcF1XB0ao2sw,27448
7
+ pwact/active_learning/explore/select_image.py,sha256=Qbdk4zhEfkvefY4MPtu7ErDL0XVfgfrBFPZUGDyiGF8,14468
8
8
  pwact/active_learning/init_bulk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  pwact/active_learning/init_bulk/aimd.py,sha256=XzDlX2vylaljQKoUnv6nrI2NfiOdHZpq8qr3DenA1F4,10465
10
- pwact/active_learning/init_bulk/duplicate_scale.py,sha256=Z9mYBASy9gNLTV_db8lqfXpcahHbrQq6emae169P2wM,9468
11
- pwact/active_learning/init_bulk/init_bulk_run.py,sha256=B6miVKjY9ClxYW-SyhsY63OHdJRDeL6zc0BMW75SBg8,9151
12
- pwact/active_learning/init_bulk/relabel.py,sha256=DJR90gnC_AIWkcbWGcf2FYVCwPU40iP1uB48cTgGn7k,10447
10
+ pwact/active_learning/init_bulk/direct.py,sha256=TBB7f13wbbURDgn4_IkgRZ-rwQ3p4gviNVYIAldi97U,9680
11
+ pwact/active_learning/init_bulk/duplicate_scale.py,sha256=hlGAr27YJhOElMz5GMyN0wWoChia4Jj_tvENsJ3wSBs,9481
12
+ pwact/active_learning/init_bulk/explore.py,sha256=ef1KA4Sii7sXSGncvomsLXTBtFM89H8Q5lYWGoAbN2U,15935
13
+ pwact/active_learning/init_bulk/init_bulk_run.py,sha256=t-lCiraAtHEUtW-rdhfRuXYoWpP4eJndX3F3E6IxWt8,10871
14
+ pwact/active_learning/init_bulk/relabel.py,sha256=I5vSmyDaCJtcJCWS6aAtlb72kAQSva4vCx4mn1BYXjg,11846
13
15
  pwact/active_learning/init_bulk/relax.py,sha256=edyCZLEylUckIwOLBa55agUMo-aedj0dvoyG165YpuE,10450
14
16
  pwact/active_learning/label/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- pwact/active_learning/label/labeling.py,sha256=qtJdAGI_TyO0PtfexqCOITnHOnbTwVZCcaAH7BPGLCk,15102
17
+ pwact/active_learning/label/labeling.py,sha256=JUdyaSvpspUwbMnhi65i6Cna0vWgMOAMNS1XTtqlygc,21740
16
18
  pwact/active_learning/slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
19
  pwact/active_learning/slurm/slurm.py,sha256=-Dmc2B9y4_27THCR2tZFXnwJvMmifivJeZ2FX8iy2Tw,16881
18
20
  pwact/active_learning/slurm/slurm_tool.py,sha256=-4tc5dkpAUP0vmEdmqM8oYLcsUwixa4Z8h5_E9Gevdg,1249
@@ -23,24 +25,24 @@ pwact/active_learning/train/dp_kpu.py,sha256=GkGKEGhLmOvPERqgTkf_0_vD9zOEPlBX2N7
23
25
  pwact/active_learning/train/train_model.py,sha256=F6DUOuTsYGvinv-qz2iqa2j7DPy3hnCySVUkx8DpR_U,11605
24
26
  pwact/active_learning/user_input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
27
  pwact/active_learning/user_input/cmd_infos.py,sha256=g1QW5Wi3JvmC5xEY4F-7AO1xBuJSjHG8IhZjom8haxQ,3728
26
- pwact/active_learning/user_input/init_bulk_input.py,sha256=7Suhxtgu84bn0ziL1RFF-7eSJUcLKJ2HF132RZmpNxw,6982
27
- pwact/active_learning/user_input/iter_input.py,sha256=ffGNq8Qm2mALEviVHpZ0nFuKrqy1FuWriI2hg8F54X0,12131
28
- pwact/active_learning/user_input/resource.py,sha256=bg1rkdjIzuj7pDUvp6h1yMWFT0PqYzH4BfX5tJ7MZzc,6812
29
- pwact/active_learning/user_input/scf_param.py,sha256=tHmGnWrWiZ1dD-EZHfvWtzKGnT6BjIhXKMXNhPmWSQc,10376
28
+ pwact/active_learning/user_input/init_bulk_input.py,sha256=M8IlT4ABJUEwomb6eQGq8d3h1darMHtDlws1fcq077k,9422
29
+ pwact/active_learning/user_input/iter_input.py,sha256=7k0M3BaP1dMWK2Bglvb2WXQ2Ugrfy0v7yMqPqWqNCdE,12744
30
+ pwact/active_learning/user_input/resource.py,sha256=28rbsJ9qtkToeuXst7Q1Z189KpDd8YZ8bBK7cuDp7RU,7358
31
+ pwact/active_learning/user_input/scf_param.py,sha256=QX_Dd6c9Q2sjV4lIKjfV7t-DgIwDKZp7fh2KY5HyKOU,11262
30
32
  pwact/active_learning/user_input/workdir.py,sha256=64J3wBbYzy6ztYHs513YHfEIF5d8zwv_WpF-U9HOEkA,8245
31
33
  pwact/active_learning/user_input/train_param/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
34
  pwact/active_learning/user_input/train_param/model_param.py,sha256=4-bJAGOJDTLT11lLqpEZAWMqgen7zghHESfHeb0UUb4,4574
33
35
  pwact/active_learning/user_input/train_param/nep_param.py,sha256=04GEKqT2miZYxgVtxTEGIWJW5mUZriPcvwfgdp7IL0g,21249
34
36
  pwact/active_learning/user_input/train_param/nn_feature_type.py,sha256=eGmqfsPTlIpftzvUqHV_VziGQuUZ_KKqek3SQKZl85o,15640
35
- pwact/active_learning/user_input/train_param/optimizer_param.py,sha256=1Vl_BulrLkJmOPSetyn2HJMcwjizkkjrhvz0x8DzLRU,13084
37
+ pwact/active_learning/user_input/train_param/optimizer_param.py,sha256=8zG3l6DqEjmwNCqRwpcA1J1oY2tm-J-V4zl3sM0G_ek,13085
36
38
  pwact/active_learning/user_input/train_param/train_param.py,sha256=rpLmOncwqQ82Hudwwl-VzZKJv2jCtrsCsJN2UpuHqKg,16640
37
39
  pwact/active_learning/user_input/train_param/work_file_param.py,sha256=3sQiHcquQO9hw0JexiMXkuf01gy871yjYz9GEZ3Icoo,12239
38
40
  pwact/bin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
41
  pwact/data_format/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
42
  pwact/data_format/configop.py,sha256=6JA84cK7Ck-t1z3iLz3pPVJ-q4srhDiQQhs9-G-cxY0,11772
41
43
  pwact/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- pwact/utils/constant.py,sha256=swLs-0Lulc22ZvJ_cwEYTO8r5cxB3y5YB2EnwxhfRNE,18757
43
- pwact/utils/file_operation.py,sha256=1W5kGzGAznbAs2vyUhh5sDim62qQOkTPgphSOe_oDvI,9536
44
+ pwact/utils/constant.py,sha256=qKiASMwMpROa_w29NEyUG6Uov8di4UGprXBIa7tUGjc,19482
45
+ pwact/utils/file_operation.py,sha256=bfLezgJHD3BRtZFm0HwSGTNBPukVNICZFpXYWMs68A4,9827
44
46
  pwact/utils/format_input_output.py,sha256=oYFydQy3-btXzieO2O2LbHFoeRyhPnLVE4c5TNgS-IQ,1798
45
47
  pwact/utils/json_operation.py,sha256=BqBsnIjk1URoMW_s2yu7Gk8IBxlir-oo6ivt8P3RIqg,1794
46
48
  pwact/utils/pre_al_data_util.py,sha256=QE-axnVYUIyORFiVs-WK9-UaJlMUFY816_rSyYOOJc8,2542
@@ -51,13 +53,15 @@ pwact/utils/app_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
51
53
  pwact/utils/app_lib/common.py,sha256=lQmI-9Qumq62MNjr-eVlLL88ISDHBOb6vAfYYFcDIgM,6040
52
54
  pwact/utils/app_lib/cp2k.py,sha256=txd-eMDUOsWPug395WJOQz3aqhwz7eU4hcEZIWTF1OY,15492
53
55
  pwact/utils/app_lib/cp2k_dp.py,sha256=VP4gyPGhLcMAqAjrqCQSUiiGlESNlyYz7Gs3Q4QoUHo,6912
56
+ pwact/utils/app_lib/do_direct_sample.py,sha256=G8VZH23c2vBJwG9pp_H9EvRVaRJPsQVliDH-v6l2Gek,4947
57
+ pwact/utils/app_lib/do_eqv2model.py,sha256=cRVzagozELK6kCZuX6dqg2gDHQPr7n3TQk6JghDjiy4,1509
54
58
  pwact/utils/app_lib/lammps.py,sha256=t3nkBqwkViO6UbnInGKAHiwVngHKayeat2pPEtaZZIU,8015
55
59
  pwact/utils/app_lib/pwmat.py,sha256=PTRPkG_d00ibGhpCe2-4M7MW3dx2ZuAyb9hT2jl_LAs,18047
56
60
  pwact/utils/draw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
61
  pwact/utils/draw/hist_model_devi.py,sha256=o1Try-ekith2A7S6u1mt3zuTqaQwyw5tdURReh8BeLY,4945
58
- pwact-0.2.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
59
- pwact-0.2.0.dist-info/METADATA,sha256=wlqbUATqsi_RBbpLC_1SytmOIFiUtIKqTIXNLs2bV9U,3658
60
- pwact-0.2.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
61
- pwact-0.2.0.dist-info/entry_points.txt,sha256=p61auAnpbn8E2WjvHNBA7rb9_NRAOCew4zdcCj33cGc,42
62
- pwact-0.2.0.dist-info/top_level.txt,sha256=fY1_7sH5Lke4dC9L8MbYM4fT5aat5eCkAmpkIzY1SlM,6
63
- pwact-0.2.0.dist-info/RECORD,,
62
+ pwact-0.2.2.dev0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
+ pwact-0.2.2.dev0.dist-info/METADATA,sha256=RGt1qWZv8xFV4H4W3oFbtZGmMs_sPK73JRJFwm2ZJbQ,3663
64
+ pwact-0.2.2.dev0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
65
+ pwact-0.2.2.dev0.dist-info/entry_points.txt,sha256=p61auAnpbn8E2WjvHNBA7rb9_NRAOCew4zdcCj33cGc,42
66
+ pwact-0.2.2.dev0.dist-info/top_level.txt,sha256=fY1_7sH5Lke4dC9L8MbYM4fT5aat5eCkAmpkIzY1SlM,6
67
+ pwact-0.2.2.dev0.dist-info/RECORD,,