pyfemtet 1.3.2__tar.gz → 1.4.0__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.

Files changed (181) hide show
  1. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/PKG-INFO +3 -2
  2. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_interface/femtet_interface.py +8 -2
  3. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/_base_optimizer.py +1 -1
  4. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/scipy_optimizer/_scipy_optimizer.py +88 -47
  5. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/plotter/main_figure_creator.py +6 -0
  6. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyproject.toml +3 -2
  7. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/LICENSE +0 -0
  8. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/LICENSE_THIRD_PARTY.txt +0 -0
  9. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/README.md +0 -0
  10. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/__init__.py +0 -0
  11. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/1. make_pot_and_update_po.bat +0 -0
  12. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/2. build_mo.bat +0 -0
  13. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/__init__.py +0 -0
  14. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/babel.cfg +0 -0
  15. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/i18n.py +0 -0
  16. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
  17. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.po +0 -0
  18. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/locales/messages.pot +0 -0
  19. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_i18n/messages.py +0 -0
  20. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/__init__.py +0 -0
  21. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/closing.py +0 -0
  22. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/dask_util.py +0 -0
  23. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/df_util.py +0 -0
  24. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/excel_macro_util.py +0 -0
  25. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/excel_parse_util.py +0 -0
  26. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/femtet_access_inspection.py +0 -0
  27. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/femtet_autosave.py +0 -0
  28. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/femtet_exit.py +0 -0
  29. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/femtet_version.py +0 -0
  30. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/helper.py +0 -0
  31. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/process_util.py +0 -0
  32. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/sample.xlsx +0 -0
  33. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/solidworks_variable.py +0 -0
  34. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/str_enum.py +0 -0
  35. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/_util/symbol_support_for_param_name.py +0 -0
  36. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/core.py +0 -0
  37. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/dispatch_extensions/__init__.py +0 -0
  38. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/dispatch_extensions/_impl.py +0 -0
  39. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/logger/__init__.py +0 -0
  40. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/logger/_impl.py +0 -0
  41. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/__init__.py +0 -0
  42. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/exceptions.py +0 -0
  43. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/femopt.py +0 -0
  44. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/history/__init__.py +0 -0
  45. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/history/_history.py +0 -0
  46. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/history/_hypervolume.py +0 -0
  47. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/history/_optimality.py +0 -0
  48. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/__init__.py +0 -0
  49. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_base_interface.py +0 -0
  50. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_dummy_classes.py +0 -0
  51. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_excel_interface/__init__.py +0 -0
  52. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_excel_interface/debug-excel-interface.xlsm +0 -0
  53. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_excel_interface/excel_interface.py +0 -0
  54. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_interface/__init__.py +0 -0
  55. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_interface/_femtet_parametric.py +0 -0
  56. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_nx_interface/__init__.py +0 -0
  57. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_nx_interface/femtet_with_nx_interface.py +0 -0
  58. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.prt +0 -0
  59. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.x_t +0 -0
  60. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_nx_interface/update_model.py +0 -0
  61. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_solidworks/__init__.py +0 -0
  62. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_femtet_with_solidworks/femtet_with_solidworks_interface.py +0 -0
  63. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_solidworks_interface/__init__.py +0 -0
  64. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_solidworks_interface/solidworks_interface.py +0 -0
  65. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_solidworks_interface/sw_const.py +0 -0
  66. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_surrogate_model_interface/__init__.py +0 -0
  67. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_surrogate_model_interface/base_surrogate_interface.py +0 -0
  68. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_surrogate_model_interface/botorch_interface.py +0 -0
  69. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_surrogate_model_interface/debug-pof-botorch.reccsv +0 -0
  70. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_with_excel_settings/__init__.py +0 -0
  71. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/interface/_with_excel_settings/with_excel_settings.py +0 -0
  72. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/meta_script/YAML_Generator.xlsm +0 -0
  73. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/meta_script/__init__.py +0 -0
  74. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/meta_script/__main__.py +0 -0
  75. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/meta_script/sample/sample.bas +0 -0
  76. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/meta_script/sample/sample.femprj +0 -0
  77. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/__init__.py +0 -0
  78. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/_trial_queue.py +0 -0
  79. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/__init__.py +0 -0
  80. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_attribute.py +0 -0
  81. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_optimizer.py +0 -0
  82. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/__init__.py +0 -0
  83. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/debug-pof-botorch.reccsv +0 -0
  84. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/enable_nonlinear_constraint.py +0 -0
  85. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/pof_botorch_sampler.py +0 -0
  86. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/optuna_optimizer/wat_ex14_parametric_jp.femprj +0 -0
  87. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/optimizer/scipy_optimizer/__init__.py +0 -0
  88. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/prediction/__init__.py +0 -0
  89. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/prediction/_botorch_utils.py +0 -0
  90. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/prediction/_gpytorch_modules_extension.py +0 -0
  91. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/prediction/_helper.py +0 -0
  92. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/prediction/_model.py +0 -0
  93. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/problem/__init__.py +0 -0
  94. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/problem/problem.py +0 -0
  95. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/problem/variable_manager/__init__.py +0 -0
  96. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/problem/variable_manager/_string_as_expression.py +0 -0
  97. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/problem/variable_manager/_variable_manager.py +0 -0
  98. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/__init__.py +0 -0
  99. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/_create_wrapped_components.py +0 -0
  100. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/__init__.py +0 -0
  101. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/__main__.py +0 -0
  102. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_base_application.py +0 -0
  103. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_common_pages.py +0 -0
  104. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/__init__.py +0 -0
  105. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/alert_region.py +0 -0
  106. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/control_femtet.py +0 -0
  107. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/detail_graphs.py +0 -0
  108. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/main_graph.py +0 -0
  109. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_complex_components/pm_graph.py +0 -0
  110. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_detail_page.py +0 -0
  111. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_helper.py +0 -0
  112. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_process_monitor/__init__.py +0 -0
  113. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_application.py +0 -0
  114. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_pages.py +0 -0
  115. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/__init__.py +0 -0
  116. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dbc.py +0 -0
  117. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dcc.py +0 -0
  118. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/html.py +0 -0
  119. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/str_enum.py +0 -0
  120. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/.gitignore +0 -0
  121. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/__init__.py +0 -0
  122. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/__main__.py +0 -0
  123. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/_application.py +0 -0
  124. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/_pages.py +0 -0
  125. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.csv +0 -0
  126. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.db +0 -0
  127. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.jpg +0 -0
  128. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.log +0 -0
  129. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.pdt +0 -0
  130. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.jpg +0 -0
  131. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.pdt +0 -0
  132. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.jpg +0 -0
  133. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.pdt +0 -0
  134. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.jpg +0 -0
  135. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.pdt +0 -0
  136. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.jpg +0 -0
  137. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.pdt +0 -0
  138. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.jpg +0 -0
  139. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.pdt +0 -0
  140. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.jpg +0 -0
  141. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.pdt +0 -0
  142. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.jpg +0 -0
  143. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.pdt +0 -0
  144. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.jpg +0 -0
  145. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.pdt +0 -0
  146. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.jpg +0 -0
  147. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.pdt +0 -0
  148. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.jpg +0 -0
  149. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.pdt +0 -0
  150. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.jpg +0 -0
  151. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.pdt +0 -0
  152. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.jpg +0 -0
  153. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.pdt +0 -0
  154. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.jpg +0 -0
  155. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.pdt +0 -0
  156. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.jpg +0 -0
  157. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.pdt +0 -0
  158. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bgr +0 -0
  159. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bnd +0 -0
  160. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.btr +0 -0
  161. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.jpg +0 -0
  162. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.mtl +0 -0
  163. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.pdt +0 -0
  164. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.prm +0 -0
  165. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.jpg +0 -0
  166. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.pdt +0 -0
  167. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.jpg +0 -0
  168. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.pdt +0 -0
  169. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.jpg +0 -0
  170. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.pdt +0 -0
  171. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.jpg +0 -0
  172. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.pdt +0 -0
  173. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.jpg +0 -0
  174. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.pdt +0 -0
  175. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.femprj +0 -0
  176. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/plotter/__init__.py +0 -0
  177. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/plotter/contour_creator.py +0 -0
  178. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/plotter/parallel_plot_creator.py +0 -0
  179. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/visualization/plotter/pm_graph_creator.py +0 -0
  180. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/wat_ex14_parametric_jp.femprj +0 -0
  181. {pyfemtet-1.3.2 → pyfemtet-1.4.0}/pyfemtet/opt/worker_status.py +0 -0
