pyfemtet 0.4.13__py3-none-any.whl → 0.4.15__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/dispatch_extensions.py +4 -0
- pyfemtet/message/1. make_pot.bat +12 -0
- pyfemtet/message/2. make_mo.bat +6 -0
- pyfemtet/message/__init__.py +5 -0
- pyfemtet/message/babel.cfg +2 -0
- pyfemtet/message/locales/ja/LC_MESSAGES/messages.po +449 -0
- pyfemtet/message/locales/messages.pot +439 -0
- pyfemtet/message/messages.py +174 -0
- pyfemtet/opt/_femopt.py +9 -9
- pyfemtet/opt/_femopt_core.py +16 -14
- pyfemtet/opt/femprj_sample/ParametricIF_test_result.reccsv +13 -13
- pyfemtet/opt/femprj_sample/cad_ex01_NX_test_result.reccsv +13 -13
- pyfemtet/opt/femprj_sample/cad_ex01_SW_test_result.reccsv +13 -13
- pyfemtet/opt/femprj_sample/gal_ex58_parametric_test_result.reccsv +13 -13
- pyfemtet/opt/femprj_sample/gau_ex08_parametric_test_result.reccsv +23 -23
- pyfemtet/opt/femprj_sample/her_ex40_parametric_test_result.reccsv +18 -18
- pyfemtet/opt/femprj_sample/paswat_ex1_parametric_test_result.reccsv +18 -18
- pyfemtet/opt/femprj_sample/tutorial.femprj +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial1.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial1.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial10.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial10.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial11.jpg +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial11.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial12.jpg +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial12.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial13.jpg +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial13.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial14.jpg +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial14.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial15.jpg +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial15.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial2.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial2.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial3.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial3.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial4.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial4.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial5.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial5.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial6.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial6.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial7.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial7.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial8.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial8.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric.Results/Ex14_trial9.jpg +0 -0
- pyfemtet/opt/{visualization/result_viewer/tutorial → femprj_sample}/wat_ex14_parametric.Results/Ex14_trial9.pdt +0 -0
- pyfemtet/opt/femprj_sample/wat_ex14_parametric_test_result.reccsv +18 -18
- pyfemtet/opt/interface/_femtet.py +42 -46
- pyfemtet/opt/interface/_femtet_with_nx/_interface.py +4 -4
- pyfemtet/opt/interface/_femtet_with_nx/update_model.py +6 -6
- pyfemtet/opt/interface/_femtet_with_sldworks.py +5 -4
- pyfemtet/opt/opt/__init__.py +2 -0
- pyfemtet/opt/opt/_base.py +41 -20
- pyfemtet/opt/opt/_optuna.py +8 -13
- pyfemtet/opt/opt/_scipy.py +4 -8
- pyfemtet/opt/opt/_scipy_scalar.py +1 -5
- pyfemtet/opt/prediction/__init__.py +0 -0
- pyfemtet/opt/prediction/base.py +52 -0
- pyfemtet/opt/prediction/single_task_gp.py +89 -0
- pyfemtet/opt/visualization/complex_components/control_femtet.py +9 -11
- pyfemtet/opt/visualization/complex_components/main_figure_creator.py +24 -11
- pyfemtet/opt/visualization/complex_components/main_graph.py +3 -4
- pyfemtet/opt/visualization/complex_components/pm_graph.py +715 -0
- pyfemtet/opt/visualization/complex_components/pm_graph_creator.py +168 -0
- pyfemtet/opt/visualization/process_monitor/application.py +16 -12
- pyfemtet/opt/visualization/process_monitor/pages.py +22 -7
- pyfemtet/opt/visualization/result_viewer/application.py +8 -3
- pyfemtet/opt/visualization/result_viewer/pages.py +59 -47
- {pyfemtet-0.4.13.dist-info → pyfemtet-0.4.15.dist-info}/METADATA +2 -1
- {pyfemtet-0.4.13.dist-info → pyfemtet-0.4.15.dist-info}/RECORD +77 -70
- pyfemtet/opt/visualization/result_viewer/tutorial/tutorial.csv +0 -18
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14.log +0 -81
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_heatflow.csv +0 -28
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_heatflow_el.csv +0 -22
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial1.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial10.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial11.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial11.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial12.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial12.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial13.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial13.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial14.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial14.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial15.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial15.pdt +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial2.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial3.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial4.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial5.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial6.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial7.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial8.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.Results/Ex14_trial9.jpg +0 -0
- pyfemtet/opt/visualization/result_viewer/tutorial/wat_ex14_parametric.femprj +0 -0
- {pyfemtet-0.4.13.dist-info → pyfemtet-0.4.15.dist-info}/LICENSE +0 -0
- {pyfemtet-0.4.13.dist-info → pyfemtet-0.4.15.dist-info}/WHEEL +0 -0
- {pyfemtet-0.4.13.dist-info → pyfemtet-0.4.15.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
# Translations template for PROJECT.
|
|
2
|
+
# Copyright (C) 2024 ORGANIZATION
|
|
3
|
+
# This file is distributed under the same license as the PROJECT project.
|
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
|
|
5
|
+
#
|
|
6
|
+
#, fuzzy
|
|
7
|
+
msgid ""
|
|
8
|
+
msgstr ""
|
|
9
|
+
"Project-Id-Version: PROJECT VERSION\n"
|
|
10
|
+
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
|
11
|
+
"POT-Creation-Date: 2024-07-22 22:47+0900\n"
|
|
12
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
13
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
14
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
15
|
+
"MIME-Version: 1.0\n"
|
|
16
|
+
"Content-Type: text/plain; charset=utf-8\n"
|
|
17
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
18
|
+
"Generated-By: Babel 2.15.0\n"
|
|
19
|
+
|
|
20
|
+
#: pyfemtet/message/messages.py:30
|
|
21
|
+
msgid "hello!"
|
|
22
|
+
msgstr ""
|
|
23
|
+
|
|
24
|
+
#: pyfemtet/message/messages.py:35
|
|
25
|
+
msgid "Press enter to quit..."
|
|
26
|
+
msgstr ""
|
|
27
|
+
|
|
28
|
+
#: pyfemtet/message/messages.py:38
|
|
29
|
+
msgid "The magnitude relationship is incorrect."
|
|
30
|
+
msgstr ""
|
|
31
|
+
|
|
32
|
+
#: pyfemtet/message/messages.py:39
|
|
33
|
+
msgid "The direction of the objective function must be 'minimize', 'maximize' or a number. "
|
|
34
|
+
msgstr ""
|
|
35
|
+
|
|
36
|
+
#: pyfemtet/message/messages.py:40
|
|
37
|
+
msgid "The variable name, object name, or constraint name contains characters that cannot be encoded. Do not use environment-dependent characters."
|
|
38
|
+
msgstr ""
|
|
39
|
+
|
|
40
|
+
#: pyfemtet/message/messages.py:41
|
|
41
|
+
msgid "The running configuration does not match the configuration in the csv file."
|
|
42
|
+
msgstr ""
|
|
43
|
+
|
|
44
|
+
#: pyfemtet/message/messages.py:44
|
|
45
|
+
msgid "Please specify initial_value."
|
|
46
|
+
msgstr ""
|
|
47
|
+
|
|
48
|
+
#: pyfemtet/message/messages.py:45
|
|
49
|
+
msgid "Constraint functions are evaluated before analysis is performed, so do not access Femtet.Gogh. If you want your constraints to include values after analysis is performed, set the `strict` argument to False."
|
|
50
|
+
msgstr ""
|
|
51
|
+
|
|
52
|
+
#: pyfemtet/message/messages.py:49
|
|
53
|
+
msgid "History csv file is in use and cannot be written to. Please free this file before exiting the program, otherwise history data will be lost."
|
|
54
|
+
msgstr ""
|
|
55
|
+
|
|
56
|
+
#: pyfemtet/message/messages.py:52
|
|
57
|
+
msgid "Optimization finished. Results were saved in following:"
|
|
58
|
+
msgstr ""
|
|
59
|
+
|
|
60
|
+
#: pyfemtet/message/messages.py:55
|
|
61
|
+
msgid "\"%UGII_BASE_DIR%\\NXBIN\\run_journal.exe\" is not found. Make sure you have NX installed and the environment variable UGII_BASE_DIR is set."
|
|
62
|
+
msgstr ""
|
|
63
|
+
|
|
64
|
+
#: pyfemtet/message/messages.py:56
|
|
65
|
+
msgid "Model reconstruction failed."
|
|
66
|
+
msgstr ""
|
|
67
|
+
|
|
68
|
+
#: pyfemtet/message/messages.py:57
|
|
69
|
+
msgid "Model update failed."
|
|
70
|
+
msgstr ""
|
|
71
|
+
|
|
72
|
+
#: pyfemtet/message/messages.py:58
|
|
73
|
+
msgid "It was detected that the configuration of Femtet python macro constants has not been completed. The configuration was done automatically (python -m win32com.client.makepy FemtetMacro). Please restart the program."
|
|
74
|
+
msgstr ""
|
|
75
|
+
|
|
76
|
+
#: pyfemtet/message/messages.py:59
|
|
77
|
+
msgid "Failed to connect to Femtet."
|
|
78
|
+
msgstr ""
|
|
79
|
+
|
|
80
|
+
#: pyfemtet/message/messages.py:60
|
|
81
|
+
msgid "The Femtet process crashed and could not be restarted successfully."
|
|
82
|
+
msgstr ""
|
|
83
|
+
|
|
84
|
+
#: pyfemtet/message/messages.py:61
|
|
85
|
+
msgid "An abnormal termination of the Femtet process has been detected. Recovery will be attempted."
|
|
86
|
+
msgstr ""
|
|
87
|
+
|
|
88
|
+
#: pyfemtet/message/messages.py:62
|
|
89
|
+
msgid "Femtet has been restarted and will perform analysis and attempt to recover."
|
|
90
|
+
msgstr ""
|
|
91
|
+
|
|
92
|
+
#: pyfemtet/message/messages.py:63
|
|
93
|
+
msgid "If you specify 'new' as the 'connect_method' argument, set the 'femprj_path' argument to existing femprj file path."
|
|
94
|
+
msgstr ""
|
|
95
|
+
|
|
96
|
+
#: pyfemtet/message/messages.py:64
|
|
97
|
+
msgid "The specified variable is not included in the Femtet analysis model. Note the capitalization of the variable."
|
|
98
|
+
msgstr ""
|
|
99
|
+
|
|
100
|
+
#: pyfemtet/message/messages.py:65
|
|
101
|
+
msgid "The following APIs are not accessible: "
|
|
102
|
+
msgstr ""
|
|
103
|
+
|
|
104
|
+
#: pyfemtet/message/messages.py:66
|
|
105
|
+
msgid "Macros may not be enabled in the installed version of Femtet. Please run the \"Enable Macros\" command from the start menu with administrator privileges in the same version of Femtet that is installed."
|
|
106
|
+
msgstr ""
|
|
107
|
+
|
|
108
|
+
#: pyfemtet/message/messages.py:67
|
|
109
|
+
msgid "No analysis model is open"
|
|
110
|
+
msgstr ""
|
|
111
|
+
|
|
112
|
+
#: pyfemtet/message/messages.py:68
|
|
113
|
+
msgid "The analysis model does not contain any variables."
|
|
114
|
+
msgstr ""
|
|
115
|
+
|
|
116
|
+
#: pyfemtet/message/messages.py:69
|
|
117
|
+
msgid "Failed to update variables:"
|
|
118
|
+
msgstr ""
|
|
119
|
+
|
|
120
|
+
#: pyfemtet/message/messages.py:70
|
|
121
|
+
msgid "The specified variable is not included in the analysis model and will be ignored."
|
|
122
|
+
msgstr ""
|
|
123
|
+
|
|
124
|
+
#: pyfemtet/message/messages.py:71
|
|
125
|
+
msgid "Model history re-execute failed."
|
|
126
|
+
msgstr ""
|
|
127
|
+
|
|
128
|
+
#: pyfemtet/message/messages.py:72
|
|
129
|
+
msgid "Model redraw failed."
|
|
130
|
+
msgstr ""
|
|
131
|
+
|
|
132
|
+
#: pyfemtet/message/messages.py:73
|
|
133
|
+
msgid "Mesh generation failed"
|
|
134
|
+
msgstr ""
|
|
135
|
+
|
|
136
|
+
#: pyfemtet/message/messages.py:74
|
|
137
|
+
msgid "Parametric solve failed"
|
|
138
|
+
msgstr ""
|
|
139
|
+
|
|
140
|
+
#: pyfemtet/message/messages.py:75
|
|
141
|
+
msgid "Solve failed."
|
|
142
|
+
msgstr ""
|
|
143
|
+
|
|
144
|
+
#: pyfemtet/message/messages.py:76
|
|
145
|
+
msgid "Open result failed."
|
|
146
|
+
msgstr ""
|
|
147
|
+
|
|
148
|
+
#: pyfemtet/message/messages.py:77
|
|
149
|
+
msgid "Failed to close Femtet."
|
|
150
|
+
msgstr ""
|
|
151
|
+
|
|
152
|
+
#: pyfemtet/message/messages.py:78
|
|
153
|
+
msgid "Failed to save result (.pdt) file."
|
|
154
|
+
msgstr ""
|
|
155
|
+
|
|
156
|
+
#: pyfemtet/message/messages.py:79
|
|
157
|
+
msgid "Failed to save screenshot (.jpg)."
|
|
158
|
+
msgstr ""
|
|
159
|
+
|
|
160
|
+
#: pyfemtet/message/messages.py:80
|
|
161
|
+
msgid "Screenshot (.jpg) is not found."
|
|
162
|
+
msgstr ""
|
|
163
|
+
|
|
164
|
+
#: pyfemtet/message/messages.py:81
|
|
165
|
+
msgid "Failed to update model in solidworks."
|
|
166
|
+
msgstr ""
|
|
167
|
+
|
|
168
|
+
#: pyfemtet/message/messages.py:84
|
|
169
|
+
msgid "The following features are not supported by the specified optimization method. "
|
|
170
|
+
msgstr ""
|
|
171
|
+
|
|
172
|
+
#: pyfemtet/message/messages.py:85
|
|
173
|
+
msgid "The parameter set does not match the one added with add_init_parameter."
|
|
174
|
+
msgstr ""
|
|
175
|
+
|
|
176
|
+
#: pyfemtet/message/messages.py:86
|
|
177
|
+
msgid "An exception has occurred during FEM update. Current parameters are: "
|
|
178
|
+
msgstr ""
|
|
179
|
+
|
|
180
|
+
#: pyfemtet/message/messages.py:87
|
|
181
|
+
msgid "The constraints were not satisfied for the following sets of variables:"
|
|
182
|
+
msgstr ""
|
|
183
|
+
|
|
184
|
+
#: pyfemtet/message/messages.py:88
|
|
185
|
+
msgid "Current parameter set cannot update FEM and this optimization method cannot skip current parameter set. The optimization process will be terminated."
|
|
186
|
+
msgstr ""
|
|
187
|
+
|
|
188
|
+
#: pyfemtet/message/messages.py:89
|
|
189
|
+
msgid "Optimization has been interrupted. Note that you cannot acquire the OptimizationResult in case of `trust-constr`, `TNC`, `SLSQP` or `COBYLA`."
|
|
190
|
+
msgstr ""
|
|
191
|
+
|
|
192
|
+
#: pyfemtet/message/messages.py:93
|
|
193
|
+
msgid "Connect to Femtet"
|
|
194
|
+
msgstr ""
|
|
195
|
+
|
|
196
|
+
#: pyfemtet/message/messages.py:94
|
|
197
|
+
msgid "Analysis model name described in csv does not exist in project."
|
|
198
|
+
msgstr ""
|
|
199
|
+
|
|
200
|
+
#: pyfemtet/message/messages.py:95
|
|
201
|
+
msgid "History csv is not read yet. Open your project manually."
|
|
202
|
+
msgstr ""
|
|
203
|
+
|
|
204
|
+
#: pyfemtet/message/messages.py:96
|
|
205
|
+
msgid "Cannot read project data from csv. Open your project manually."
|
|
206
|
+
msgstr ""
|
|
207
|
+
|
|
208
|
+
#: pyfemtet/message/messages.py:97
|
|
209
|
+
msgid ".femprj file described in csv is not found. Open your project manually."
|
|
210
|
+
msgstr ""
|
|
211
|
+
|
|
212
|
+
#: pyfemtet/message/messages.py:98
|
|
213
|
+
msgid "Analysis model name is not specified. Open your model in the project manually."
|
|
214
|
+
msgstr ""
|
|
215
|
+
|
|
216
|
+
#: pyfemtet/message/messages.py:100
|
|
217
|
+
msgid "Constraint"
|
|
218
|
+
msgstr ""
|
|
219
|
+
|
|
220
|
+
#: pyfemtet/message/messages.py:101
|
|
221
|
+
msgid "feasible"
|
|
222
|
+
msgstr ""
|
|
223
|
+
|
|
224
|
+
#: pyfemtet/message/messages.py:102
|
|
225
|
+
msgid "infeasible"
|
|
226
|
+
msgstr ""
|
|
227
|
+
|
|
228
|
+
#: pyfemtet/message/messages.py:103
|
|
229
|
+
msgid "Optimality"
|
|
230
|
+
msgstr ""
|
|
231
|
+
|
|
232
|
+
#: pyfemtet/message/messages.py:104
|
|
233
|
+
msgid "non dominated"
|
|
234
|
+
msgstr ""
|
|
235
|
+
|
|
236
|
+
#: pyfemtet/message/messages.py:105
|
|
237
|
+
msgid "dominated"
|
|
238
|
+
msgstr ""
|
|
239
|
+
|
|
240
|
+
#: pyfemtet/message/messages.py:106
|
|
241
|
+
msgid "Hypervolume Plot"
|
|
242
|
+
msgstr ""
|
|
243
|
+
|
|
244
|
+
#: pyfemtet/message/messages.py:107
|
|
245
|
+
msgid "Objective Plot"
|
|
246
|
+
msgstr ""
|
|
247
|
+
|
|
248
|
+
#: pyfemtet/message/messages.py:108
|
|
249
|
+
msgid "Multi Objective Pair Plot"
|
|
250
|
+
msgstr ""
|
|
251
|
+
|
|
252
|
+
#: pyfemtet/message/messages.py:109
|
|
253
|
+
msgid "trial number"
|
|
254
|
+
msgstr ""
|
|
255
|
+
|
|
256
|
+
#: pyfemtet/message/messages.py:111
|
|
257
|
+
msgid "Objectives"
|
|
258
|
+
msgstr ""
|
|
259
|
+
|
|
260
|
+
#: pyfemtet/message/messages.py:113
|
|
261
|
+
msgid "Prediction Model"
|
|
262
|
+
msgstr ""
|
|
263
|
+
|
|
264
|
+
#: pyfemtet/message/messages.py:114
|
|
265
|
+
msgid " Recalculate Model"
|
|
266
|
+
msgstr ""
|
|
267
|
+
|
|
268
|
+
#: pyfemtet/message/messages.py:115
|
|
269
|
+
msgid " Redraw graph"
|
|
270
|
+
msgstr ""
|
|
271
|
+
|
|
272
|
+
#: pyfemtet/message/messages.py:116
|
|
273
|
+
msgid "Parameter"
|
|
274
|
+
msgstr ""
|
|
275
|
+
|
|
276
|
+
#: pyfemtet/message/messages.py:117
|
|
277
|
+
msgid "Parameter2"
|
|
278
|
+
msgstr ""
|
|
279
|
+
|
|
280
|
+
#: pyfemtet/message/messages.py:118
|
|
281
|
+
msgid "Objective"
|
|
282
|
+
msgstr ""
|
|
283
|
+
|
|
284
|
+
#: pyfemtet/message/messages.py:119
|
|
285
|
+
msgid "No history selected."
|
|
286
|
+
msgstr ""
|
|
287
|
+
|
|
288
|
+
#: pyfemtet/message/messages.py:120
|
|
289
|
+
msgid "No FEM result (yet)."
|
|
290
|
+
msgstr ""
|
|
291
|
+
|
|
292
|
+
#: pyfemtet/message/messages.py:121
|
|
293
|
+
msgid "Prediction model is not calculated yet."
|
|
294
|
+
msgstr ""
|
|
295
|
+
|
|
296
|
+
#: pyfemtet/message/messages.py:122
|
|
297
|
+
msgid "Cannot select same parameter"
|
|
298
|
+
msgstr ""
|
|
299
|
+
|
|
300
|
+
#: pyfemtet/message/messages.py:124
|
|
301
|
+
msgid "Prediction Model of Objective"
|
|
302
|
+
msgstr ""
|
|
303
|
+
|
|
304
|
+
#: pyfemtet/message/messages.py:125
|
|
305
|
+
msgid "prediction model"
|
|
306
|
+
msgstr ""
|
|
307
|
+
|
|
308
|
+
#: pyfemtet/message/messages.py:126
|
|
309
|
+
msgid "std. dev. of model"
|
|
310
|
+
msgstr ""
|
|
311
|
+
|
|
312
|
+
#: pyfemtet/message/messages.py:128
|
|
313
|
+
msgid "Progress"
|
|
314
|
+
msgstr ""
|
|
315
|
+
|
|
316
|
+
#: pyfemtet/message/messages.py:129
|
|
317
|
+
msgid "Prediction"
|
|
318
|
+
msgstr ""
|
|
319
|
+
|
|
320
|
+
#: pyfemtet/message/messages.py:130
|
|
321
|
+
msgid "Workers"
|
|
322
|
+
msgstr ""
|
|
323
|
+
|
|
324
|
+
#: pyfemtet/message/messages.py:132
|
|
325
|
+
msgid "Optimization status will be shown here."
|
|
326
|
+
msgstr ""
|
|
327
|
+
|
|
328
|
+
#: pyfemtet/message/messages.py:133
|
|
329
|
+
msgid "Auto-update graph"
|
|
330
|
+
msgstr ""
|
|
331
|
+
|
|
332
|
+
#: pyfemtet/message/messages.py:134
|
|
333
|
+
msgid "Interrupt Optimization"
|
|
334
|
+
msgstr ""
|
|
335
|
+
|
|
336
|
+
#: pyfemtet/message/messages.py:136
|
|
337
|
+
msgid "Result"
|
|
338
|
+
msgstr ""
|
|
339
|
+
|
|
340
|
+
#: pyfemtet/message/messages.py:138
|
|
341
|
+
msgid "Open Result in Femtet"
|
|
342
|
+
msgstr ""
|
|
343
|
+
|
|
344
|
+
#: pyfemtet/message/messages.py:139
|
|
345
|
+
msgid "Reconstruct Model"
|
|
346
|
+
msgstr ""
|
|
347
|
+
|
|
348
|
+
#: pyfemtet/message/messages.py:140
|
|
349
|
+
msgid "Drag and drop or select csv file"
|
|
350
|
+
msgstr ""
|
|
351
|
+
|
|
352
|
+
#: pyfemtet/message/messages.py:141
|
|
353
|
+
msgid "Connection to Femtet is not established. Launch Femtet and Open a project."
|
|
354
|
+
msgstr ""
|
|
355
|
+
|
|
356
|
+
#: pyfemtet/message/messages.py:142
|
|
357
|
+
msgid "No result plot is selected."
|
|
358
|
+
msgstr ""
|
|
359
|
+
|
|
360
|
+
#: pyfemtet/message/messages.py:143
|
|
361
|
+
msgid "The femprj file path in the history csv is not found or valid."
|
|
362
|
+
msgstr ""
|
|
363
|
+
|
|
364
|
+
#: pyfemtet/message/messages.py:144
|
|
365
|
+
msgid "The model name in the history csv is not found."
|
|
366
|
+
msgstr ""
|
|
367
|
+
|
|
368
|
+
#: pyfemtet/message/messages.py:145
|
|
369
|
+
msgid ".pdt file is not found. Please check the .Results folder. Note that .pdt file save mode depends on the `save_pdt` argument of FemtetInterface in optimization script(default to `all`)."
|
|
370
|
+
msgstr ""
|
|
371
|
+
|
|
372
|
+
#: pyfemtet/message/messages.py:150
|
|
373
|
+
msgid "Failed to open "
|
|
374
|
+
msgstr ""
|
|
375
|
+
|
|
376
|
+
#: pyfemtet/message/messages.py:151
|
|
377
|
+
msgid "Specified model is not in current project. Please check opened project. For example, not \"analysis model only\" but your .femprj file."
|
|
378
|
+
msgstr ""
|
|
379
|
+
|
|
380
|
+
#: pyfemtet/message/messages.py:154
|
|
381
|
+
msgid ".femprj file path of the history csv is invalid. Please certify matching between csv and opening .femprj file."
|
|
382
|
+
msgstr ""
|
|
383
|
+
|
|
384
|
+
#: pyfemtet/message/messages.py:155
|
|
385
|
+
msgid "Analysis model name of the history csv is invalid. Please certify matching between csv and opening analysis model."
|
|
386
|
+
msgstr ""
|
|
387
|
+
|
|
388
|
+
#: pyfemtet/message/messages.py:156
|
|
389
|
+
msgid "Analysis model name of the history csv and opened in Femtet is inconsistent. Please certify matching between csv and opening analysis model."
|
|
390
|
+
msgstr ""
|
|
391
|
+
|
|
392
|
+
#: pyfemtet/message/messages.py:157
|
|
393
|
+
msgid "tutorial mode"
|
|
394
|
+
msgstr ""
|
|
395
|
+
|
|
396
|
+
#: pyfemtet/message/messages.py:158
|
|
397
|
+
msgid "Load Sample CSV"
|
|
398
|
+
msgstr ""
|
|
399
|
+
|
|
400
|
+
#: pyfemtet/message/messages.py:159
|
|
401
|
+
msgid "Load CSV"
|
|
402
|
+
msgstr ""
|
|
403
|
+
|
|
404
|
+
#: pyfemtet/message/messages.py:160
|
|
405
|
+
msgid "Open your optimization result. Then connecting to femtet will start automatically. Note that in tutorial mode, this button loads the ready-made sample csv and open sample femprj."
|
|
406
|
+
msgstr ""
|
|
407
|
+
|
|
408
|
+
#: pyfemtet/message/messages.py:162
|
|
409
|
+
msgid "Main Graph"
|
|
410
|
+
msgstr ""
|
|
411
|
+
|
|
412
|
+
#: pyfemtet/message/messages.py:163
|
|
413
|
+
msgid "Here the optimization history is shown. Each plot represents single FEM result. You can pick a result to open the corresponding result in Femtet. "
|
|
414
|
+
msgstr ""
|
|
415
|
+
|
|
416
|
+
#: pyfemtet/message/messages.py:166
|
|
417
|
+
msgid "Open Result"
|
|
418
|
+
msgstr ""
|
|
419
|
+
|
|
420
|
+
#: pyfemtet/message/messages.py:167
|
|
421
|
+
msgid "After pick a point in the main graph, This button shows the corresponding FEM result in Femtet."
|
|
422
|
+
msgstr ""
|
|
423
|
+
|
|
424
|
+
#: pyfemtet/message/messages.py:169
|
|
425
|
+
msgid "Re-connect to Femtet."
|
|
426
|
+
msgstr ""
|
|
427
|
+
|
|
428
|
+
#: pyfemtet/message/messages.py:170
|
|
429
|
+
msgid "Sample csv is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`"
|
|
430
|
+
msgstr ""
|
|
431
|
+
|
|
432
|
+
#: pyfemtet/message/messages.py:171
|
|
433
|
+
msgid "Sample femprj file is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`"
|
|
434
|
+
msgstr ""
|
|
435
|
+
|
|
436
|
+
#: pyfemtet/message/messages.py:172
|
|
437
|
+
msgid "Sample femprj result folder is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`"
|
|
438
|
+
msgstr ""
|
|
439
|
+
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import locale
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
|
|
5
|
+
loc, encoding = locale.getlocale()
|
|
6
|
+
|
|
7
|
+
if __name__ == '__main__':
|
|
8
|
+
# set target to create .pot
|
|
9
|
+
from gettext import gettext as _
|
|
10
|
+
|
|
11
|
+
else:
|
|
12
|
+
# get translation
|
|
13
|
+
if 'japanese' in loc.lower():
|
|
14
|
+
from babel.support import Translations
|
|
15
|
+
|
|
16
|
+
translations = Translations.load(
|
|
17
|
+
os.path.join(os.path.dirname(__file__), 'locales'),
|
|
18
|
+
locales='ja'
|
|
19
|
+
)
|
|
20
|
+
_ = translations.gettext
|
|
21
|
+
|
|
22
|
+
else:
|
|
23
|
+
def _(x):
|
|
24
|
+
return x
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@dataclass
|
|
28
|
+
class Message:
|
|
29
|
+
# syntax
|
|
30
|
+
HELLO = _('hello!')
|
|
31
|
+
# This is ignored by babel
|
|
32
|
+
def some_string(self, value): return _(f'value is {value}')
|
|
33
|
+
|
|
34
|
+
# ===== common =====
|
|
35
|
+
ENTER_TO_QUIT = _('Press enter to quit...')
|
|
36
|
+
|
|
37
|
+
# ===== pyfemtet.opt femopt core =====
|
|
38
|
+
ERR_CHECK_MINMAX = _('The magnitude relationship is incorrect.')
|
|
39
|
+
ERR_CHECK_DIRECTION = _("The direction of the objective function must be 'minimize', 'maximize' or a number. ")
|
|
40
|
+
ERR_CANNOT_ENCODING = _('The variable name, object name, or constraint name contains characters that cannot be encoded. Do not use environment-dependent characters.')
|
|
41
|
+
ERR_PROBLEM_MISMATCH = _('The running configuration does not match the configuration in the csv file.')
|
|
42
|
+
|
|
43
|
+
# ===== pyfemtet.opt FEMOpt =====
|
|
44
|
+
ERR_NO_INITIAL_VALUE = _('Please specify initial_value.')
|
|
45
|
+
ERR_CONTAIN_GOGH_ACCESS_IN_STRICT_CONSTRAINT = _('Constraint functions are evaluated before analysis is performed, '
|
|
46
|
+
'so do not access Femtet.Gogh. If you want your '
|
|
47
|
+
'constraints to include values after analysis is performed, set '
|
|
48
|
+
'the `strict` argument to False.')
|
|
49
|
+
WARN_HISTORY_CSV_NOT_ACCESSIBLE = _('History csv file is in use and cannot be written to. '
|
|
50
|
+
'Please free this file before exiting the program, '
|
|
51
|
+
'otherwise history data will be lost.')
|
|
52
|
+
OPTIMIZATION_FINISHED = _('Optimization finished. Results were saved in following:')
|
|
53
|
+
|
|
54
|
+
# ===== pyfemtet.opt.interface =====
|
|
55
|
+
ERR_RUN_JOURNAL_NOT_FOUND = _(r'"%UGII_BASE_DIR%\NXBIN\run_journal.exe" is not found. Make sure you have NX installed and the environment variable UGII_BASE_DIR is set.')
|
|
56
|
+
ERR_MODEL_RECONSTRUCTION_FAILED = _('Model reconstruction failed.')
|
|
57
|
+
ERR_MODEL_UPDATE_FAILED = _('Model update failed.')
|
|
58
|
+
ERR_NO_MAKEPY = _('It was detected that the configuration of Femtet python macro constants has not been completed. The configuration was done automatically (python -m win32com.client.makepy FemtetMacro). Please restart the program.')
|
|
59
|
+
ERR_FEMTET_CONNECTION_FAILED = _('Failed to connect to Femtet.')
|
|
60
|
+
ERR_FEMTET_CRASHED_AND_RESTART_FAILED = _('The Femtet process crashed and could not be restarted successfully.')
|
|
61
|
+
WARN_FEMTET_CRASHED_AND_TRY_RESTART = _('An abnormal termination of the Femtet process has been detected. Recovery will be attempted.')
|
|
62
|
+
INFO_FEMTET_CRASHED_AND_RESTARTED = _('Femtet has been restarted and will perform analysis and attempt to recover.')
|
|
63
|
+
ERR_NEW_FEMTET_BUT_NO_FEMPRJ = _("If you specify 'new' as the 'connect_method' argument, set the 'femprj_path' argument to existing femprj file path.")
|
|
64
|
+
ERR_NO_SUCH_PARAMETER_IN_FEMTET = _('The specified variable is not included in the Femtet analysis model. Note the capitalization of the variable.')
|
|
65
|
+
ERR_CANNOT_ACCESS_API = _('The following APIs are not accessible: ')
|
|
66
|
+
CERTIFY_MACRO_VERSION = _('Macros may not be enabled in the installed version of Femtet. Please run the "Enable Macros" command from the start menu with administrator privileges in the same version of Femtet that is installed.')
|
|
67
|
+
NO_ANALYSIS_MODEL_IS_OPEN = _('No analysis model is open')
|
|
68
|
+
FEMTET_ANALYSIS_MODEL_WITH_NO_PARAMETER = _('The analysis model does not contain any variables.')
|
|
69
|
+
ERR_FAILED_TO_UPDATE_VARIABLE = _('Failed to update variables:')
|
|
70
|
+
WARN_IGNORE_PARAMETER_NOT_CONTAINED = _('The specified variable is not included in the analysis model and will be ignored.')
|
|
71
|
+
ERR_RE_EXECUTE_MODEL_FAILED = _('Model history re-execute failed.')
|
|
72
|
+
ERR_MODEL_REDRAW_FAILED = _('Model redraw failed.')
|
|
73
|
+
ERR_MODEL_MESH_FAILED = _('Mesh generation failed')
|
|
74
|
+
ERR_PARAMETRIC_SOLVE_FAILED = _('Parametric solve failed')
|
|
75
|
+
ERR_SOLVE_FAILED = _('Solve failed.')
|
|
76
|
+
ERR_OPEN_RESULT_FAILED = _('Open result failed.')
|
|
77
|
+
ERR_CLOSE_FEMTET_FAILED = _('Failed to close Femtet.')
|
|
78
|
+
ERR_FAILED_TO_SAVE_PDT = _('Failed to save result (.pdt) file.')
|
|
79
|
+
ERR_FAILED_TO_SAVE_JPG = _('Failed to save screenshot (.jpg).')
|
|
80
|
+
ERR_JPG_NOT_FOUND = _('Screenshot (.jpg) is not found.')
|
|
81
|
+
ERR_UPDATE_SOLIDWORKS_MODEL_FAILED = _('Failed to update model in solidworks.')
|
|
82
|
+
|
|
83
|
+
# ===== pyfemtet.opt.opt =====
|
|
84
|
+
ERR_NOT_IMPLEMENTED = _('The following features are not supported by the specified optimization method. ')
|
|
85
|
+
ERR_INCONSISTENT_PARAMETER = _('The parameter set does not match the one added with add_init_parameter.')
|
|
86
|
+
INFO_EXCEPTION_DURING_FEM_ANALYSIS = _('An exception has occurred during FEM update. Current parameters are: ')
|
|
87
|
+
INFO_INFEASIBLE = _('The constraints were not satisfied for the following sets of variables:')
|
|
88
|
+
ERR_FEM_FAILED_AND_CANNOT_CONTINUE = _('Current parameter set cannot update FEM and this optimization method cannot skip current parameter set. The optimization process will be terminated.')
|
|
89
|
+
WARN_INTERRUPTED_IN_SCIPY = _('Optimization has been interrupted. Note that you cannot acquire the OptimizationResult in case of `trust-constr`, `TNC`, `SLSQP` or `COBYLA`.')
|
|
90
|
+
|
|
91
|
+
# ===== pyfemtet.opt.visualization =====
|
|
92
|
+
# control_femtet.py
|
|
93
|
+
LABEL_CONNECT_FEMTET_BUTTON = _('Connect to Femtet')
|
|
94
|
+
WARN_CSV_MODEL_NAME_IS_INVALID = _('Analysis model name described in csv does not exist in project.')
|
|
95
|
+
WARN_HISTORY_CSV_NOT_READ = _('History csv is not read yet. Open your project manually.')
|
|
96
|
+
WARN_INVALID_METADATA = _('Cannot read project data from csv. Open your project manually.')
|
|
97
|
+
WARN_FEMPRJ_IN_CSV_NOT_FOUND = _('.femprj file described in csv is not found. Open your project manually.')
|
|
98
|
+
WARN_MODEL_IN_CSV_NOT_FOUND_IN_FEMPRJ = _('Analysis model name is not specified. Open your model in the project manually.')
|
|
99
|
+
# main_figure_creator.py
|
|
100
|
+
LEGEND_LABEL_CONSTRAINT = _('Constraint')
|
|
101
|
+
LEGEND_LABEL_FEASIBLE = _('feasible')
|
|
102
|
+
LEGEND_LABEL_INFEASIBLE = _('infeasible')
|
|
103
|
+
LEGEND_LABEL_OPTIMAL = _('Optimality')
|
|
104
|
+
LEGEND_LABEL_NON_DOMI = _('non dominated')
|
|
105
|
+
LEGEND_LABEL_DOMI = _('dominated')
|
|
106
|
+
GRAPH_TITLE_HYPERVOLUME = _('Hypervolume Plot')
|
|
107
|
+
GRAPH_TITLE_SINGLE_OBJECTIVE = _('Objective Plot')
|
|
108
|
+
GRAPH_TITLE_MULTI_OBJECTIVE = _('Multi Objective Pair Plot')
|
|
109
|
+
GRAPH_AXIS_LABEL_TRIAL = _('trial number')
|
|
110
|
+
# main_graph.py
|
|
111
|
+
TAB_LABEL_OBJECTIVES = _('Objectives')
|
|
112
|
+
# pm_graph.py
|
|
113
|
+
TAB_LABEL_PREDICTION_MODEL = _('Prediction Model')
|
|
114
|
+
LABEL_OF_CREATE_PREDICTION_MODEL_BUTTON = _(' Recalculate Model')
|
|
115
|
+
LABEL_OF_REDRAW_PREDICTION_MODEL_GRAPH_BUTTON = _(' Redraw graph')
|
|
116
|
+
LABEL_OF_AXIS1_SELECTION = _('Parameter')
|
|
117
|
+
LABEL_OF_AXIS2_SELECTION = _('Parameter2')
|
|
118
|
+
LABEL_OF_AXIS3_SELECTION = _('Objective')
|
|
119
|
+
ERR_NO_HISTORY_SELECTED = _('No history selected.')
|
|
120
|
+
ERR_NO_FEM_RESULT = _('No FEM result (yet).')
|
|
121
|
+
ERR_NO_PREDICTION_MODEL = _('Prediction model is not calculated yet.')
|
|
122
|
+
ERR_CANNOT_SELECT_SAME_PARAMETER = _('Cannot select same parameter')
|
|
123
|
+
# pm_graph_creator
|
|
124
|
+
GRAPH_TITLE_PREDICTION_MODEL = _('Prediction Model of Objective')
|
|
125
|
+
LEGEND_LABEL_PREDICTION_MODEL = _('prediction model')
|
|
126
|
+
LEGEND_LABEL_PREDICTION_MODEL_STDDEV = _('std. dev. of model')
|
|
127
|
+
# process_monitor application
|
|
128
|
+
PAGE_TITLE_PROGRESS = _('Progress')
|
|
129
|
+
PAGE_TITLE_PREDICTION_MODEL = _('Prediction')
|
|
130
|
+
PAGE_TITLE_WORKERS = _('Workers')
|
|
131
|
+
# process monitor pages
|
|
132
|
+
DEFAULT_STATUS_ALERT = _('Optimization status will be shown here.')
|
|
133
|
+
LABEL_AUTO_UPDATE = _('Auto-update graph')
|
|
134
|
+
LABEL_INTERRUPT = _('Interrupt Optimization')
|
|
135
|
+
# result viewer application
|
|
136
|
+
PAGE_TITLE_RESULT = _('Result')
|
|
137
|
+
# result viewer pages
|
|
138
|
+
LABEL_OPEN_PDT_BUTTON = _('Open Result in Femtet')
|
|
139
|
+
LABEL_RECONSTRUCT_MODEL_BUTTON = _('Reconstruct Model')
|
|
140
|
+
LABEL_FILE_PICKER = _('Drag and drop or select csv file')
|
|
141
|
+
ERR_NO_CONNECTION_ESTABLISHED = _('Connection to Femtet is not established. Launch Femtet and Open a project.')
|
|
142
|
+
ERR_NO_SOLUTION_SELECTED = _('No result plot is selected.')
|
|
143
|
+
ERR_FEMPRJ_IN_CSV_NOT_FOUND = _('The femprj file path in the history csv is not found or valid.')
|
|
144
|
+
ERR_MODEL_IN_CSV_NOT_FOUND = _('The model name in the history csv is not found.')
|
|
145
|
+
ERR_PDT_NOT_FOUND = _('.pdt file is not found. '
|
|
146
|
+
'Please check the .Results folder. '
|
|
147
|
+
'Note that .pdt file save mode depends on '
|
|
148
|
+
'the `save_pdt` argument of FemtetInterface in optimization script'
|
|
149
|
+
'(default to `all`).')
|
|
150
|
+
ERR_FAILED_TO_OPEN_PREFIX = _('Failed to open ')
|
|
151
|
+
ERR_NO_SUCH_MODEL_IN_FEMPRJ = _('Specified model is not in current project. '
|
|
152
|
+
'Please check opened project. '
|
|
153
|
+
'For example, not "analysis model only" but your .femprj file.')
|
|
154
|
+
WARN_INCONSISTENT_FEMPRJ_PATH = _('.femprj file path of the history csv is invalid. Please certify matching between csv and opening .femprj file.')
|
|
155
|
+
WARN_INVALID_MODEL_NAME = _('Analysis model name of the history csv is invalid. Please certify matching between csv and opening analysis model.')
|
|
156
|
+
WARN_INCONSISTENT_MODEL_NAME = _('Analysis model name of the history csv and opened in Femtet is inconsistent. Please certify matching between csv and opening analysis model.')
|
|
157
|
+
LABEL_TUTORIAL_MODE_SWITCH = _('tutorial mode')
|
|
158
|
+
LABEL_LOAD_SAMPLE_CSV = _('Load Sample CSV')
|
|
159
|
+
LOAD_CSV_POPOVER_HEADER = _('Load CSV')
|
|
160
|
+
LOAD_CSV_POPOVER_BODY = _('Open your optimization result. Then connecting to femtet will start automatically. '
|
|
161
|
+
'Note that in tutorial mode, this button loads the ready-made sample csv and open sample femprj.')
|
|
162
|
+
MAIN_GRAPH_POPOVER_HEADER = _('Main Graph')
|
|
163
|
+
MAIN_GRAPH_POPOVER_BODY = _('Here the optimization history is shown. '
|
|
164
|
+
'Each plot represents single FEM result. '
|
|
165
|
+
'You can pick a result to open the corresponding result in Femtet. ')
|
|
166
|
+
OPEN_PDT_POPOVER_HEADER = _('Open Result')
|
|
167
|
+
OPEN_PDT_POPOVER_BODY = _('After pick a point in the main graph, '
|
|
168
|
+
'This button shows the corresponding FEM result in Femtet.')
|
|
169
|
+
CONNECT_FEMTET_POPOVER_BODY = _('Re-connect to Femtet.')
|
|
170
|
+
ERR_SAMPLE_CSV_NOT_FOUND = _('Sample csv is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`')
|
|
171
|
+
ERR_SAMPLE_FEMPRJ_NOT_FOUND = _('Sample femprj file is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`')
|
|
172
|
+
ERR_FEMPRJ_RESULT_NOT_FOUND = _('Sample femprj result folder is not found. Please consider to re-install pyfemtet by `py -m pip install pyfemtet -U --force-reinstall`')
|
|
173
|
+
|
|
174
|
+
|
pyfemtet/opt/_femopt.py
CHANGED
|
@@ -23,6 +23,7 @@ from pyfemtet.opt._femopt_core import (
|
|
|
23
23
|
OptimizationStatus,
|
|
24
24
|
logger,
|
|
25
25
|
)
|
|
26
|
+
from pyfemtet.message import Msg, encoding
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
class FEMOpt:
|
|
@@ -117,6 +118,7 @@ class FEMOpt:
|
|
|
117
118
|
initial_value (float or None, optional): The initial value of the parameter. Defaults to None. If None, try to get initial value from FEMInterface.
|
|
118
119
|
lower_bound (float or None, optional): The lower bound of the parameter. Defaults to None. However, this argument is required for some algorithms.
|
|
119
120
|
upper_bound (float or None, optional): The upper bound of the parameter. Defaults to None. However, this argument is required for some algorithms.
|
|
121
|
+
step (float or None, optional): The step of parameter. Defaults to None.
|
|
120
122
|
memo (str, optional): Additional information about the parameter. Defaults to ''.
|
|
121
123
|
Raises:
|
|
122
124
|
ValueError: If initial_value is not specified and the value for the given name is also not specified.
|
|
@@ -243,9 +245,7 @@ class FEMOpt:
|
|
|
243
245
|
# strict constraint の場合、solve 前に評価したいので Gogh へのアクセスを禁ずる
|
|
244
246
|
if strict:
|
|
245
247
|
if _is_access_gogh(fun):
|
|
246
|
-
message =
|
|
247
|
-
message += 'デフォルトでは constraint は解析前に評価され, 条件を満たさない場合解析を行いません.'
|
|
248
|
-
message += '拘束に解析結果を含めたい場合は, strict=False を設定してください.'
|
|
248
|
+
message = Msg.ERR_CONTAIN_GOGH_ACCESS_IN_STRICT_CONSTRAINT
|
|
249
249
|
raise Exception(message)
|
|
250
250
|
|
|
251
251
|
self.opt.constraints[name] = Constraint(fun, name, lower_bound, upper_bound, strict, args, kwargs)
|
|
@@ -361,7 +361,7 @@ class FEMOpt:
|
|
|
361
361
|
|
|
362
362
|
# worker が足りない場合はエラー
|
|
363
363
|
if n_parallel > len(worker_addresses):
|
|
364
|
-
raise RuntimeError(f'n_parallel({n_parallel}) > n_workers({len(worker_addresses)}).
|
|
364
|
+
raise RuntimeError(f'n_parallel({n_parallel}) > n_workers({len(worker_addresses)}). There are insufficient number of workers.')
|
|
365
365
|
|
|
366
366
|
# worker が多い場合は閉じる
|
|
367
367
|
if n_parallel < len(worker_addresses):
|
|
@@ -501,7 +501,7 @@ class FEMOpt:
|
|
|
501
501
|
try:
|
|
502
502
|
self.history.save()
|
|
503
503
|
except PermissionError:
|
|
504
|
-
logger.warning(
|
|
504
|
+
logger.warning(Msg.WARN_HISTORY_CSV_NOT_ACCESSIBLE)
|
|
505
505
|
if self.status.get() >= OptimizationStatus.TERMINATED:
|
|
506
506
|
break
|
|
507
507
|
|
|
@@ -522,8 +522,10 @@ class FEMOpt:
|
|
|
522
522
|
# 一応
|
|
523
523
|
t_save_history.join()
|
|
524
524
|
|
|
525
|
-
logger.info(f'計算が終了しました. 実行時間は {int(end - start)} 秒でした。ウィンドウを閉じると終了します.')
|
|
526
|
-
logger.info(f'結果は{self.history.path}を確認してください.')
|
|
525
|
+
# logger.info(f'計算が終了しました. 実行時間は {int(end - start)} 秒でした。ウィンドウを閉じると終了します.')
|
|
526
|
+
# logger.info(f'結果は{self.history.path}を確認してください.')
|
|
527
|
+
logger.info(Msg.OPTIMIZATION_FINISHED)
|
|
528
|
+
logger.info(self.history.path)
|
|
527
529
|
|
|
528
530
|
# ひとつでも crashed ならばフラグを立てる
|
|
529
531
|
if any(opt_crashed_list):
|
|
@@ -555,8 +557,6 @@ class FEMOpt:
|
|
|
555
557
|
logger.info('Terminate actors.')
|
|
556
558
|
sleep(1)
|
|
557
559
|
|
|
558
|
-
# これがないと dash app が落ちないとか問題あるの?
|
|
559
|
-
|
|
560
560
|
# terminate monitor worker
|
|
561
561
|
n_workers = len(self.client.nthreads())
|
|
562
562
|
|