pyfemtet 0.4.6__py3-none-any.whl → 0.4.8__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 +1 -1
- pyfemtet/_test_util.py +115 -0
- pyfemtet/opt/_femopt.py +7 -1
- pyfemtet/opt/_femopt_core.py +20 -3
- pyfemtet/opt/femprj_sample/cad_ex01_NX.py +4 -0
- pyfemtet/opt/femprj_sample/cad_ex01_NX_test_result.reccsv +13 -0
- pyfemtet/opt/femprj_sample/cad_ex01_SW_test_result.reccsv +13 -0
- pyfemtet/opt/femprj_sample/gal_ex58_parametric.femprj +0 -0
- pyfemtet/opt/femprj_sample/gal_ex58_parametric_test_result.reccsv +13 -0
- pyfemtet/opt/femprj_sample/gau_ex08_parametric_test_result.reccsv +23 -0
- pyfemtet/opt/femprj_sample/her_ex40_parametric_test_result.reccsv +18 -0
- pyfemtet/opt/femprj_sample/paswat_ex1_parametric_test_result.reccsv +18 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric_test_result.reccsv +18 -0
- pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.py +4 -0
- pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.femprj +0 -0
- pyfemtet/opt/interface/_base.py +6 -0
- pyfemtet/opt/interface/_femtet.py +203 -27
- pyfemtet/opt/interface/_femtet_parametric.py +3 -3
- pyfemtet/opt/interface/_femtet_with_nx/_interface.py +35 -2
- pyfemtet/opt/interface/_femtet_with_nx/update_model.py +36 -28
- pyfemtet/opt/opt/_base.py +2 -0
- pyfemtet/opt/visualization/_graphs.py +16 -13
- pyfemtet/opt/visualization/_monitor.py +88 -10
- {pyfemtet-0.4.6.dist-info → pyfemtet-0.4.8.dist-info}/METADATA +2 -1
- {pyfemtet-0.4.6.dist-info → pyfemtet-0.4.8.dist-info}/RECORD +28 -20
- {pyfemtet-0.4.6.dist-info → pyfemtet-0.4.8.dist-info}/LICENSE +0 -0
- {pyfemtet-0.4.6.dist-info → pyfemtet-0.4.8.dist-info}/WHEEL +0 -0
- {pyfemtet-0.4.6.dist-info → pyfemtet-0.4.8.dist-info}/entry_points.txt +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import base64
|
|
2
3
|
from typing import Optional, List
|
|
3
4
|
|
|
4
5
|
import json
|
|
@@ -6,10 +7,11 @@ import webbrowser
|
|
|
6
7
|
from time import sleep
|
|
7
8
|
from threading import Thread
|
|
8
9
|
|
|
10
|
+
import numpy as np
|
|
9
11
|
import pandas as pd
|
|
10
12
|
import psutil
|
|
11
13
|
from plotly.graph_objects import Figure
|
|
12
|
-
from dash import Dash, html, dcc, Output, Input, State, callback_context, no_update
|
|
14
|
+
from dash import Dash, html, dcc, Output, Input, State, callback_context, no_update, dash_table
|
|
13
15
|
from dash.exceptions import PreventUpdate
|
|
14
16
|
import dash_bootstrap_components as dbc
|
|
15
17
|
|
|
@@ -18,7 +20,6 @@ from pyfemtet.opt.interface import FemtetInterface
|
|
|
18
20
|
from pyfemtet.opt.visualization._graphs import (
|
|
19
21
|
update_default_figure,
|
|
20
22
|
update_hypervolume_plot,
|
|
21
|
-
_CUSTOM_DATA_DICT
|
|
22
23
|
)
|
|
23
24
|
|
|
24
25
|
|
|
@@ -28,6 +29,8 @@ logger = get_logger('viz')
|
|
|
28
29
|
logger.setLevel(logging.INFO)
|
|
29
30
|
|
|
30
31
|
|
|
32
|
+
here = os.path.dirname(__file__)
|
|
33
|
+
|
|
31
34
|
DBC_COLUMN_STYLE_CENTER = {
|
|
32
35
|
'display': 'flex',
|
|
33
36
|
'justify-content': 'center',
|
|
@@ -458,7 +461,7 @@ class FemtetControl:
|
|
|
458
461
|
points_dicts = selection_data['points']
|
|
459
462
|
for points_dict in points_dicts:
|
|
460
463
|
logger.debug(points_dict)
|
|
461
|
-
trial = points_dict['customdata'][
|
|
464
|
+
trial = points_dict['customdata'][0]
|
|
462
465
|
logger.debug(trial)
|
|
463
466
|
index = trial - 1
|
|
464
467
|
names = [name for name in home.monitor.local_df.columns if name.startswith('prm_')]
|
|
@@ -556,6 +559,7 @@ class HomePageBase:
|
|
|
556
559
|
ID_GRAPH_TABS = 'home-graph-tabs'
|
|
557
560
|
ID_GRAPH_CARD_BODY = 'home-graph-card-body'
|
|
558
561
|
ID_GRAPH = 'home-graph'
|
|
562
|
+
ID_GRAPH_TOOLTIP = 'home-graph-hover-tooltip'
|
|
559
563
|
ID_SELECTION_DATA = 'home-selection-data'
|
|
560
564
|
|
|
561
565
|
# selection data attribute
|
|
@@ -577,7 +581,6 @@ class HomePageBase:
|
|
|
577
581
|
self.monitor = monitor
|
|
578
582
|
self.app: Dash = monitor.app
|
|
579
583
|
self.history = monitor.history
|
|
580
|
-
self.df = monitor.local_df
|
|
581
584
|
self.setup_graph_card()
|
|
582
585
|
self.setup_contents()
|
|
583
586
|
self.setup_layout()
|
|
@@ -616,7 +619,12 @@ class HomePageBase:
|
|
|
616
619
|
children=[
|
|
617
620
|
# Loading : child が Output である callback について、
|
|
618
621
|
# それが発火してから return するまでの間 Spinner が出てくる
|
|
619
|
-
|
|
622
|
+
html.Div([
|
|
623
|
+
dcc.Loading(
|
|
624
|
+
dcc.Graph(id=self.ID_GRAPH, clear_on_unhover=True, figure=self.get_fig_by_tab_id(default_tab)),
|
|
625
|
+
),
|
|
626
|
+
dcc.Tooltip(id=self.ID_GRAPH_TOOLTIP),
|
|
627
|
+
]),
|
|
620
628
|
],
|
|
621
629
|
id=self.ID_GRAPH_CARD_BODY,
|
|
622
630
|
),
|
|
@@ -633,7 +641,7 @@ class HomePageBase:
|
|
|
633
641
|
Output(self.ID_GRAPH, 'figure'),
|
|
634
642
|
],
|
|
635
643
|
[
|
|
636
|
-
Input(self.
|
|
644
|
+
Input(self.ID_DUMMY, 'children'),
|
|
637
645
|
],
|
|
638
646
|
[
|
|
639
647
|
State(self.ID_GRAPH_TABS, 'active_tab'),
|
|
@@ -678,6 +686,72 @@ class HomePageBase:
|
|
|
678
686
|
logger.debug(f'on_select: {selected_data}')
|
|
679
687
|
return [selected_data]
|
|
680
688
|
|
|
689
|
+
# ホバーに画像を表示する callback
|
|
690
|
+
@self.monitor.app.callback(
|
|
691
|
+
Output(self.ID_GRAPH_TOOLTIP, "show"),
|
|
692
|
+
Output(self.ID_GRAPH_TOOLTIP, "bbox"),
|
|
693
|
+
Output(self.ID_GRAPH_TOOLTIP, "children"),
|
|
694
|
+
Input(self.ID_GRAPH, "hoverData"),
|
|
695
|
+
)
|
|
696
|
+
def display_hover(hoverData):
|
|
697
|
+
if hoverData is None:
|
|
698
|
+
return False, no_update, no_update
|
|
699
|
+
|
|
700
|
+
pt = hoverData["points"][0]
|
|
701
|
+
bbox = pt["bbox"]
|
|
702
|
+
|
|
703
|
+
# get row of the history
|
|
704
|
+
trial = pt['customdata'][0]
|
|
705
|
+
row = self.monitor.local_df[self.monitor.local_df['trial'] == trial]
|
|
706
|
+
|
|
707
|
+
# === create hovered data ===
|
|
708
|
+
# get encoded image from history.additional_metadata
|
|
709
|
+
img_url = None
|
|
710
|
+
|
|
711
|
+
# Femtet specified processing
|
|
712
|
+
metadata = self.history.metadata
|
|
713
|
+
if metadata[0] != '':
|
|
714
|
+
# get img path
|
|
715
|
+
d = json.loads(metadata[0])
|
|
716
|
+
femprj_path = d['femprj_path']
|
|
717
|
+
model_name = d['model_name']
|
|
718
|
+
femprj_result_dir = femprj_path.replace('.femprj', '.Results')
|
|
719
|
+
img_path = os.path.join(femprj_result_dir, f'{model_name}_trial{trial}.jpg')
|
|
720
|
+
if os.path.exists(img_path):
|
|
721
|
+
# create encoded image
|
|
722
|
+
with open(img_path, 'rb') as f:
|
|
723
|
+
content = f.read()
|
|
724
|
+
encoded_image = base64.b64encode(content).decode('utf-8')
|
|
725
|
+
img_url = 'data:image/jpeg;base64, ' + encoded_image
|
|
726
|
+
html_img = html.Img(src=img_url, style={"width": "200px"}) if img_url is not None else html.Div()
|
|
727
|
+
|
|
728
|
+
# parameters
|
|
729
|
+
pd.options.display.float_format = '{:.4e}'.format
|
|
730
|
+
parameters = row.iloc[:, np.where(np.array(metadata) == 'prm')[0]]
|
|
731
|
+
names = parameters.columns
|
|
732
|
+
values = [f'{value:.3e}' for value in parameters.values.ravel()]
|
|
733
|
+
data = pd.DataFrame(dict(
|
|
734
|
+
name=names, value=values
|
|
735
|
+
))
|
|
736
|
+
|
|
737
|
+
# descript result
|
|
738
|
+
desc = html.Div([
|
|
739
|
+
html.H3(f"trial{trial}", style={"color": "darkblue"}),
|
|
740
|
+
dash_table.DataTable(
|
|
741
|
+
columns=[{'name': col, 'id': col} for col in data.columns],
|
|
742
|
+
data=data.to_dict('records')
|
|
743
|
+
),
|
|
744
|
+
])
|
|
745
|
+
|
|
746
|
+
# make output
|
|
747
|
+
children = html.Div([
|
|
748
|
+
html.Div(html_img, style={'display': 'inline-block', 'margin-right': '10px', 'vertical-align': 'top'}),
|
|
749
|
+
html.Div(desc, style={'display': 'inline-block', 'margin-right': '10px'})
|
|
750
|
+
])
|
|
751
|
+
|
|
752
|
+
return True, bbox, children
|
|
753
|
+
|
|
754
|
+
|
|
681
755
|
def get_fig_by_tab_id(self, tab_id):
|
|
682
756
|
if tab_id in self.graphs.keys():
|
|
683
757
|
fig_func = self.graphs[tab_id]['fig_func']
|
|
@@ -712,8 +786,8 @@ class ResultViewerAppHomePage(HomePageBase):
|
|
|
712
786
|
'---\n'
|
|
713
787
|
'- 最適化の結果分析画面です。\n'
|
|
714
788
|
'- 凡例をクリックすると、対応する要素の表示/非表示を切り替えます。\n'
|
|
715
|
-
'-
|
|
716
|
-
'-
|
|
789
|
+
'- ブラウザを使用しますが、解析結果のインターネット通信は行いません。\n'
|
|
790
|
+
'- ブラウザを閉じてもプログラムは終了しません。\n'
|
|
717
791
|
' - コマンドプロンプトを閉じるかコマンドプロンプトに `CTRL+C` を入力してプログラムを終了してください。\n'
|
|
718
792
|
)
|
|
719
793
|
self.contents.children = [
|
|
@@ -753,9 +827,10 @@ class ProcessMonitorAppHomePage(HomePageBase):
|
|
|
753
827
|
note = dcc.Markdown(
|
|
754
828
|
'---\n'
|
|
755
829
|
'- 最適化の結果分析画面です。\n'
|
|
756
|
-
'-
|
|
830
|
+
'- ブラウザを使用しますが、解析結果のインターネット通信は行いません。\n'
|
|
757
831
|
'- この画面を閉じても最適化は中断されません。\n'
|
|
758
832
|
f'- この画面を再び開くにはブラウザのアドレスバーに「localhost:{self.monitor.DEFAULT_PORT}」と入力して下さい。\n'
|
|
833
|
+
'- __マウスオーバーで表示されるデータを見る場合は、「自動更新を一時停止する」ボタンを押してください。__\n'
|
|
759
834
|
)
|
|
760
835
|
|
|
761
836
|
self.contents.children = [
|
|
@@ -832,7 +907,10 @@ class ProcessMonitorAppHomePage(HomePageBase):
|
|
|
832
907
|
# 1. interval => figure を更新する
|
|
833
908
|
if (len(self.monitor.local_df) > 0) and (active_tab_id is not None):
|
|
834
909
|
fig = self.get_fig_by_tab_id(active_tab_id)
|
|
835
|
-
ret[card_body] =
|
|
910
|
+
ret[card_body] = [
|
|
911
|
+
dcc.Graph(figure=fig, id=self.ID_GRAPH, clear_on_unhover=True),
|
|
912
|
+
dcc.Tooltip(id=self.ID_GRAPH_TOOLTIP),
|
|
913
|
+
]
|
|
836
914
|
|
|
837
915
|
# 3. btn toggle => (toggle の children を切替) and (interval を切替)
|
|
838
916
|
if toggle_n_clicks % 2 == 1:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyfemtet
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.8
|
|
4
4
|
Summary: Design parameter optimization using Femtet.
|
|
5
5
|
Home-page: https://github.com/pyfemtet/pyfemtet
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -27,6 +27,7 @@ Requires-Dist: optuna-integration (>=3.6.0,<4.0.0)
|
|
|
27
27
|
Requires-Dist: pandas (>=2.1.3,<3.0.0)
|
|
28
28
|
Requires-Dist: plotly (>=5.18.0,<6.0.0)
|
|
29
29
|
Requires-Dist: psutil (>=5.9.6,<6.0.0)
|
|
30
|
+
Requires-Dist: pytest-dashboard (>=0.1.2,<0.2.0)
|
|
30
31
|
Requires-Dist: pywin32 (>=306,<307)
|
|
31
32
|
Requires-Dist: scipy (>=1.11.4,<2.0.0)
|
|
32
33
|
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
|
|
@@ -12,35 +12,43 @@ pyfemtet/FemtetPJTSample/her_ex40_parametric.py,sha256=B5PQoh71Q3KN2CyLU1gP_Yh9g
|
|
|
12
12
|
pyfemtet/FemtetPJTSample/wat_ex14_parallel_parametric.py,sha256=UfhJffuXyhzdIWNpOrpV6xLTK1fuVvgyhlyg4Rp-628,2148
|
|
13
13
|
pyfemtet/FemtetPJTSample/wat_ex14_parametric.femprj,sha256=pxacKe0NPNUPAcxqo2cATFApsMKiVt2g2e_FOk4fpjA,172895
|
|
14
14
|
pyfemtet/FemtetPJTSample/wat_ex14_parametric.py,sha256=LGbWxCek0Ad2YrDCKykiQkE3aIypM4g8P3mLd_2anEE,2052
|
|
15
|
-
pyfemtet/__init__.py,sha256=
|
|
15
|
+
pyfemtet/__init__.py,sha256=hllK95qvjUJQSsYx58i-DzgOBo2oIokt_oxkpukFlL0,21
|
|
16
|
+
pyfemtet/_test_util.py,sha256=cxSPWvYbvAMAEoY_H3XpWlhhdS0MijwZEQgZ7aa4Fy8,3727
|
|
16
17
|
pyfemtet/core.py,sha256=3lqfBGJ5IuKz2Nqj5pRo7YQqKwx_0ZDL72u95Ur_1p0,1386
|
|
17
18
|
pyfemtet/dispatch_extensions.py,sha256=MhWiUXVt2Cq8vDeajMK4SrajjiAmb4m2fK8gXwHLrWA,16177
|
|
18
19
|
pyfemtet/logger.py,sha256=JYD0FvzijMS2NvZN7VT7vZA5hqtHEkvS93AHlIMDePw,2507
|
|
19
20
|
pyfemtet/opt/__init__.py,sha256=_P8unESvqCRD5pmuo6-5yo7BbrPi7c0aE6UZpqUD-_I,596
|
|
20
|
-
pyfemtet/opt/_femopt.py,sha256=
|
|
21
|
-
pyfemtet/opt/_femopt_core.py,sha256=
|
|
21
|
+
pyfemtet/opt/_femopt.py,sha256=o2TLbmWwiOVdDsVHSh6j3k7fWktHJQxpTpeDmDkg5XE,22601
|
|
22
|
+
pyfemtet/opt/_femopt_core.py,sha256=fn14koJby6wP9Hh0lSanN-h5rTBhaKTov9r82VaFaiM,25490
|
|
22
23
|
pyfemtet/opt/femprj_sample/cad_ex01_NX.femprj,sha256=KC8JlHqHzqgyKriK911QSnQByQpRlw-SX5OSQ_GNe5M,149193
|
|
23
24
|
pyfemtet/opt/femprj_sample/cad_ex01_NX.prt,sha256=3okHLeMdslrRA_wkhppZtxIe-2-ZPMfNqWCdQwUV31o,226626
|
|
24
|
-
pyfemtet/opt/femprj_sample/cad_ex01_NX.py,sha256=
|
|
25
|
+
pyfemtet/opt/femprj_sample/cad_ex01_NX.py,sha256=avqLWkSjkLG17pVFa6RTxqWcn6G1CiXe2CIk2uGhiv4,4648
|
|
26
|
+
pyfemtet/opt/femprj_sample/cad_ex01_NX_test_result.reccsv,sha256=hcOiI1Ct5o7k_tN8nB82kpVJpAtGvdLBjLwqEAFz49c,1029
|
|
25
27
|
pyfemtet/opt/femprj_sample/cad_ex01_SW.SLDPRT,sha256=jjBi4aRRwZPK-4-YRKDC4eO_Ch2jwd7M7chvJlnBbZU,97158
|
|
26
28
|
pyfemtet/opt/femprj_sample/cad_ex01_SW.femprj,sha256=knN0bBTHm5CqExLdmxdJvPldJ6ahnQesKt974qRjWh4,126837
|
|
27
29
|
pyfemtet/opt/femprj_sample/cad_ex01_SW.py,sha256=HOpxWC_jxnKmabO4u5JrHNHPR8b7WFm-PauJSoTxRrQ,4586
|
|
28
|
-
pyfemtet/opt/femprj_sample/
|
|
30
|
+
pyfemtet/opt/femprj_sample/cad_ex01_SW_test_result.reccsv,sha256=hcOiI1Ct5o7k_tN8nB82kpVJpAtGvdLBjLwqEAFz49c,1029
|
|
31
|
+
pyfemtet/opt/femprj_sample/gal_ex58_parametric.femprj,sha256=dbanN3W2eX_ciZ0wZGqK60mc4edSVh5G2OqbbMKyFng,74898
|
|
29
32
|
pyfemtet/opt/femprj_sample/gal_ex58_parametric.py,sha256=yNAgkHknRY6CPnYR6ETl6ZNOElepvQNwwnofUGpFhVw,2485
|
|
33
|
+
pyfemtet/opt/femprj_sample/gal_ex58_parametric_test_result.reccsv,sha256=hcOiI1Ct5o7k_tN8nB82kpVJpAtGvdLBjLwqEAFz49c,1029
|
|
30
34
|
pyfemtet/opt/femprj_sample/gau_ex08_parametric.femprj,sha256=Yb9ILeTEKx5xfJGk8IZH_DVlgkpGB33Vy9-LGIEQboY,279251
|
|
31
35
|
pyfemtet/opt/femprj_sample/gau_ex08_parametric.py,sha256=7SLe6Qbi2AGm1Li7kotyy2qSYynX2YitoW255XRxOOI,1956
|
|
36
|
+
pyfemtet/opt/femprj_sample/gau_ex08_parametric_test_result.reccsv,sha256=usCllUrcaDihii8rSyCcZDhXp1wJI01P-yzm-BHfhb4,2779
|
|
32
37
|
pyfemtet/opt/femprj_sample/her_ex40_parametric.femprj,sha256=LLAUDlUo1dIpRzlKPs1lvACzJQxjnWW3xAGAodYEqRM,117221
|
|
33
38
|
pyfemtet/opt/femprj_sample/her_ex40_parametric.py,sha256=9ubwnEavFpjbTAbH5RmYwYoGxATl-ehW_oH_kDLTlXs,4839
|
|
39
|
+
pyfemtet/opt/femprj_sample/her_ex40_parametric_test_result.reccsv,sha256=_vTN2GdxPcHZByNw14izdYB190Vn6WROp7-qOHW7QU8,2845
|
|
34
40
|
pyfemtet/opt/femprj_sample/paswat_ex1_parametric.femprj,sha256=z2NHFJWiuiLv_zhxjFpLpmRbYVvQ43bAMj_NLioQGsk,262283
|
|
35
41
|
pyfemtet/opt/femprj_sample/paswat_ex1_parametric.py,sha256=nFBQPr2gaCoLVxZDsKVUU_aZ3I9ZwbQCwz1_qJTSgOU,2388
|
|
36
42
|
pyfemtet/opt/femprj_sample/paswat_ex1_parametric_parallel.py,sha256=2IPq3SMrd2TCQMKL0_NA7ELBAj9yqwNe2RiMWpopw_M,2499
|
|
43
|
+
pyfemtet/opt/femprj_sample/paswat_ex1_parametric_test_result.reccsv,sha256=RjENlloyx71dkZJ_fIY6FVWKnSBCT_RmV1dO98eJxyY,3303
|
|
37
44
|
pyfemtet/opt/femprj_sample/wat_ex14_parametric.femprj,sha256=F-yu2dGrsbrIA1Lhizu2aHTjQFTohyBmOuJv-Iyl8jk,179596
|
|
38
45
|
pyfemtet/opt/femprj_sample/wat_ex14_parametric.py,sha256=sGj0khYO7_yGyXGHbdWJ883XvzO1HUbrgBLjiS2d7TM,2240
|
|
46
|
+
pyfemtet/opt/femprj_sample/wat_ex14_parametric_test_result.reccsv,sha256=92IkN7HdHBatyacO6aU3MVhOG6rkXlodlw34oF91BSM,3056
|
|
39
47
|
pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.femprj,sha256=0RBhOGhtiFAp0QSCTBYEaDY9EZymn9hJYchAOJ6PaBA,143533
|
|
40
|
-
pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.py,sha256=
|
|
48
|
+
pyfemtet/opt/femprj_sample_jp/cad_ex01_NX_jp.py,sha256=eH7u_Mq-THlEV4R1mlrSK6uVz5-_KiO3p4Rl57A_Cik,4926
|
|
41
49
|
pyfemtet/opt/femprj_sample_jp/cad_ex01_SW_jp.femprj,sha256=ZZhT9XjB9Xu9YwHWv4gbvKBiUWlOFKEoHjAcGWb3vvQ,128026
|
|
42
50
|
pyfemtet/opt/femprj_sample_jp/cad_ex01_SW_jp.py,sha256=o8P6o7Q0d0Jj02Qeij8kxbduyyKf_fNHSlXU_1H65S8,4864
|
|
43
|
-
pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.femprj,sha256=
|
|
51
|
+
pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.femprj,sha256=PzqtNVde6VnMHFpedRBsOq9JVhCY0ymQPVs54EKsNLw,75668
|
|
44
52
|
pyfemtet/opt/femprj_sample_jp/gal_ex58_parametric_jp.py,sha256=gnCPiaxCPITAP-972DylFQ0BNpDJLeal9HPf5cfbhRI,2488
|
|
45
53
|
pyfemtet/opt/femprj_sample_jp/gau_ex08_parametric_jp.femprj,sha256=TTXw_8YT8pzHQlu4ufGzTq1IFYSwcWWt4GA6sIY1YPM,295600
|
|
46
54
|
pyfemtet/opt/femprj_sample_jp/gau_ex08_parametric_jp.py,sha256=GxfAb5_0F9tK_i9almLdQh7OjzdNFo_leoyIPtPCqvM,2114
|
|
@@ -52,21 +60,21 @@ pyfemtet/opt/femprj_sample_jp/paswat_ex1_parametric_parallel_jp.py,sha256=zpkGyK
|
|
|
52
60
|
pyfemtet/opt/femprj_sample_jp/wat_ex14_parametric_jp.femprj,sha256=dMwQMt6yok_PbZLyxPYdmg5wJQwgQDZ4RhS76zdGLGk,177944
|
|
53
61
|
pyfemtet/opt/femprj_sample_jp/wat_ex14_parametric_jp.py,sha256=vnfI4WuCvyjQN1MhnzyB-jcAPtTwz3yNiwtTm2yQZHU,2311
|
|
54
62
|
pyfemtet/opt/interface/__init__.py,sha256=qz5BszPuU3jZIoDnPjkPDAgvgHLlx1sYhuqh5ID798k,480
|
|
55
|
-
pyfemtet/opt/interface/_base.py,sha256=
|
|
56
|
-
pyfemtet/opt/interface/_femtet.py,sha256=
|
|
57
|
-
pyfemtet/opt/interface/_femtet_parametric.py,sha256=
|
|
63
|
+
pyfemtet/opt/interface/_base.py,sha256=Ti2wCicyeofAZ0DzQLYoj9PBj1lyM5_lbLa0LBoypLM,2228
|
|
64
|
+
pyfemtet/opt/interface/_femtet.py,sha256=PSy1AldNK7Yg7tmxzqEmwCb5oYXouh_Y6p2vrxtwnDY,33151
|
|
65
|
+
pyfemtet/opt/interface/_femtet_parametric.py,sha256=l3Ka-e6WPTM4cerIFT4_qK6o80Lk9oHPsOnXUaJufm4,2883
|
|
58
66
|
pyfemtet/opt/interface/_femtet_with_nx/__init__.py,sha256=-6W2g2FDEcKzGHmI5KAKQe-4U5jDpMj0CXuma-GZca0,83
|
|
59
|
-
pyfemtet/opt/interface/_femtet_with_nx/_interface.py,sha256=
|
|
60
|
-
pyfemtet/opt/interface/_femtet_with_nx/update_model.py,sha256=
|
|
67
|
+
pyfemtet/opt/interface/_femtet_with_nx/_interface.py,sha256=8ZvD6ajNmKUqXPkDsGJ4tOHrQOYwWBlO9OSPaCO3ml0,5666
|
|
68
|
+
pyfemtet/opt/interface/_femtet_with_nx/update_model.py,sha256=uFf_SU96_BYUmLBBR5w3NS3WqXvEvSbOoxVnz9FA3Ug,3187
|
|
61
69
|
pyfemtet/opt/interface/_femtet_with_sldworks.py,sha256=400FidHp7mBAVLyxzLlLtGYNzK_TtK61ycd4vFjHES0,6254
|
|
62
70
|
pyfemtet/opt/opt/__init__.py,sha256=eQh-7PJN2YEUbHZnjinbeIyb0bk1wSh76TaEAa2l8SU,191
|
|
63
|
-
pyfemtet/opt/opt/_base.py,sha256=
|
|
71
|
+
pyfemtet/opt/opt/_base.py,sha256=PIEoahy7VdnrfR4jknGiB0ZzJTPzM7gEpErb6Zsm2l4,7692
|
|
64
72
|
pyfemtet/opt/opt/_optuna.py,sha256=TWtp9auU6GBWtEJVOuo8aWSvLcCHCUNUyOQRnqyln4I,9996
|
|
65
73
|
pyfemtet/opt/visualization/__init__.py,sha256=PUCHoZnuZrHjTd0QQQBgzWkCpKY2noBPTvi-lyvxQyw,193
|
|
66
|
-
pyfemtet/opt/visualization/_graphs.py,sha256=
|
|
67
|
-
pyfemtet/opt/visualization/_monitor.py,sha256=
|
|
68
|
-
pyfemtet-0.4.
|
|
69
|
-
pyfemtet-0.4.
|
|
70
|
-
pyfemtet-0.4.
|
|
71
|
-
pyfemtet-0.4.
|
|
72
|
-
pyfemtet-0.4.
|
|
74
|
+
pyfemtet/opt/visualization/_graphs.py,sha256=eovw8ShTGGWaDNr-nZuQZd3aa_gcYr-zziB0ZSI8JPg,5436
|
|
75
|
+
pyfemtet/opt/visualization/_monitor.py,sha256=kMPvptwC3hQXbmrXt6HIyF1qApgUxiSH8zrE7MevgdY,45431
|
|
76
|
+
pyfemtet-0.4.8.dist-info/LICENSE,sha256=sVQBhyoglGJUu65-BP3iR6ujORI6YgEU2Qm-V4fGlOA,1485
|
|
77
|
+
pyfemtet-0.4.8.dist-info/METADATA,sha256=TTFX4zlFXMSiozRcC_jdlEXNpaeddgUf0URfqHARN18,3381
|
|
78
|
+
pyfemtet-0.4.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
79
|
+
pyfemtet-0.4.8.dist-info/entry_points.txt,sha256=E_NUq8BEuKLM3z6Ou0sh6HyvaKE5O6NBDlmO-wgEGaQ,67
|
|
80
|
+
pyfemtet-0.4.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|