@@ -1,18 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyfemtet
3
- Version: 1.3.2
3
+ Version: 1.4.0
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
7
7
  License-File: LICENSE_THIRD_PARTY.txt
8
8
  Author: pyfemtet
9
9
  Author-email: 148934231+pyfemtet@users.noreply.github.com
10
- Requires-Python: >= 3.10, < 3.14
10
+ Requires-Python: >= 3.10, < 3.15
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
16
17
  Requires-Dist: babel (>=2.15.0,<3)
17
18
  Requires-Dist: botorch (>=0.12.0,<0.15.0)
18
19
  Requires-Dist: colorlog (>=6.8.0,<7)
@@ -425,12 +425,18 @@ class FemtetInterface(COMInterface):
425
425
  # 開く
426
426
  if self.model_name is None:
427
427
  result = self.Femtet.LoadProject(self.femprj_path, True)
428
+ if not result:
429
+ self.Femtet.ShowLastError()
428
430
  else:
431
+ result = self.Femtet.LoadProject(self.femprj_path, True)
432
+ if not result:
433
+ self.Femtet.ShowLastError()
434
+
429
435
  result = self.Femtet.LoadProjectAndAnalysisModel(
430
436
  self.femprj_path, self.model_name, True
431
437
  )
432
- if not result:
433
- self.Femtet.ShowLastError()
438
+ if not result:
439
+ self.Femtet.ShowLastError()
434
440
 
