pyfemtet 0.4.4__tar.gz → 0.4.6__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.
Potentially problematic release.
This version of pyfemtet might be problematic. Click here for more details.
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/PKG-INFO +1 -1
- pyfemtet-0.4.6/pyfemtet/__init__.py +1 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/_femopt.py +2 -2
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet.py +7 -4
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet_parametric.py +18 -2
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyproject.toml +1 -1
- pyfemtet-0.4.4/pyfemtet/__init__.py +0 -1
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/LICENSE +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/README.md +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/NX_ex01/NX_ex01.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/NX_ex01/NX_ex01.prt +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/NX_ex01/NX_ex01.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/Sldworks_ex01/Sldworks_ex01.SLDPRT +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/Sldworks_ex01/Sldworks_ex01.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/Sldworks_ex01/Sldworks_ex01.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/_her_ex40_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/gau_ex08_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/gau_ex08_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/her_ex40_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/her_ex40_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/wat_ex14_parallel_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/wat_ex14_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/wat_ex14_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/core.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/dispatch_extensions.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/logger.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/__init__.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/_femopt_core.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_NX.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_NX.prt +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_NX.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_SW.SLDPRT +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_SW.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/cad_ex01_SW.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/gal_ex58_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/gal_ex58_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/gau_ex08_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/gau_ex08_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/her_ex40_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/her_ex40_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/paswat_ex1_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/paswat_ex1_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/paswat_ex1_parametric_parallel.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/wat_ex14_parametric.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/wat_ex14_parametric.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/cad_ex01_SW_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/cad_ex01_SW_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gau_ex08_parametric_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gau_ex08_parametric_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/her_ex40_parametric_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/her_ex40_parametric_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_parallel_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/wat_ex14_parametric_jp.femprj +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/wat_ex14_parametric_jp.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/__init__.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_base.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet_with_nx/__init__.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet_with_nx/_interface.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet_with_nx/update_model.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/interface/_femtet_with_sldworks.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/opt/__init__.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/opt/_base.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/opt/_optuna.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/visualization/__init__.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/visualization/_graphs.py +0 -0
- {pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/visualization/_monitor.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.6"
|
|
@@ -381,9 +381,9 @@ class FEMOpt:
|
|
|
381
381
|
)
|
|
382
382
|
)
|
|
383
383
|
# Femtet の parametric 設定を目的関数に用いるかどうか
|
|
384
|
-
if self.fem.
|
|
384
|
+
if self.fem.parametric_output_indexes_use_as_objective is not None:
|
|
385
385
|
from pyfemtet.opt.interface._femtet_parametric import add_parametric_results_as_objectives
|
|
386
|
-
add_parametric_results_as_objectives(self)
|
|
386
|
+
add_parametric_results_as_objectives(self, self.fem.parametric_output_indexes_use_as_objective)
|
|
387
387
|
|
|
388
388
|
# actor の設定
|
|
389
389
|
self.status = OptimizationStatus(self.client)
|
|
@@ -39,6 +39,9 @@ class FemtetInterface(FEMInterface):
|
|
|
39
39
|
model_name (str or None, optional): The name of the analysis model. Defaults to None.
|
|
40
40
|
connect_method (str, optional): The connection method to use. Can be 'new', 'existing', or 'auto'. Defaults to 'auto'.
|
|
41
41
|
strictly_pid_specify (bool, optional): If True and connect_method=='new', search launched Femtet process strictly based on its process id.
|
|
42
|
+
allow_without_project (bool, optional): Allow to launch Femtet with no project file. Default to False.
|
|
43
|
+
open_result_with_gui (bool, optional): Open analysis result with Femtet GUI. Default to True.
|
|
44
|
+
parametric_output_indexes_use_as_objective (list of int, optional): Parametric output indexes which will be used as objective functions. Parametric output should be set on Femtet parametric analysis dialog. Note that output 'No.' in dialog is starts with 1, but this 'index' is starts with 0. Default to None.
|
|
42
45
|
|
|
43
46
|
Warning:
|
|
44
47
|
Even if you specify ``strictly_pid_specify=True`` on the constructor,
|
|
@@ -60,7 +63,7 @@ class FemtetInterface(FEMInterface):
|
|
|
60
63
|
strictly_pid_specify=True,
|
|
61
64
|
allow_without_project=False,
|
|
62
65
|
open_result_with_gui=True,
|
|
63
|
-
|
|
66
|
+
parametric_output_indexes_use_as_objective=None,
|
|
64
67
|
**kwargs # 継承されたクラスからの引数
|
|
65
68
|
):
|
|
66
69
|
|
|
@@ -86,7 +89,7 @@ class FemtetInterface(FEMInterface):
|
|
|
86
89
|
self.parameters = None
|
|
87
90
|
self.max_api_retry = 3
|
|
88
91
|
self.strictly_pid_specify = strictly_pid_specify
|
|
89
|
-
self.
|
|
92
|
+
self.parametric_output_indexes_use_as_objective = parametric_output_indexes_use_as_objective
|
|
90
93
|
|
|
91
94
|
# dask サブプロセスのときは femprj を更新し connect_method を new にする
|
|
92
95
|
try:
|
|
@@ -113,7 +116,7 @@ class FemtetInterface(FEMInterface):
|
|
|
113
116
|
femprj_path=self.femprj_path,
|
|
114
117
|
model_name=self.model_name,
|
|
115
118
|
open_result_with_gui=self.open_result_with_gui,
|
|
116
|
-
|
|
119
|
+
parametric_output_indexes_use_as_objective=self.parametric_output_indexes_use_as_objective,
|
|
117
120
|
**kwargs
|
|
118
121
|
)
|
|
119
122
|
|
|
@@ -549,7 +552,7 @@ class FemtetInterface(FEMInterface):
|
|
|
549
552
|
is_Gaudi_method=True,
|
|
550
553
|
)
|
|
551
554
|
|
|
552
|
-
if self.
|
|
555
|
+
if self.parametric_output_indexes_use_as_objective is not None:
|
|
553
556
|
from pyfemtet.opt.interface._femtet_parametric import solve_via_parametric_dll
|
|
554
557
|
self._call_femtet_api(
|
|
555
558
|
fun=solve_via_parametric_dll,
|
|
@@ -39,14 +39,30 @@ def _get_dll_with_set_femtet(Femtet):
|
|
|
39
39
|
return dll
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
def
|
|
42
|
+
def _get_prm_result_names(Femtet):
|
|
43
|
+
out = []
|
|
44
|
+
|
|
45
|
+
# load dll and set target femtet
|
|
46
|
+
dll = _get_dll_with_set_femtet(Femtet)
|
|
47
|
+
n = dll.GetPrmnResult()
|
|
48
|
+
for i in range(n):
|
|
49
|
+
# objective name
|
|
50
|
+
dll.GetPrmResultName.restype = ctypes.c_char_p
|
|
51
|
+
result = dll.GetPrmResultName(i)
|
|
52
|
+
name = result.decode('mbcs')
|
|
53
|
+
# objective value function
|
|
54
|
+
out.append(name)
|
|
55
|
+
return out
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def add_parametric_results_as_objectives(femopt, indexes) -> bool:
|
|
43
59
|
# load dll and set target femtet
|
|
44
60
|
dll = _get_dll_with_set_femtet(femopt.fem.Femtet)
|
|
45
61
|
|
|
46
62
|
# get objective names
|
|
47
63
|
dll.GetPrmnResult.restype = ctypes.c_int
|
|
48
64
|
n = dll.GetPrmnResult()
|
|
49
|
-
for i in
|
|
65
|
+
for i in indexes:
|
|
50
66
|
# objective name
|
|
51
67
|
dll.GetPrmResultName.restype = ctypes.c_char_p
|
|
52
68
|
result = dll.GetPrmResultName(i)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "pyfemtet"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.6" # ignored by versioning plugin
|
|
4
4
|
description = "Design parameter optimization using Femtet."
|
|
5
5
|
authors = ["kazuma.naito <kazuma.naito@murata.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.4.4"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/Sldworks_ex01/Sldworks_ex01.SLDPRT
RENAMED
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/FemtetPJTSample/Sldworks_ex01/Sldworks_ex01.femprj
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample/paswat_ex1_parametric_parallel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.femprj
RENAMED
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/gau_ex08_parametric_jp.femprj
RENAMED
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/her_ex40_parametric_jp.femprj
RENAMED
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_jp.femprj
RENAMED
|
File without changes
|
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_parallel_jp.py
RENAMED
|
File without changes
|
{pyfemtet-0.4.4 → pyfemtet-0.4.6}/pyfemtet/opt/femprj_sample_jp/wat_ex14_parametric_jp.femprj
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|