pwact 0.1.26__py3-none-any.whl → 0.1.28__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.
- pwact/active_learning/explore/run_model_md.py +5 -2
- pwact/active_learning/explore/select_image.py +49 -10
- pwact/active_learning/init_bulk/init_bulk_run.py +18 -14
- pwact/active_learning/label/labeling.py +7 -17
- pwact/active_learning/slurm/slurm.py +37 -9
- pwact/active_learning/train/train_model.py +26 -13
- pwact/active_learning/user_input/cmd_infos.py +1 -1
- pwact/active_learning/user_input/init_bulk_input.py +4 -2
- pwact/active_learning/user_input/iter_input.py +19 -4
- pwact/active_learning/user_input/scf_param.py +2 -0
- pwact/active_learning/user_input/train_param/train_param.py +24 -17
- pwact/active_learning/user_input/train_param/work_file_param.py +114 -92
- pwact/data_format/configop.py +29 -36
- pwact/main.py +12 -38
- pwact/utils/app_lib/cp2k.py +62 -5
- pwact/utils/constant.py +13 -2
- pwact/utils/draw/__init__.py +0 -0
- pwact/utils/draw/hist_model_devi.py +132 -0
- pwact/utils/file_operation.py +14 -0
- pwact/utils/process_tool.py +22 -11
- pwact/utils/slurm_script.py +20 -17
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/METADATA +1 -1
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/RECORD +27 -25
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/WHEEL +1 -1
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/LICENSE +0 -0
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/entry_points.txt +0 -0
- {pwact-0.1.26.dist-info → pwact-0.1.28.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
|
|
4
|
+
# import numpy as np
|
|
5
|
+
import matplotlib.pyplot as plt
|
|
6
|
+
|
|
7
|
+
mark_list = ["o", "^", "v", "X", "|", "*", "v", "+", '*', ' ']
|
|
8
|
+
color_list = ["#006400", "#FF8C00", "#B22222", "#FF8C00" ,"#ff0099" ,\
|
|
9
|
+
"#000000" , "#BDB76B", "#999900" ,"#009999" ,"#000099" ,"#990099", "#ff9900" ]
|
|
10
|
+
linestyle_list = ["--", "--", "--", "-", "-", "-"]
|
|
11
|
+
|
|
12
|
+
def draw_hists_2(data, save_path, min, max, legend_label):
|
|
13
|
+
bins = np.linspace(0, max, 100) # 根据需要调整bin的数量和范围
|
|
14
|
+
alpha = 0.5 # 透明度设置
|
|
15
|
+
plt.figure(figsize=(10, 6)) # 设置图形的大小
|
|
16
|
+
|
|
17
|
+
for i, _data in enumerate(data):
|
|
18
|
+
plt.hist(_data, bins=bins, alpha=alpha, label=legend_label[i], density=True)
|
|
19
|
+
|
|
20
|
+
# 设置坐标轴范围
|
|
21
|
+
plt.xlim(min, max)
|
|
22
|
+
|
|
23
|
+
# 添加标题、标签、图例
|
|
24
|
+
plt.title('Distribution of model deviation', fontsize=18, fontweight='bold', family='serif')
|
|
25
|
+
plt.xlabel('Model Deviation', fontsize=14, fontweight='bold', family='serif')
|
|
26
|
+
plt.ylabel('Frequency', fontsize=14, fontweight='bold', family='serif')
|
|
27
|
+
|
|
28
|
+
# 设置图例
|
|
29
|
+
plt.legend(loc='upper right', fontsize=15, title_fontsize='large')
|
|
30
|
+
|
|
31
|
+
# 调整坐标轴的字体大小
|
|
32
|
+
plt.tick_params(axis='both', labelsize=15)
|
|
33
|
+
|
|
34
|
+
# 添加网格
|
|
35
|
+
plt.grid(True, linestyle='--', alpha=0.7)
|
|
36
|
+
|
|
37
|
+
# 保存图像
|
|
38
|
+
plt.savefig(save_path, dpi=300, bbox_inches='tight')
|
|
39
|
+
plt.close()
|
|
40
|
+
|
|
41
|
+
def read_model_devi(file_path, low=None, high=None):
|
|
42
|
+
devi_files = []
|
|
43
|
+
for path, dirList, fileList in os.walk(file_path):
|
|
44
|
+
for _ in fileList:
|
|
45
|
+
if "model_devi.out" in _:
|
|
46
|
+
devi_files.append(os.path.join(path, _))
|
|
47
|
+
data = []
|
|
48
|
+
for file in devi_files:
|
|
49
|
+
_data = np.loadtxt(file, skiprows=0)
|
|
50
|
+
if _data.shape[0] > 1:
|
|
51
|
+
data.extend(list(_data[:, 1])) # force
|
|
52
|
+
|
|
53
|
+
right = 0
|
|
54
|
+
mid = 0
|
|
55
|
+
error = 0
|
|
56
|
+
if low is not None:
|
|
57
|
+
for d in data:
|
|
58
|
+
if d <= low:
|
|
59
|
+
right += 1
|
|
60
|
+
elif d > low and d <= high:
|
|
61
|
+
mid += 1
|
|
62
|
+
else:
|
|
63
|
+
error += 1
|
|
64
|
+
return data, devi_files, right, mid, error
|
|
65
|
+
|
|
66
|
+
def draw_hist_list(file_path:list[str], legend_label, save_path:str, low=None, high=None) :
|
|
67
|
+
data = []
|
|
68
|
+
min = None
|
|
69
|
+
max = None
|
|
70
|
+
abs_mean = []
|
|
71
|
+
abs_max = []
|
|
72
|
+
mid = 0
|
|
73
|
+
error = 0
|
|
74
|
+
right = 0
|
|
75
|
+
for file in file_path:
|
|
76
|
+
_data, devi_files, _right, _mid, _error = read_model_devi(file, low, high)
|
|
77
|
+
right += _right
|
|
78
|
+
mid += _mid
|
|
79
|
+
error += _error
|
|
80
|
+
_min = np.min(_data)
|
|
81
|
+
_max = np.max(_data)
|
|
82
|
+
min = _min if (min is None or _min < min) else min
|
|
83
|
+
max = _max if (max is None or _max > max) else max
|
|
84
|
+
data.append(_data)
|
|
85
|
+
abs_mean.append(np.mean(_data))
|
|
86
|
+
abs_max.append(np.max(_data))
|
|
87
|
+
|
|
88
|
+
for i in range(0, len(legend_label)):
|
|
89
|
+
if low is not None:
|
|
90
|
+
legend_label[i] = "{}\nmean {} max {} right {} candidate {} error {}".format(legend_label[i], round(abs_mean[i], 3), round(abs_max[i], 3), right, mid, error)
|
|
91
|
+
else:
|
|
92
|
+
legend_label[i] = "{}\nmean {} max {}".format(legend_label[i], round(abs_mean[i], 5), round(abs_max[i], 5))
|
|
93
|
+
# print(legend_label)
|
|
94
|
+
new_data = []
|
|
95
|
+
for id, d in enumerate(data):
|
|
96
|
+
tmp = []
|
|
97
|
+
for _d in d:
|
|
98
|
+
if _d > 1.0:
|
|
99
|
+
tmp.append(1.0)
|
|
100
|
+
else:
|
|
101
|
+
tmp.append(_d)
|
|
102
|
+
new_data.append(tmp)
|
|
103
|
+
max = 1.0 if max > 1.0 else max
|
|
104
|
+
draw_hists_2(new_data, save_path, min, max, legend_label)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
legend_label = ["iter.0006/md/md.000.sys.000"]
|
|
111
|
+
save_dir = "/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.002"
|
|
112
|
+
draw_hist_list([
|
|
113
|
+
"/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.002"
|
|
114
|
+
], legend_label, save_path=os.path.join(save_dir, "hist_mode_deiv_md.000.sys.002.png"))
|
|
115
|
+
|
|
116
|
+
legend_label = ["iter.0006/md/md.000.sys.001"]
|
|
117
|
+
save_dir = "/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.000"
|
|
118
|
+
draw_hist_list([
|
|
119
|
+
"/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.000"
|
|
120
|
+
], legend_label, save_path=os.path.join(save_dir, "hist_mode_deiv_md.000.sys.000.png"))
|
|
121
|
+
|
|
122
|
+
legend_label = ["iter.0006/md/md.000.sys.002"]
|
|
123
|
+
save_dir = "/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.001"
|
|
124
|
+
draw_hist_list([
|
|
125
|
+
"/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.001"
|
|
126
|
+
], legend_label, save_path=os.path.join(save_dir, "hist_mode_deiv_md.000.sys.001.png"))
|
|
127
|
+
|
|
128
|
+
legend_label = ["iter.0006/md/md.000.sys.003"]
|
|
129
|
+
save_dir = "/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.003"
|
|
130
|
+
draw_hist_list([
|
|
131
|
+
"/data/home/wuxingxing/datas/al_dir/djp/iter.0006/explore/md/md.000.sys.003"
|
|
132
|
+
], legend_label, save_path=os.path.join(save_dir, "hist_mode_deiv_md.000.sys.003.png"), low=0.1, high=0.2)
|
pwact/utils/file_operation.py
CHANGED
|
@@ -6,6 +6,20 @@ import re
|
|
|
6
6
|
import json
|
|
7
7
|
import numpy as np
|
|
8
8
|
import random
|
|
9
|
+
import torch
|
|
10
|
+
|
|
11
|
+
def check_model_type(model_load_path):
|
|
12
|
+
try:
|
|
13
|
+
_model_checkpoint = torch.load(model_load_path, map_location=torch.device("cpu"))
|
|
14
|
+
model_type = _model_checkpoint['json_file']['model_type']
|
|
15
|
+
except Exception as e:
|
|
16
|
+
with open(model_load_path, 'r') as rf:
|
|
17
|
+
line = rf.readline()
|
|
18
|
+
if "nep" not in line:
|
|
19
|
+
raise Exception("ERROR! The input model file cannot be parsed!")
|
|
20
|
+
else:
|
|
21
|
+
model_type = "NEP"
|
|
22
|
+
return model_type
|
|
9
23
|
|
|
10
24
|
'''
|
|
11
25
|
description:
|
pwact/utils/process_tool.py
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import signal
|
|
3
3
|
import subprocess
|
|
4
|
+
from subprocess import Popen, PIPE
|
|
5
|
+
import time
|
|
6
|
+
from pwact.active_learning.slurm.slurm import scancle_byjobid
|
|
7
|
+
def kill_process(pid:str, job_id:str):
|
|
8
|
+
if job_id is None:
|
|
9
|
+
try:
|
|
10
|
+
# 发送终止信号 (SIGTERM) 给指定的进程
|
|
11
|
+
os.kill(pid, signal.SIGTERM)
|
|
12
|
+
print(f"process {pid} has been terminated.")
|
|
13
|
+
except ProcessLookupError:
|
|
14
|
+
print(f"process {pid} non-existent.")
|
|
15
|
+
except PermissionError:
|
|
16
|
+
print(f"No permission to terminate the process {pid}.")
|
|
17
|
+
except Exception as e:
|
|
18
|
+
print(f"Error terminating process {pid}: {e}")
|
|
19
|
+
else:
|
|
20
|
+
scancle_byjobid(job_id)
|
|
21
|
+
|
|
22
|
+
def get_pid():
|
|
23
|
+
pid = os.getpid()
|
|
24
|
+
job_id = os.getenv('SLURM_JOB_ID')
|
|
25
|
+
return "pid {} job {}".format(pid, job_id) if job_id is not None else "pid {}".format(pid)
|
|
4
26
|
|
|
5
|
-
def kill_process(pid:int):
|
|
6
|
-
try:
|
|
7
|
-
# 发送终止信号 (SIGTERM) 给指定的进程
|
|
8
|
-
os.kill(pid, signal.SIGTERM)
|
|
9
|
-
print(f"process {pid} has been terminated.")
|
|
10
|
-
except ProcessLookupError:
|
|
11
|
-
print(f"process {pid} non-existent.")
|
|
12
|
-
except PermissionError:
|
|
13
|
-
print(f"No permission to terminate the process {pid}.")
|
|
14
|
-
except Exception as e:
|
|
15
|
-
print(f"Error terminating process {pid}: {e}")
|
pwact/utils/slurm_script.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import glob
|
|
2
|
+
import re
|
|
2
3
|
import os
|
|
3
4
|
from math import ceil
|
|
4
5
|
from pwact.utils.constant import DFT_STYLE
|
|
@@ -8,7 +9,6 @@ GPU_SCRIPT_HEAD = \
|
|
|
8
9
|
#SBATCH --nodes={}\n\
|
|
9
10
|
#SBATCH --ntasks-per-node={}\n\
|
|
10
11
|
#SBATCH --gres=gpu:{}\n\
|
|
11
|
-
#SBATCH --gpus-per-task={}\n\
|
|
12
12
|
#SBATCH --partition={}\n\
|
|
13
13
|
\
|
|
14
14
|
"
|
|
@@ -22,20 +22,6 @@ CPU_SCRIPT_HEAD = \
|
|
|
22
22
|
\
|
|
23
23
|
"
|
|
24
24
|
|
|
25
|
-
CONDA_ENV = '__conda_setup="$(\'/data/home/wuxingxing/anaconda3/bin/conda\' \'shell.bash\' \'hook\' 2> /dev/null)"\n' \
|
|
26
|
-
'if [ $? -eq 0 ]; then\n' \
|
|
27
|
-
' eval "$__conda_setup"\n' \
|
|
28
|
-
'else\n' \
|
|
29
|
-
' if [ -f "/data/home/wuxingxing/anaconda3/etc/profile.d/conda.sh" ]; then\n' \
|
|
30
|
-
' . "/data/home/wuxingxing/anaconda3/etc/profile.d/conda.sh"\n' \
|
|
31
|
-
' else\n' \
|
|
32
|
-
' export PATH="/data/home/wuxingxing/anaconda3/bin:$PATH"\n' \
|
|
33
|
-
' fi\n' \
|
|
34
|
-
'fi\n' \
|
|
35
|
-
'unset __conda_setup\n' \
|
|
36
|
-
'# <<< conda initialize <<<\n' \
|
|
37
|
-
'conda activate torch2_feat\n\n'
|
|
38
|
-
|
|
39
25
|
'''
|
|
40
26
|
Description:
|
|
41
27
|
Obtain the execution status of the slurm jobs under the 'dir'
|
|
@@ -71,6 +57,24 @@ def get_slurm_job_run_info(dir:str, job_patten:str="*.job", tag_patten:str="tag.
|
|
|
71
57
|
|
|
72
58
|
return slurm_failed, slurm_success
|
|
73
59
|
|
|
60
|
+
def recheck_slurm_by_jobtag(slurm_files:list[str], tag):
|
|
61
|
+
remain_job = []
|
|
62
|
+
for slurm_file in slurm_files:
|
|
63
|
+
with open(slurm_file, 'r') as f:
|
|
64
|
+
content = f.read()
|
|
65
|
+
cd_pattern = r'cd\s+([^\n]+)'
|
|
66
|
+
directories = re.findall(cd_pattern, content)
|
|
67
|
+
if not directories:
|
|
68
|
+
raise Exception("Error! There is no task in the slurm.job file {}".format(slurm_file))
|
|
69
|
+
for directory in directories:
|
|
70
|
+
directory = directory.strip()
|
|
71
|
+
success_file = os.path.join(directory, tag)
|
|
72
|
+
if os.path.exists(success_file):
|
|
73
|
+
continue
|
|
74
|
+
else:
|
|
75
|
+
remain_job.append(slurm_file)
|
|
76
|
+
break
|
|
77
|
+
return remain_job
|
|
74
78
|
|
|
75
79
|
'''
|
|
76
80
|
description:
|
|
@@ -146,14 +150,13 @@ def set_slurm_script_content(
|
|
|
146
150
|
script += CPU_SCRIPT_HEAD.format(job_name, number_node, cpu_per_node, queue_name)
|
|
147
151
|
script += "export CUDA_VISIBLE_DEVICES=''\n"
|
|
148
152
|
else:
|
|
149
|
-
script += GPU_SCRIPT_HEAD.format(job_name, number_node, cpu_per_node, gpu_per_node,
|
|
153
|
+
script += GPU_SCRIPT_HEAD.format(job_name, number_node, cpu_per_node, gpu_per_node, queue_name)
|
|
150
154
|
|
|
151
155
|
for custom_flag in custom_flags:
|
|
152
156
|
script += custom_flag + "\n"
|
|
153
157
|
|
|
154
158
|
# set conda env
|
|
155
159
|
script += "\n"
|
|
156
|
-
# script += CONDA_ENV
|
|
157
160
|
# script += "\n"
|
|
158
161
|
|
|
159
162
|
script += "echo \"SLURM_SUBMIT_DIR is $SLURM_SUBMIT_DIR\"\n\n"
|
|
@@ -1,61 +1,63 @@
|
|
|
1
1
|
pwact/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
pwact/main.py,sha256=
|
|
2
|
+
pwact/main.py,sha256=_EApUrHe-rfOiYMeI-FbnGxFtL6iOdua7vrM3ezXs3c,15186
|
|
3
3
|
pwact/active_learning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
pwact/active_learning/environment.py,sha256=KvyMaOXrM-HMMma4SnoOQFO6fZxDsk0Fsyyy7xqfGCo,684
|
|
5
5
|
pwact/active_learning/explore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
pwact/active_learning/explore/run_model_md.py,sha256=
|
|
7
|
-
pwact/active_learning/explore/select_image.py,sha256=
|
|
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
|
|
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
10
|
pwact/active_learning/init_bulk/duplicate_scale.py,sha256=Z9mYBASy9gNLTV_db8lqfXpcahHbrQq6emae169P2wM,9468
|
|
11
|
-
pwact/active_learning/init_bulk/init_bulk_run.py,sha256=
|
|
11
|
+
pwact/active_learning/init_bulk/init_bulk_run.py,sha256=B6miVKjY9ClxYW-SyhsY63OHdJRDeL6zc0BMW75SBg8,9151
|
|
12
12
|
pwact/active_learning/init_bulk/relabel.py,sha256=DJR90gnC_AIWkcbWGcf2FYVCwPU40iP1uB48cTgGn7k,10447
|
|
13
13
|
pwact/active_learning/init_bulk/relax.py,sha256=edyCZLEylUckIwOLBa55agUMo-aedj0dvoyG165YpuE,10450
|
|
14
14
|
pwact/active_learning/label/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
pwact/active_learning/label/labeling.py,sha256=
|
|
15
|
+
pwact/active_learning/label/labeling.py,sha256=qtJdAGI_TyO0PtfexqCOITnHOnbTwVZCcaAH7BPGLCk,15102
|
|
16
16
|
pwact/active_learning/slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
pwact/active_learning/slurm/slurm.py,sha256
|
|
17
|
+
pwact/active_learning/slurm/slurm.py,sha256=-Dmc2B9y4_27THCR2tZFXnwJvMmifivJeZ2FX8iy2Tw,16881
|
|
18
18
|
pwact/active_learning/slurm/slurm_tool.py,sha256=-4tc5dkpAUP0vmEdmqM8oYLcsUwixa4Z8h5_E9Gevdg,1249
|
|
19
19
|
pwact/active_learning/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
20
|
pwact/active_learning/test/test.py,sha256=TXsk-gDDOHDLywVljpqA-zHK3-PrZbGAHnK1T7T6T-o,3587
|
|
21
21
|
pwact/active_learning/train/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
pwact/active_learning/train/dp_kpu.py,sha256=GkGKEGhLmOvPERqgTkf_0_vD9zOEPlBX2N7vuSQG_-c,9317
|
|
23
|
-
pwact/active_learning/train/train_model.py,sha256=
|
|
23
|
+
pwact/active_learning/train/train_model.py,sha256=F6DUOuTsYGvinv-qz2iqa2j7DPy3hnCySVUkx8DpR_U,11605
|
|
24
24
|
pwact/active_learning/user_input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
pwact/active_learning/user_input/cmd_infos.py,sha256=
|
|
26
|
-
pwact/active_learning/user_input/init_bulk_input.py,sha256=
|
|
27
|
-
pwact/active_learning/user_input/iter_input.py,sha256=
|
|
25
|
+
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
28
|
pwact/active_learning/user_input/resource.py,sha256=bg1rkdjIzuj7pDUvp6h1yMWFT0PqYzH4BfX5tJ7MZzc,6812
|
|
29
|
-
pwact/active_learning/user_input/scf_param.py,sha256=
|
|
29
|
+
pwact/active_learning/user_input/scf_param.py,sha256=tHmGnWrWiZ1dD-EZHfvWtzKGnT6BjIhXKMXNhPmWSQc,10376
|
|
30
30
|
pwact/active_learning/user_input/workdir.py,sha256=64J3wBbYzy6ztYHs513YHfEIF5d8zwv_WpF-U9HOEkA,8245
|
|
31
31
|
pwact/active_learning/user_input/train_param/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
32
|
pwact/active_learning/user_input/train_param/model_param.py,sha256=4-bJAGOJDTLT11lLqpEZAWMqgen7zghHESfHeb0UUb4,4574
|
|
33
33
|
pwact/active_learning/user_input/train_param/nep_param.py,sha256=IoaQNwaXQFDXA7ET8NKptrkhvTE4lDknp23VccG6A1I,21251
|
|
34
34
|
pwact/active_learning/user_input/train_param/nn_feature_type.py,sha256=eGmqfsPTlIpftzvUqHV_VziGQuUZ_KKqek3SQKZl85o,15640
|
|
35
35
|
pwact/active_learning/user_input/train_param/optimizer_param.py,sha256=1Vl_BulrLkJmOPSetyn2HJMcwjizkkjrhvz0x8DzLRU,13084
|
|
36
|
-
pwact/active_learning/user_input/train_param/train_param.py,sha256=
|
|
37
|
-
pwact/active_learning/user_input/train_param/work_file_param.py,sha256=
|
|
36
|
+
pwact/active_learning/user_input/train_param/train_param.py,sha256=rpLmOncwqQ82Hudwwl-VzZKJv2jCtrsCsJN2UpuHqKg,16640
|
|
37
|
+
pwact/active_learning/user_input/train_param/work_file_param.py,sha256=uFeCTJS7OS33NDaQBUtQZsKXTeHZpVVfybwCJgDW4x0,12246
|
|
38
38
|
pwact/bin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
pwact/data_format/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
pwact/data_format/configop.py,sha256=
|
|
40
|
+
pwact/data_format/configop.py,sha256=6JA84cK7Ck-t1z3iLz3pPVJ-q4srhDiQQhs9-G-cxY0,11772
|
|
41
41
|
pwact/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
pwact/utils/constant.py,sha256=
|
|
43
|
-
pwact/utils/file_operation.py,sha256=
|
|
42
|
+
pwact/utils/constant.py,sha256=nx1zArBWAwC17gIx7G-KHAhf_wrU1kPsfSxB3hr3Fuw,18764
|
|
43
|
+
pwact/utils/file_operation.py,sha256=1W5kGzGAznbAs2vyUhh5sDim62qQOkTPgphSOe_oDvI,9536
|
|
44
44
|
pwact/utils/format_input_output.py,sha256=oYFydQy3-btXzieO2O2LbHFoeRyhPnLVE4c5TNgS-IQ,1798
|
|
45
45
|
pwact/utils/json_operation.py,sha256=BqBsnIjk1URoMW_s2yu7Gk8IBxlir-oo6ivt8P3RIqg,1794
|
|
46
46
|
pwact/utils/pre_al_data_util.py,sha256=QE-axnVYUIyORFiVs-WK9-UaJlMUFY816_rSyYOOJc8,2542
|
|
47
|
-
pwact/utils/process_tool.py,sha256=
|
|
48
|
-
pwact/utils/slurm_script.py,sha256=
|
|
47
|
+
pwact/utils/process_tool.py,sha256=j4yp9DoPshTxTX3g7SS-yuEbBVhuoYNNZdAv2mq3efE,876
|
|
48
|
+
pwact/utils/slurm_script.py,sha256=tbclNkYBVM-t8GeiLGNK2s5kxypjy8luf4ZrlHEGjjM,8278
|
|
49
49
|
pwact/utils/tmp.py,sha256=en_GltoNwfA40vSHttMRi9cEg-8xnPZlvnnBq1_vHfw,2285
|
|
50
50
|
pwact/utils/app_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
51
|
pwact/utils/app_lib/common.py,sha256=lQmI-9Qumq62MNjr-eVlLL88ISDHBOb6vAfYYFcDIgM,6040
|
|
52
|
-
pwact/utils/app_lib/cp2k.py,sha256=
|
|
52
|
+
pwact/utils/app_lib/cp2k.py,sha256=txd-eMDUOsWPug395WJOQz3aqhwz7eU4hcEZIWTF1OY,15492
|
|
53
53
|
pwact/utils/app_lib/cp2k_dp.py,sha256=VP4gyPGhLcMAqAjrqCQSUiiGlESNlyYz7Gs3Q4QoUHo,6912
|
|
54
54
|
pwact/utils/app_lib/lammps.py,sha256=2oxHJHdDxfDDWWmnjo0gMNwgGvxABwuDgDlb8kbhgfk,8037
|
|
55
55
|
pwact/utils/app_lib/pwmat.py,sha256=PTRPkG_d00ibGhpCe2-4M7MW3dx2ZuAyb9hT2jl_LAs,18047
|
|
56
|
-
pwact
|
|
57
|
-
pwact
|
|
58
|
-
pwact-0.1.
|
|
59
|
-
pwact-0.1.
|
|
60
|
-
pwact-0.1.
|
|
61
|
-
pwact-0.1.
|
|
56
|
+
pwact/utils/draw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
pwact/utils/draw/hist_model_devi.py,sha256=o1Try-ekith2A7S6u1mt3zuTqaQwyw5tdURReh8BeLY,4945
|
|
58
|
+
pwact-0.1.28.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
59
|
+
pwact-0.1.28.dist-info/METADATA,sha256=nAiDrWaNcIP_GubrMMqGYpDX6AMCXtoawCE6tA41zvI,3659
|
|
60
|
+
pwact-0.1.28.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
61
|
+
pwact-0.1.28.dist-info/entry_points.txt,sha256=p61auAnpbn8E2WjvHNBA7rb9_NRAOCew4zdcCj33cGc,42
|
|
62
|
+
pwact-0.1.28.dist-info/top_level.txt,sha256=fY1_7sH5Lke4dC9L8MbYM4fT5aat5eCkAmpkIzY1SlM,6
|
|
63
|
+
pwact-0.1.28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|