435
441
  def _connect_and_open_femtet(self):
436
442
  """Connects to a Femtet process and open the femprj.
@@ -879,7 +879,7 @@ class AbstractOptimizer:
879
879
 
880
880
  if os.environ.get('DEBUG_FEMOPT_PARALLEL'):
881
881
  if isinstance(worker_idx, int):
882
- sleep(worker_idx)
882
+ sleep((worker_idx + 1) * 2)
883
883
 
884
884
  self.run()
885
885
 
@@ -2,7 +2,8 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Callable
4
4
 
5
- from contextlib import suppress
5
+ from contextlib import suppress, contextmanager
6
+ from time import time
6
7
 
7
8
  import numpy as np
8
9
  from scipy.optimize import minimize, OptimizeResult
@@ -10,9 +11,11 @@ from scipy.optimize import NonlinearConstraint
10
11
 
11
12
  from pyfemtet._i18n import Msg, _
12
13
  from pyfemtet._util.closing import closing
14
+ from pyfemtet._util.dask_util import get_client, Lock
13
15
  from pyfemtet.opt.problem.variable_manager import *
14
16
  from pyfemtet.opt.problem.problem import *
15
17
  from pyfemtet.opt.exceptions import *
18
+ from pyfemtet.opt.history import MAIN_FILTER
16
19
  from pyfemtet.logger import get_module_logger
17
20
 
18
21
  from pyfemtet.opt.optimizer._base_optimizer import *
@@ -26,6 +29,10 @@ __all__ = [
26
29
  logger = get_module_logger('opt.optimizer', False)
27
30
 
28
31
 
32
+ class InterruptScipyMinimize(Exception):
33
+ pass
34
+
35
+
29
36
  class _ScipyCallback:
30
37
 
31
38
  def __init__(self, opt: ScipyOptimizer):
@@ -56,9 +63,6 @@ class ScipyOptimizer(AbstractOptimizer):
56
63
 
57
64
  """
58
65
 
59
- _timeout: None = None
60
- _n_trials: None = None
61
-
62
66
  def __init__(self, method: str = None, tol=None):
63
67
  super().__init__()
64
68
 
@@ -67,30 +71,42 @@ class ScipyOptimizer(AbstractOptimizer):
67
71
  self.options = {}
68
72
  self.constraint_enhancement = 0.001
69
73
  self.constraint_scaling = 1.
74
+ self._scheduler_address: str | None = None
75
+ self.timeout = None
76
+ self._time_start = None
77
+ self.__n_succeeded_trials = None
70
78
 
71
79
  @property
