NepTrainKit 2.0.6.dev27__tar.gz → 2.0.6.dev33__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 (65) hide show
  1. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/PKG-INFO +1 -1
  2. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/_version.py +2 -2
  3. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/canvas/pyqtgraph/canvas.py +5 -1
  4. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/canvas/vispy/canvas.py +17 -9
  5. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/io/nep.py +7 -2
  6. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/pages/makedata.py +2 -5
  7. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/pages/show_nep.py +1 -1
  8. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/structure.py +12 -7
  9. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/views/cards.py +3 -3
  10. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/views/nep.py +3 -1
  11. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/PKG-INFO +1 -1
  12. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/.gitattributes +0 -0
  13. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/.readthedocs.yml +0 -0
  14. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/LICENSE +0 -0
  15. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/MANIFEST.in +0 -0
  16. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/README.md +0 -0
  17. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/pyproject.toml +0 -0
  18. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/requirements.txt +0 -0
  19. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/setup.cfg +0 -0
  20. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/setup.py +0 -0
  21. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/Config/config.sqlite +0 -0
  22. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/Config/nep.json +0 -0
  23. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/Config/nep89.txt +0 -0
  24. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/Config/ptable.json +0 -0
  25. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/__init__.py +0 -0
  26. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/__init__.py +0 -0
  27. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/calculator.py +0 -0
  28. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/canvas/base/canvas.py +0 -0
  29. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/config.py +0 -0
  30. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/__init__.py +0 -0
  31. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/card_widget.py +0 -0
  32. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/completer.py +0 -0
  33. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/dialog.py +0 -0
  34. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/docker.py +0 -0
  35. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/input.py +0 -0
  36. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/label.py +0 -0
  37. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/layout.py +0 -0
  38. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/search_widget.py +0 -0
  39. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/custom_widget/settingscard.py +0 -0
  40. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/io/__init__.py +0 -0
  41. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/io/base.py +0 -0
  42. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/io/select.py +0 -0
  43. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/io/utils.py +0 -0
  44. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/message.py +0 -0
  45. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/pages/__init__.py +0 -0
  46. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/pages/settings.py +0 -0
  47. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/types.py +0 -0
  48. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/update.py +0 -0
  49. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/views/__init__.py +0 -0
  50. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/views/structure.py +0 -0
  51. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/core/views/toolbar.py +0 -0
  52. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/main.py +0 -0
  53. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/src_rc.py +0 -0
  54. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/utils.py +0 -0
  55. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit/version.py +0 -0
  56. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/SOURCES.txt +0 -0
  57. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/dependency_links.txt +0 -0
  58. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/entry_points.txt +0 -0
  59. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/not-zip-safe +0 -0
  60. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/requires.txt +0 -0
  61. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/NepTrainKit.egg-info/top_level.txt +0 -0
  62. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/nep_cpu/dftd3para.h +0 -0
  63. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/nep_cpu/nep.cpp +0 -0
  64. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/nep_cpu/nep.h +0 -0
  65. {neptrainkit-2.0.6.dev27 → neptrainkit-2.0.6.dev33}/src/nep_cpu/nep_cpu.cpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NepTrainKit
3
- Version: 2.0.6.dev27
3
+ Version: 2.0.6.dev33
4
4
  Summary: NepTrainKit is a Python package for visualizing and manipulating training datasets for NEP.
5
5
  Author: Chen Cheng bing
