pyfemtet 0.8.16__py3-none-any.whl → 0.8.18__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.

Potentially problematic release.


This version of pyfemtet might be problematic. Click here for more details.

pyfemtet/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.8.16"
1
+ __version__ = "0.8.18"
@@ -832,10 +832,34 @@ class History:
832
832
  for obj_column, (_, objective) in zip(self.obj_names, objectives.items()):
833
833
  solution_set.loc[:, obj_column] = solution_set[obj_column].map(objective.convert)
834
834
 
835
- # 非劣解の計算
836
- non_domi: list[bool] = []
837
- for i, row in solution_set.iterrows():
838
- non_domi.append((row > solution_set).product(axis=1).sum(axis=0) == 0)
835
+ # 非劣解(改)の計算
836
+ # 「全ての項目において
837
+ # 重複する解を除いて
838
+ # より優れているか又は同等である
839
+ # 他の解が存在しない解」であるかどうかを判定
840
+ non_domi = []
841
+ row: np.ndarray
842
+ another: np.ndarray
843
+ for i, row in enumerate(solution_set.values):
844
+ for j, another in enumerate(solution_set.values):
845
+ if i == j:
846
+ # 他と比べたいので
847
+ continue
848
+ elif np.allclose(row, another):
849
+ # 重複してたら他の解との比較に
850
+ # 判定を委ねたいので
851
+ continue
852
+ elif all(another <= row):
853
+ # 全項目について
854
+ # another のほうが
855
+ # 優れているか又は同等である
856
+ non_domi.append(False)
857
+ break
858
+ else:
859
+ # 全項目について優れているか又は
860
+ # 同等であるような他の解が
861
+ # 存在しなかった
862
+ non_domi.append(True)
839
863
 
840
864
  # feasible も infeasible も一旦劣解にする
841
865
  df['non_domi'] = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyfemtet
3
- Version: 0.8.16
3
+ Version: 0.8.18
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License: MIT
6
6
  Author: kazuma.naito
@@ -1,4 +1,4 @@
1
- pyfemtet/__init__.py,sha256=TM0DdF3rBA8bLW3hbmjqZXMA2jeuMkSRxrvmzDr148I,22
1
+ pyfemtet/__init__.py,sha256=JhVwJTiRKMlMbkGesmi3xha7ApeH6eYngBm1czvd8Tc,22
2
2
  pyfemtet/_femtet_config_util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  pyfemtet/_femtet_config_util/autosave.py,sha256=dNirA9XGuFehas8_Jkj2BW9GOzMbPyhnt1WHcH_ObSU,2070
4
4
  pyfemtet/_femtet_config_util/exit.py,sha256=0BWID-tjOkmZwmgPFkcJMkWW39voccz5ARIBWvZbHaw,1877
@@ -25,13 +25,13 @@ pyfemtet/logger/__init__.py,sha256=UOJ9n_U2xwdTrp0Xgg-N6geySxNzKqTBQlXsaH0kW_w,4
25
25
  pyfemtet/logger/_impl.py,sha256=rsAd0HpmveOaLS39ucp3U2OcDhQMWjC5fnVGhbJtWVw,6375
26
26
  pyfemtet/opt/__init__.py,sha256=wRR8LbEhb5I6MUgmnCgjB6-tqHlOVxDIo7yPkq0QbBs,758
27
27
  pyfemtet/opt/_femopt.py,sha256=MSqSJzyD2sRYBNQAe0P5rpSvvVihOV2ugUa-hZyYnBA,40671
28
- pyfemtet/opt/_femopt_core.py,sha256=tye8GnMtX1j3eqnHWprcB7khXszaQ6C_lkY-Iyc-mhU,39372
28
+ pyfemtet/opt/_femopt_core.py,sha256=zweGfu4DBr_aG0IPZHG09oQWcHLWU4EqcbQIHKAfs-4,40386
29
29
  pyfemtet/opt/_test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  pyfemtet/opt/_test_utils/control_femtet.py,sha256=8oAl9y5V2n8Nnsgx_ebcZVzwFt1eI3swkdiKg6pg3-M,1085
31
31
  pyfemtet/opt/_test_utils/hyper_sphere.py,sha256=nQhw8EIY0DwvcTqrbKhkxiITLZifr4-nG77E-_6ggmA,700