72
- def timeout(self):
73
- return self._timeout
74
-
75
- @timeout.setter
76
- def timeout(self, value):
77
- if value is not None:
78
- raise NotImplementedError(_(
79
- en_message='`ScipyOptimizer` cannot use timeout.',
80
- jp_message='`ScipyOptimizer` では timeout は指定できません。'
81
- ))
82
-
83
- @property
84
- def n_trials(self):
85
- return self._n_trials
86
-
87
- @n_trials.setter
88
- def n_trials(self, value):
89
- if value is not None:
90
- raise NotImplementedError(_(
91
- en_message='`ScipyOptimizer` cannot use n_trials.',
92
- jp_message='`ScipyOptimizer` では n_trials は指定できません。'
93
- ))
80
+ def _n_succeeded_trials_in_current_optimization(self) -> int | None: # オーバーライド不可
81
+ out = None
82
+ client = get_client(self._scheduler_address)
83
+ if client is not None:
84
+ raise NotImplementedError(
85
+ "ScipyOptimizer does not support parallel computing."
86
+ )
87
+ if self.__n_succeeded_trials is None:
88
+ self.__n_succeeded_trials = 0
89
+ return self.__n_succeeded_trials
90
+
91
+ @_n_succeeded_trials_in_current_optimization.setter
92
+ def _n_succeeded_trials_in_current_optimization(self, value: int | None): # オーバーライド不可
93
+ client = get_client(self._scheduler_address)
94
+ with Lock('scipy_n_succeeded_trials'):
95
+ if client is not None:
96
+ raise NotImplementedError('ScipyOptimizer does not support parallel computing.')
97
+ self.__n_succeeded_trials = value
98
+
99
+ def _per_solve_callback(self):
100
+ df = self.history.get_df(equality_filters=MAIN_FILTER)
101
+ self._n_succeeded_trials_in_current_optimization = (
102
+ 1 + self._n_succeeded_trials_in_current_optimization
103
+ )
104
+ if self.n_trials is not None:
105
+ if self._n_succeeded_trials_in_current_optimization >= self.n_trials:
106
+ raise InterruptScipyMinimize
107
+ if self.timeout is not None:
108
+ if time() - self._time_start >= self.timeout:
109
+ raise InterruptScipyMinimize
94
110
 
95
111
  def add_trial(self, parameters: dict[str, SupportedVariableTypes]):
96
112
  raise NotImplementedError(_(
@@ -98,8 +114,7 @@ class ScipyOptimizer(AbstractOptimizer):
98
114
  jp_message='`ScipyOptimizer` では `add_trial()` は使えません。',
99
115
  ))
100
116
 
101
- def _get_x0(self) -> np.ndarray:
102
-
117
+ def _get_x0(self, after_finalizing_history=False) -> np.ndarray:
103
118
  # params を取得
104
119
  params: dict[str, Parameter] = self.variable_manager.get_variables(
105
120
  filter='parameter', format='raw'
@@ -112,7 +127,17 @@ class ScipyOptimizer(AbstractOptimizer):
112
127
  jp_message='Scipy では数値パラメータのみ最適化できます。'
113
128
  ))
114
129
 
115
- # params のうち fix == True のものを除く
130
+ # リスタートならば最適値で初期値を上書きする
131
+ if after_finalizing_history:
132
+ df = self.history.get_df()
133
+ optimal_trials = df[df["optimality"]]
134
+ if len(optimal_trials) > 0:
135
+ optimal_trial = optimal_trials.iloc[-1]
136
+ for prm_name in params.keys():
137
+ if prm_name in optimal_trial:
138
+ params[prm_name].value = optimal_trial[prm_name]
139
+
140
+ # fix == True のものを除いて初期値を作成
116
141
  x0 = np.array([p.value for p in params.values() if not p.properties.get('fix', False)])
117
142
 
118
143
  return x0
@@ -133,8 +158,13 @@ class ScipyOptimizer(AbstractOptimizer):
133
158
  logger.warning(Msg.WARN_SCIPY_NELDER_MEAD_BOUND)
134
159
 
135
160
  def _setup_before_parallel(self):
136
-
137
161
  if not self._done_setup_before_parallel:
162
+ # 並列プロセスは起動のラグがあるので
163
+ # すべての並列プロセスで起算時刻を同じにしたい
164
+ self._time_start = time()
165
+ # 別のプロセスが計算を始めてから自分のプロセスが上書きし内容
166
+ # ここで初期化
167
+ self._n_succeeded_trials_in_current_optimization = 0
138
168
 
139
169
  super()._setup_before_parallel() # flag inside
140
170
 
@@ -343,9 +373,7 @@ class ScipyOptimizer(AbstractOptimizer):
343
373
  ) from e
344
374
 