6
6
  Author-email: Chen Cheng bing <1747193328@qq.com>
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.0.6.dev27'
21
- __version_tuple__ = version_tuple = (2, 0, 6, 'dev27')
20
+ __version__ = version = '2.0.6.dev33'
21
+ __version_tuple__ = version_tuple = (2, 0, 6, 'dev33')
@@ -282,8 +282,12 @@ class PyqtgraphCanvas(CanvasLayoutBase,GraphicsLayoutWidget, metaclass=CombinedM
282
282
  y_range[0]=y_min
283
283
  if y_max > y_range[1]:
284
284
  y_range[1]=y_max
285
+ if plot.title!="descriptor":
285
286
 
286
- view.setRange(xRange=x_range,yRange=y_range)
287
+ real_range=(min(x_range[0],y_range[0]),max(x_range[1],y_range[1]))
288
+ view.setRange(xRange=real_range,yRange=real_range)
289
+ else:
290
+ view.setRange(xRange=x_range,yRange=y_range)
287
291
 
288
292
  def pan(self, checked):
289
293
 
@@ -16,12 +16,10 @@ from vispy import scene
16
16
  from vispy.app.backends import _pyside6
17
17
  from vispy.color import ColorArray
18
18
  from vispy.visuals.filters import MarkerPickingFilter
19
-
20
19
  from NepTrainKit import utils
21
20
  from NepTrainKit.core.canvas.base.canvas import VispyCanvasLayoutBase
22
21
  from NepTrainKit.core.io import NepTrainResultData
23
22
  from NepTrainKit.core.types import Brushes, Pens
24
-
25
23
  _pyside6
26
24
  vispy.use("PySide6", "gl2")
27
25
 
@@ -84,6 +82,7 @@ class ViewBoxWidget(scene.Widget):
84
82
  self.freeze()
85
83
 
86
84
 
85
+
87
86
  def convert_color(self, obj):
88
87
  if isinstance(obj, (QPen, QBrush)):
89
88
 
@@ -115,8 +114,8 @@ class ViewBoxWidget(scene.Widget):
115
114
  x = x[x > -10000]
116
115
  y = y[y > -10000]
117
116
  if x.size == 0:
118
- x_range =None
119
- y_range = None
117
+ x_range =[0,1]
118
+ y_range =[0,1]
120
119
 
121
120
  else:
122
121
 
@@ -134,9 +133,16 @@ class ViewBoxWidget(scene.Widget):
134
133
  y_range[1] = y_max
135
134
  # self._view.camera.set_range( )
136
135
  #
136
+ if "descriptor"!=self.title:
137
+
138
+ real_range=(min(x_range[0],y_range[0]),max(x_range[1],y_range[1]))
139
+
140
+ self._view.camera.set_range( real_range, real_range)
141
+ else:
142
+ self._view.camera.set_range( x_range, y_range)
137
143
 
138
- self._view.camera.set_range( x_range, y_range)
139
144
  def set_current_point(self, x,y):
145
+
140
146
  if np.array(x).size == 0:
141
147
  if self.current_point is not None:
142
148
  self.current_point.parent=None
@@ -174,6 +180,9 @@ class ViewBoxWidget(scene.Widget):
174
180
  if x.size != 0:
175
181
  self._scatter.set_data(np.vstack([x, y]).T, **kwargs)
176
182
  self.auto_range()
183
+ else:
184
+ self._scatter.set_data(np.empty((0, 3)), **kwargs)
185
+ self.auto_range()
177
186
  self.update_diagonal()
178
187
  return self._scatter
179
188
 
@@ -437,11 +446,10 @@ class VispyCanvas(VispyCanvasLayoutBase, scene.SceneCanvas, metaclass=CombinedMe
437
446
  self.nep_result_data.select_index.clear()
438
447
 
439
448
  for index,_dataset in enumerate(self.nep_result_data.dataset):
449
+
440
450
  plot=self.axes_list[index]
441
- # if _dataset.x.size==0:
442
- #
443
451
 
444
- # continue
452
+
445
453
  plot.title= _dataset.title
446
454
 
447
455
  plot.scatter(_dataset.x,_dataset.y,data=_dataset.structure_index,
@@ -450,6 +458,7 @@ class VispyCanvas(VispyCanvasLayoutBase, scene.SceneCanvas, metaclass=CombinedMe
450
458
 
451
459
  )
452
460
 
461
+ # continue
453
462
  if _dataset.group_array.num !=0:
454
463
  #更新结构
455
464
  if self.structure_index not in _dataset.group_array.now_data:
@@ -466,7 +475,6 @@ class VispyCanvas(VispyCanvasLayoutBase, scene.SceneCanvas, metaclass=CombinedMe
466
475
  plot.text.text=text
467
476
  plot.text.pos=pos
468
477
  def convert_pos(self,plot,pos):
469
-
470
478
  x_range = plot.xaxis.axis.domain # x轴范围 [xmin, xmax]
471
479
  y_range = plot.yaxis.axis.domain # y轴范围 [ymin, ymax]
472
480
 
@@ -4,6 +4,9 @@
4
4
  # @Author : 兵
5
5
  # @email : 1747193328@qq.com
6
6
  import time
7
+
8
+ from ase.stress import full_3x3_to_voigt_6_stress
9
+
7
10
  start=time.time()
8
11
  import os
9
12
  import traceback
@@ -17,6 +20,7 @@ from NepTrainKit.core import MessageManager, Structure, Config
17
20
  from NepTrainKit.core.calculator import NEPProcess
18
21
 
19
22
 
23
+
20
24
  from NepTrainKit.core.io.base import NepPlotData, StructureData
21
25
 
22
26
 
@@ -346,7 +350,7 @@ class NepTrainResultData(ResultData):
346
350
  """判断是否需要重新计算 NEP 数据。"""
347
351
 
348
352
 
349
- output_files_exist = all([
353
+ output_files_exist = any([
350
354
  self.energy_out_path.exists(),
351
355
  self.force_out_path.exists(),
352
356
  self.stress_out_path.exists(),
@@ -424,7 +428,8 @@ class NepTrainResultData(ResultData):
424
428
  logger.debug(traceback.format_exc())
425
429
  virials_array = np.column_stack([virials, virials])
426
430
 
427
- stress_array = virials_array * coefficient * 160.21766208 # 单位转换
431
+ stress_array = virials_array * coefficient * 160.21766208 # 单位转换\
432
+
428
433
  stress_array = stress_array.astype(np.float32)
429
434
  if virials_array.size != 0:
430
435
  np.savetxt(self.virial_out_path, virials_array, fmt='%10.8f')
@@ -12,12 +12,9 @@ from PySide6.QtWidgets import QWidget, QGridLayout, QApplication
12
12
  from NepTrainKit.core import MessageManager
13
13
  from NepTrainKit.core.custom_widget import MakeWorkflowArea, CardGroup
14
14
 
15
- from NepTrainKit.core.views.cards import (MakeDataCard,CardGroup,CellScalingCard,ConsoleWidget,
16
- SuperCellCard,PerturbCard,FilterDataCard,
17
- MakeDataCardWidget,FPSFilterDataCard,VacancyDefectCard,
18
- card_info_dict
15
+ from NepTrainKit.core.views.cards import ConsoleWidget,card_info_dict
16
+
19
17
 
20
- )
21
18
  from NepTrainKit.version import __version__
22
19
  from NepTrainKit import utils, module_path
23
20
  from ase.io import read as ase_read
@@ -303,7 +303,7 @@ class ShowNepWidget(QWidget):
303
303
  return
304
304
 
305
305
  self.struct_index_spinbox.setMaximum(self.nep_result_data.num)
306
- self.graph_widget.clear()
306
+ # self.graph_widget.clear()
307
307
 
308
308
  self.graph_widget.set_dataset(self.nep_result_data)
309
309
  self.nep_result_data.updateInfoSignal.connect(self.update_dataset_info)
@@ -6,11 +6,10 @@
6
6
  import json
7
7
  import os
8
8
  import re
9
- from itertools import product
9
+
10
10
  from copy import deepcopy
11
11
  import numpy as np
12
- from PySide6.QtCore import QThread
13
- from numpy.linalg import solve, norm
12
+
14
13
 
15
14
  from NepTrainKit import utils, module_path
16
15
 
@@ -132,15 +131,21 @@ class Structure():
132
131
  def per_atom_energy(self):
133
132
 
134
133
 
135
- return self.additional_fields[ "energy"]/self.num_atoms
134
+ return self.additional_fields["energy"]/self.num_atoms
136
135
  @property
137
136
  def forces(self):
138
137
  return self.structure_info[self.force_label]
139
138
 
140
139
  @property
141
140
  def nep_virial(self):
142
-
143
- vir=np.array(self.virial.split(" "),dtype=np.float32)
141
+ try:
142
+ vir=np.array(self.virial.split(" "),dtype=np.float32)
143
+ except:
144
+ #检查下有没有压强
145
+ try:
146
+ vir= np.array(self.stress.split(" "),dtype=np.float32)*self.volume*-1
147
+ except:
148
+ raise ValueError("No virial or stress data")
144
149
 
145
150
  return vir[[0,4,8,1,5,6]]/self.num_atoms
146
151
  @property
@@ -394,7 +399,7 @@ class Structure():
394
399
  # 这里是为了后面的Config搜索做统一
395
400
  key = "Config_type"
396
401
  value=str(value)
397
- if key.lower() in ("energy", "pbc","virial"):
402
+ if key.lower() in ("energy", "pbc","virial","stress"):
398
403
  key=key.lower()
399
404
  additional_fields[key] = value
400
405
  # print(additional_fields)
@@ -55,9 +55,9 @@ def is_organic_cluster(symbols):
55
55
  if not has_carbon:
56
56
  return False
57
57
  # 可选:强制要求含氢(H)或其他有机元素
58
- # organic_elements = {'H', 'O', 'N', 'S', 'P'}
59
- # has_organic_elements = any(symbol in organic_elements for symbol in symbols)
60
- # return has_carbon and has_organic_elements
58
+ organic_elements = {'H', 'O', 'N', 'S', 'P'}
59
+ has_organic_elements = any(symbol in organic_elements for symbol in symbols)
60
+ return has_carbon and has_organic_elements
61
61
  return True
62
62
 
63
63
 
@@ -53,7 +53,7 @@ class NepResultPlotWidget(QWidget):
53
53
 
54
54
  def clear(self):
55
55
  self.canvas.clear_axes()
56
- self.last_figure_num=None
56
+ # self.last_figure_num=None
57
57
 
58
58
 
59
59
 
@@ -179,8 +179,10 @@ class NepResultPlotWidget(QWidget):
179
179
  def set_dataset(self,dataset):
180
180
 
181
181
  if self.last_figure_num !=len(dataset.dataset):
182
+
182
183
  self.canvas.init_axes(len(dataset.dataset))
183
184
  self.last_figure_num = len(dataset.dataset)
185
+
184
186
  self.canvas.set_nep_result_data(dataset)
185
187
  self.canvas.plot_nep_result()
186
188
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: NepTrainKit
3
- Version: 2.0.6.dev27
3
+ Version: 2.0.6.dev33
4
4
  Summary: NepTrainKit is a Python package for visualizing and manipulating training datasets for NEP.
5
5
  Author: Chen Cheng bing
6
6
  Author-email: Chen Cheng bing <1747193328@qq.com>