32
32
  pyfemtet/opt/_test_utils/record_history.py,sha256=7V2LCZ8F985c_NNUVu-K7_2-p2mwG1lRMZhkYhSy_Dw,4356
33
- pyfemtet/opt/advanced_samples/excel_ui/(ref) original_project.femprj,sha256=5OqZfynTpVCrgEIOBOMYuDGaMvepi5lojVNFr1jAsEI,157489
34
- pyfemtet/opt/advanced_samples/excel_ui/femtet-macro.xlsm,sha256=7G9hr1Oj1zwTFv6mh2fWk4FZ0R5ZNDQmvjNvujy6gbw,124145
33
+ pyfemtet/opt/advanced_samples/excel_ui/(ref) original_project.femprj,sha256=pxD5DWBpYyhly0QcbkKuhHuttOkxWfA4PTWp71teUVw,174390
34
+ pyfemtet/opt/advanced_samples/excel_ui/femtet-macro.xlsm,sha256=QGbhJQScHZKe1XwdDcdsvdY6mmibT1WDb80vyqns9fQ,131502
35
35
  pyfemtet/opt/advanced_samples/excel_ui/pyfemtet-core.py,sha256=aF2TWXdbt7dnkeBqqVO6GvIExozjFp0mxx3BX8rpYNc,9879
36
36
  pyfemtet/opt/advanced_samples/excel_ui/test-pyfemtet-core.cmd,sha256=r-Pa1Ng9sa6wfDqIhTf2BUDrN9rePWFymz7pmtBbvcQ,895
37
37
  pyfemtet/opt/advanced_samples/restart/gal_ex13_parametric.femprj,sha256=iIHH1X-wWBqEYj4cFJXco73LCJXSrYBsSKOD0HxYu60,87599
@@ -150,9 +150,9 @@ pyfemtet/opt/visualization/result_viewer/.gitignore,sha256=ryvb4aqbbsHireHWlPQfx
150
150
  pyfemtet/opt/visualization/result_viewer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
151
  pyfemtet/opt/visualization/result_viewer/application.py,sha256=WcHBx_J5eNLKSaprpk9BGifwhO04oN8FiNGYTWorrXA,1691
152
152
  pyfemtet/opt/visualization/result_viewer/pages.py,sha256=MZAjzbuq0toZrR-iJhElM3A12_jHVCTt65gz1kdNPbw,32193
153
- pyfemtet-0.8.16.dist-info/LICENSE,sha256=LWUL5LlMGjSRTvsalS8_fFuwS4VMw18fJSNWFwDK8pc,1060
154
- pyfemtet-0.8.16.dist-info/LICENSE_THIRD_PARTY.txt,sha256=8_9-cgzTpmeuCqItPZb9-lyAZcH2Qp9sZTU_hYuOZIQ,191
155
- pyfemtet-0.8.16.dist-info/METADATA,sha256=mm58t1vbQEXu_BzNOBXoRWLRxb9w7uu8x-ULjzSo8V8,3560
156
- pyfemtet-0.8.16.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
157
- pyfemtet-0.8.16.dist-info/entry_points.txt,sha256=ZfYqRaoiPtuWqFi2_msccyrVF0LurMn-IHlYamAegZo,104
158
- pyfemtet-0.8.16.dist-info/RECORD,,
153
+ pyfemtet-0.8.18.dist-info/LICENSE,sha256=LWUL5LlMGjSRTvsalS8_fFuwS4VMw18fJSNWFwDK8pc,1060
154
+ pyfemtet-0.8.18.dist-info/LICENSE_THIRD_PARTY.txt,sha256=8_9-cgzTpmeuCqItPZb9-lyAZcH2Qp9sZTU_hYuOZIQ,191
155
+ pyfemtet-0.8.18.dist-info/METADATA,sha256=aWDQ7WzqwRW4hFzxuVsyRr1_G9sVMTsXjkMxYLdeNG4,3560
156
+ pyfemtet-0.8.18.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
157
+ pyfemtet-0.8.18.dist-info/entry_points.txt,sha256=ZfYqRaoiPtuWqFi2_msccyrVF0LurMn-IHlYamAegZo,104
158
+ pyfemtet-0.8.18.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.1
2
+ Generator: poetry-core 2.1.2
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any