345
375
  def _objective(self, xk: np.ndarray) -> float:
346
-
347
376
  with self._logging():
348
-
349
377
  vm = self.variable_manager
350
378
 
351
379
  # parameter suggestion
@@ -357,6 +385,7 @@ class ScipyOptimizer(AbstractOptimizer):
357
385
  # process main fidelity model
358
386
  solve_set = self._get_solve_set()
359
387
  f_return = solve_set.solve(x)
388
+ self._per_solve_callback()
360
389
  assert f_return is not None
361
390
  dict_y_internal = f_return[1]
362
391
  y_internal: float = tuple(dict_y_internal.values())[0] # type: ignore
@@ -364,26 +393,38 @@ class ScipyOptimizer(AbstractOptimizer):
364
393
  return y_internal
365
394
 
366
395
  def run(self):
367
-
368
396
  # ===== finalize =====
369
397
  self._finalize()
370
398
 
371
399
  # ===== construct x0 =====
372
- x0 = self._get_x0()
400
+ x0 = self._get_x0(after_finalizing_history=True)
401
+
402
+ # ===== 終了条件 =====
403
+ # In case that setup_before_parallel is not called
404
+ if self._time_start is None:
405
+ self._time_start = time()
406
+ if self._n_succeeded_trials_in_current_optimization is None:
407
+ self._n_succeeded_trials_in_current_optimization = 0
373
408
 
374
409
  # ===== run =====
375
410
  with closing(self.fem):
376
411
 
377
- with self._setting_status(), suppress(InterruptOptimization):
378
-
379
- minimize(
380
- self._objective,
381
- x0,
382
- args=(),
383
- method=self.method,
384
- bounds=self._get_scipy_bounds(),
385
- constraints=self._get_scipy_constraints(),
386
- tol=self.tol,
387
- callback=self._get_scipy_callback(),
388
- options=self.options,
389
- )
412
+ with self._setting_status(), \
413
+ suppress(InterruptOptimization), \
414
+ suppress(InterruptScipyMinimize):
415
+
416
+ try:
417
+ minimize(
418
+ self._objective,
419
+ x0,
420
+ args=(),
421
+ method=self.method,
422
+ bounds=self._get_scipy_bounds(),
423
+ constraints=self._get_scipy_constraints(),
424
+ tol=self.tol,
425
+ callback=self._get_scipy_callback(),
426
+ options=self.options,
427
+ )
428
+ finally:
429
+ self._time_start = None
430
+ self._n_succeeded_trials_in_current_optimization = None
@@ -98,6 +98,12 @@ def get_hypervolume_plot(_: History, df: pd.DataFrame) -> go.Figure:
98
98
  # メインデータを抽出
99
99
  df = get_partial_df(df, equality_filters=MAIN_FILTER)
100
100
 
101
+ # 成功した試行のみを抽出
102
+ df = df[df['feasibility']]
103
+
104
+ # 番号を振り直し
105
+ df['trial'] = range(1, len(df) + 1)
106
+
101
107
  # create figure
102
108
  fig = px.line(
103
109
  df,
@@ -3,7 +3,7 @@ name = "pyfemtet"
3
3
  dynamic = []
4
4
  description = "Design parameter optimization using Femtet."
5
5
  authors = [{ name = "pyfemtet", email = "148934231+pyfemtet@users.noreply.github.com" }]
6
- requires-python = ">= 3.10, < 3.14"
6
+ requires-python = ">= 3.10, < 3.15"
7
7
  readme = "README.md"
8
8
  license = "MIT"
9
9
  dependencies = [
@@ -33,7 +33,7 @@ dependencies = [
33
33
 
34
34
  #[project.optional-dependencies]
35
35
  #brep = ["brepmatching>=0.1.8,<0.2"]
36
- version = "1.3.2"
36
+ version = "1.4.0"
37
37
 
38
38
  [project.urls]
39
39
  Repository = "https://github.com/pyfemtet/pyfemtet"
@@ -56,6 +56,7 @@ dev = [
56
56
  "pytest-dashboard>=2.0.0",
57
57
  "pytest-cov>=6.1.1",
58
58
  "pytest-reporter-html-dots>=0.11.0",
59
+ "esbonio>=0.12.0",
59
60
  ]
60
61
 
61
62
  [tool.uv-dynamic-versioning]
File without changes
File without changes
File without changes
File without changes