PyFemtet 1.9.0__tar.gz → 1.9.2__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.
Files changed (183) hide show
  1. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/PKG-INFO +1 -1
  2. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/history/_history.py +111 -9
  3. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_interface/_femtet_parametric.py +7 -6
  4. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_interface/femtet_interface.py +2 -1
  5. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyproject.toml +1 -1
  6. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/LICENSE +0 -0
  7. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/LICENSE_THIRD_PARTY.txt +0 -0
  8. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/README.md +0 -0
  9. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/__init__.py +0 -0
  10. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/1. make_pot_and_update_po.bat +0 -0
  11. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/2. build_mo.bat +0 -0
  12. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/__init__.py +0 -0
  13. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/babel.cfg +0 -0
  14. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/i18n.py +0 -0
  15. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
  16. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.po +0 -0
  17. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/locales/messages.pot +0 -0
  18. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_i18n/messages.py +0 -0
  19. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/__init__.py +0 -0
  20. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/closing.py +0 -0
  21. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/dask_util.py +0 -0
  22. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/df_util.py +0 -0
  23. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/excel_macro_util.py +0 -0
  24. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/excel_parse_util.py +0 -0
  25. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/femtet_access_inspection.py +0 -0
  26. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/femtet_autosave.py +0 -0
  27. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/femtet_exit.py +0 -0
  28. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/femtet_version.py +0 -0
  29. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/helper.py +0 -0
  30. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/process_util.py +0 -0
  31. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/sample.xlsx +0 -0
  32. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/solidworks_variable.py +0 -0
  33. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/str_enum.py +0 -0
  34. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/_util/symbol_support_for_param_name.py +0 -0
  35. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/core.py +0 -0
  36. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/dispatch_extensions/__init__.py +0 -0
  37. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/dispatch_extensions/_impl.py +0 -0
  38. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/logger/__init__.py +0 -0
  39. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/logger/_impl.py +0 -0
  40. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/__init__.py +0 -0
  41. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/exceptions.py +0 -0
  42. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/femopt.py +0 -0
  43. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/history/__init__.py +0 -0
  44. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/history/_hypervolume.py +0 -0
  45. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/history/_optimality.py +0 -0
  46. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/__init__.py +0 -0
  47. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_base_interface.py +0 -0
  48. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_dummy_classes.py +0 -0
  49. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_excel_interface/__init__.py +0 -0
  50. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_excel_interface/debug-excel-interface.xlsm +0 -0
  51. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_excel_interface/excel_interface.py +0 -0
  52. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_interface/__init__.py +0 -0
  53. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_nx_interface/__init__.py +0 -0
  54. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_nx_interface/femtet_with_nx_interface.py +0 -0
  55. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.prt +0 -0
  56. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.x_t +0 -0
  57. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_nx_interface/update_model.py +0 -0
  58. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_solidworks/__init__.py +0 -0
  59. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_femtet_with_solidworks/femtet_with_solidworks_interface.py +0 -0
  60. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_multiple_fem_interface.py +0 -0
  61. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_reopen_decorator.py +0 -0
  62. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_solidworks_interface/__init__.py +0 -0
  63. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_solidworks_interface/solidworks_interface.py +0 -0
  64. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_solidworks_interface/sw_const.py +0 -0
  65. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_surrogate_model_interface/__init__.py +0 -0
  66. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_surrogate_model_interface/base_surrogate_interface.py +0 -0
  67. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_surrogate_model_interface/botorch_interface.py +0 -0
  68. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_surrogate_model_interface/debug-pof-botorch.reccsv +0 -0
  69. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_with_excel_settings/__init__.py +0 -0
  70. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/interface/_with_excel_settings/with_excel_settings.py +0 -0
  71. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/meta_script/YAML_Generator.xlsm +0 -0
  72. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/meta_script/__init__.py +0 -0
  73. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/meta_script/__main__.py +0 -0
  74. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/meta_script/sample/sample.bas +0 -0
  75. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/meta_script/sample/sample.femprj +0 -0
  76. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/__init__.py +0 -0
  77. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/_base_optimizer.py +0 -0
  78. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/_trial_queue.py +0 -0
  79. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/__init__.py +0 -0
  80. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_attribute.py +0 -0
  81. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_optimizer.py +0 -0
  82. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/__init__.py +0 -0
  83. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/debug-pof-botorch.reccsv +0 -0
  84. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/enable_nonlinear_constraint.py +0 -0
  85. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/pof_botorch_sampler.py +0 -0
  86. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/optuna_optimizer/wat_ex14_parametric_jp.femprj +0 -0
  87. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/scipy_optimizer/__init__.py +0 -0
  88. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/optimizer/scipy_optimizer/_scipy_optimizer.py +0 -0
  89. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/prediction/__init__.py +0 -0
  90. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/prediction/_botorch_utils.py +0 -0
  91. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/prediction/_gpytorch_modules_extension.py +0 -0
  92. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/prediction/_helper.py +0 -0
  93. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/prediction/_model.py +0 -0
  94. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/problem/__init__.py +0 -0
  95. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/problem/problem.py +0 -0
  96. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/problem/variable_manager/__init__.py +0 -0
  97. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/problem/variable_manager/_string_as_expression.py +0 -0
  98. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/problem/variable_manager/_variable_manager.py +0 -0
  99. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/__init__.py +0 -0
  100. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/_create_wrapped_components.py +0 -0
  101. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/__init__.py +0 -0
  102. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/__main__.py +0 -0
  103. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_base_application.py +0 -0
  104. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_common_pages.py +0 -0
  105. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/__init__.py +0 -0
  106. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/alert_region.py +0 -0
  107. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/control_femtet.py +0 -0
  108. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/detail_graphs.py +0 -0
  109. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/main_graph.py +0 -0
  110. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_complex_components/pm_graph.py +0 -0
  111. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_detail_page.py +0 -0
  112. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_helper.py +0 -0
  113. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_process_monitor/__init__.py +0 -0
  114. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_application.py +0 -0
  115. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_pages.py +0 -0
  116. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/__init__.py +0 -0
  117. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dbc.py +0 -0
  118. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dcc.py +0 -0
  119. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/html.py +0 -0
  120. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/str_enum.py +0 -0
  121. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/.gitignore +0 -0
  122. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/__init__.py +0 -0
  123. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/__main__.py +0 -0
  124. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/_application.py +0 -0
  125. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/_pages.py +0 -0
  126. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.csv +0 -0
  127. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.db +0 -0
  128. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.jpg +0 -0
  129. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.log +0 -0
  130. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.pdt +0 -0
  131. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.jpg +0 -0
  132. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.pdt +0 -0
  133. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.jpg +0 -0
  134. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.pdt +0 -0
  135. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.jpg +0 -0
  136. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.pdt +0 -0
  137. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.jpg +0 -0
  138. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.pdt +0 -0
  139. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.jpg +0 -0
  140. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.pdt +0 -0
  141. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.jpg +0 -0
  142. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.pdt +0 -0
  143. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.jpg +0 -0
  144. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.pdt +0 -0
  145. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.jpg +0 -0
  146. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.pdt +0 -0
  147. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.jpg +0 -0
  148. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.pdt +0 -0
  149. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.jpg +0 -0
  150. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.pdt +0 -0
  151. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.jpg +0 -0
  152. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.pdt +0 -0
  153. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.jpg +0 -0
  154. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.pdt +0 -0
  155. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.jpg +0 -0
  156. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.pdt +0 -0
  157. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.jpg +0 -0
  158. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.pdt +0 -0
  159. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bgr +0 -0
  160. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bnd +0 -0
  161. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.btr +0 -0
  162. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.jpg +0 -0
  163. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.mtl +0 -0
  164. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.pdt +0 -0
  165. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.prm +0 -0
  166. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.jpg +0 -0
  167. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.pdt +0 -0
  168. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.jpg +0 -0
  169. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.pdt +0 -0
  170. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.jpg +0 -0
  171. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.pdt +0 -0
  172. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.jpg +0 -0
  173. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.pdt +0 -0
  174. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.jpg +0 -0
  175. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.pdt +0 -0
  176. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.femprj +0 -0
  177. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/plotter/__init__.py +0 -0
  178. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/plotter/contour_creator.py +0 -0
  179. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/plotter/main_figure_creator.py +0 -0
  180. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/plotter/parallel_plot_creator.py +0 -0
  181. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/visualization/plotter/pm_graph_creator.py +0 -0
  182. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/wat_ex14_parametric_jp.femprj +0 -0
  183. {pyfemtet-1.9.0 → pyfemtet-1.9.2}/pyfemtet/opt/worker_status.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyfemtet
3
- Version: 1.9.0
3
+ Version: 1.9.2
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -372,11 +372,21 @@ class ColumnManager:
372
372
  column_dtypes: dict[str, type]
373
373
  meta_columns: list[str]
374
374
 
375
- @staticmethod
376
- def columns_to_keep_even_if_nan():
377
- return [
378
- "messages",
379
- ]
375
+ def columns_to_keep_even_if_nan(self) -> list[str]:
376
+ out = ["messages"]
377
+ # objective
378
+ for name in self.get_obj_names():
379
+ out.append(name)
380
+ out.append(CorrespondingColumnNameRuler.direction_name(name))
381
+ # constraint
382
+ for name in self.get_cns_names():
383
+ out.append(name)
384
+ out.append(CorrespondingColumnNameRuler.cns_lower_bound_name(name))
385
+ out.append(CorrespondingColumnNameRuler.cns_upper_bound_name(name))
386
+ # other_output
387
+ for name in self.get_other_output_names():
388
+ out.append(name)
389
+ return out
380
390
 
381
391
  def initialize(
382
392
  self,
@@ -955,6 +965,72 @@ class Records:
955
965
  self.loaded_meta_columns = loaded_meta_columns
956
966
  self.loaded_df = loaded_df
957
967
 
968
+ @staticmethod
969
+ def _incompatible_setting_detail(
970
+ category_en: str,
971
+ category_jp: str,
972
+ added: set[str],
973
+ removed: set[str],
974
+ ) -> str | None:
975
+ if not added and not removed:
976
+ return None
977
+ category = _(en_message=category_en, jp_message=category_jp)
978
+ lines = []
979
+ if added:
980
+ lines.append(
981
+ _(
982
+ en_message=" Extra {category}: {names}",
983
+ jp_message=" 余分な{category}: {names}",
984
+ category=category,
985
+ names=", ".join(sorted(added)),
986
+ )
987
+ )
988
+ if removed:
989
+ lines.append(
990
+ _(
991
+ en_message=" Missing {category}: {names}",
992
+ jp_message=" 足りない{category}: {names}",
993
+ category=category,
994
+ names=", ".join(sorted(removed)),
995
+ )
996
+ )
997
+ return "\n".join(lines)
998
+
999
+ @staticmethod
1000
+ def _incompatible_setting_message(details: list[str]) -> str:
1001
+ detail = "\n".join(details)
1002
+ return _(
1003
+ en_message="The current script settings do not match "
1004
+ "the history CSV file loaded via history_path.\n"
1005
+ "\n"
1006
+ "[The current setting incompatibilities]\n"
1007
+ "{detail}\n"
1008
+ "\n"
1009
+ "[Countermeasure]\n"
1010
+ "When resuming optimization with history_path, "
1011
+ "the settings must be compatible with the previous run. "
1012
+ "To fix this, choose one of the following options:\n"
1013
+ " 1. Restore the settings to match the previous run.\n"
1014
+ " 2. Remove the history_path argument to start a new optimization.\n"
1015
+ " 3. Delete the history CSV file (and the .db file with the same name, if it exists) "
1016
+ "to discard the previous history and start fresh.",
1017
+ jp_message="現在のスクリプトの設定が、"
1018
+ "history_path で読み込んだ履歴 CSV ファイルの内容と一致しません。\n"
1019
+ "\n"
1020
+ "[現在の設定の不整合点]\n"
1021
+ "{detail}\n"
1022
+ "\n"
1023
+ "[対策]\n"
1024
+ "history_path を指定して最適化を再開する場合、"
1025
+ "設定は前回の実行と整合している必要があります。"
1026
+ "以下のいずれかの方法で対処してください:\n"
1027
+ " 1. 前回の実行と同じ設定に戻す。\n"
1028
+ " 2. history_path の指定を削除して新しい最適化を開始する。\n"
1029
+ " 3. 履歴 CSV ファイル(および同名の .db ファイルがあればそれも)を削除し、"
1030
+ "前回の履歴を破棄して最初からやり直す。",
1031
+ detail=detail,
1032
+ )
1033
+
958
1034
  def check_problem_compatibility(self):
959
1035
  # 読み込んだデータがないのであれば何もしない
960
1036
  if self.loaded_df is None:
@@ -968,6 +1044,8 @@ class Records:
968
1044
  self.loaded_meta_columns,
969
1045
  )
970
1046
 
1047
+ incompatible_details: list[str] = []
1048
+
971
1049
  # prm_names が過不足ないか
972
1050
  loaded_prm_names = set(
973
1051
  self.column_manager._filter_prm_names(loaded_columns, loaded_meta_columns)
@@ -976,7 +1054,13 @@ class Records:
976
1054
  if not (
977
1055
  len(loaded_prm_names - prm_names) == len(prm_names - loaded_prm_names) == 0
978
1056
  ):
979
- raise RuntimeError("Incompatible parameter setting.")
1057
+ detail = self._incompatible_setting_detail(
1058
+ "parameter", "パラメータ",
1059
+ added=prm_names - loaded_prm_names,
1060
+ removed=loaded_prm_names - prm_names,
1061
+ )
1062
+ if detail:
1063
+ incompatible_details.append(detail)
980
1064
 
981
1065
  # obj_names が増えていないか
982
1066
  loaded_obj_names = set(
@@ -986,7 +1070,13 @@ class Records:
986
1070
  )
987
1071
  obj_names = set(self.column_manager.get_obj_names())
988
1072
  if len(obj_names - loaded_obj_names) > 0:
989
- raise RuntimeError("Incompatible objective setting.")
1073
+ detail = self._incompatible_setting_detail(
1074
+ "objective", "目的関数",
1075
+ added=obj_names - loaded_obj_names,
1076
+ removed=set(),
1077
+ )
1078
+ if detail:
1079
+ incompatible_details.append(detail)
990
1080
 
991
1081
  # cns_names が過不足ないか
992
1082
  # TODO: cns の上下限は変更されてはならない。
@@ -999,7 +1089,18 @@ class Records:
999
1089
  if not (
1000
1090
  len(loaded_cns_names - cns_names) == len(cns_names - loaded_cns_names) == 0
1001
1091
  ):
1002
- raise RuntimeError("Incompatible constraint setting.")
1092
+ detail = self._incompatible_setting_detail(
1093
+ "constraint", "拘束条件",
1094
+ added=cns_names - loaded_cns_names,
1095
+ removed=loaded_cns_names - cns_names,
1096
+ )
1097
+ if detail:
1098
+ incompatible_details.append(detail)
1099
+
1100
+ if incompatible_details:
1101
+ raise RuntimeError(
1102
+ self._incompatible_setting_message(incompatible_details)
1103
+ )
1003
1104
 
1004
1105
  def reinitialize_record_with_loaded_data(
1005
1106
  self, column_order_mode: str = ColumnOrderMode.per_category
@@ -1126,7 +1227,7 @@ class Records:
1126
1227
  self.df_wrapper.set_df(df)
1127
1228
 
1128
1229
  def remove_nan_columns(
1129
- self, df, meta_columns, columns_to_keep: str | list[str] = None
1230
+ self, df, meta_columns, columns_to_keep: list[str] | None = None
1130
1231
  ) -> tuple[pd.DataFrame, tuple[str]]:
1131
1232
  """
1132
1233
 
@@ -1134,6 +1235,7 @@ class Records:
1134
1235
  df:
1135
1236
  meta_columns:
1136
1237
  columns_to_keep: Allowing these columns to all NaN values.
1238
+ If None, use self.column_manager.columns_to_keep_even_if_nan().
1137
1239
 
1138
1240
  Returns:
1139
1241
  Removed DataFrame and corresponding meta_columns.
@@ -243,7 +243,7 @@ def _parametric_objective(Femtet, parametric_result_index):
243
243
  return dll.GetPrmResult(parametric_result_index)
244
244
 
245
245
 
246
- def solve_via_parametric_dll(Femtet) -> bool:
246
+ def solve_via_parametric_dll(Femtet, clear_sweep_table: bool = True) -> bool:
247
247
  csv_processor = get_csv_processor(Femtet)
248
248
 
249
249
  # remove previous csv if exists
@@ -255,11 +255,12 @@ def solve_via_parametric_dll(Femtet) -> bool:
255
255
  dll = _get_dll_with_set_femtet(Femtet)
256
256
 
257
257
  # reset existing sweep table
258
- dll.ClearPrmSweepTable.restype = ctypes.c_bool
259
- succeed = dll.ClearPrmSweepTable()
260
- if not succeed:
261
- logger.error('Failed to remove existing sweep table!') # 通常ありえないので error
262
- return False
258
+ if clear_sweep_table:
259
+ dll.ClearPrmSweepTable.restype = ctypes.c_bool
260
+ succeed = dll.ClearPrmSweepTable()
261
+ if not succeed:
262
+ logger.error('Failed to remove existing sweep table!') # 通常ありえないので error
263
+ return False
263
264
 
264
265
  # solve
265
266
  dll.PrmCalcExecute.restype = ctypes.c_bool
@@ -174,6 +174,7 @@ class FemtetInterface(COMInterface):
174
174
  self._warn_if_undefined_variable = True
175
175
  self.api_response_warning_time = 10 # mesh, solve, re-execute を除くマクロ実行警告時間
176
176
  self.save_screenshot: Literal["result", "model", "none"] = "model"
177
+ self._clear_parametric_sweep_table: bool = True
177
178
 
178
179
  # connect to Femtet
179
180
  self._connect_and_open_femtet()
@@ -1011,7 +1012,7 @@ class FemtetInterface(COMInterface):
1011
1012
  if_error=SolveError,
1012
1013
  error_message=Msg.ERR_PARAMETRIC_SOLVE_FAILED,
1013
1014
  is_Gaudi_method=True,
1014
- args=(self.Femtet,),
1015
+ args=(self.Femtet, self._clear_parametric_sweep_table),
1015
1016
  )
1016
1017
 
1017
1018
  # parametric analysis の場合
@@ -34,7 +34,7 @@ dependencies = [
34
34
 
35
35
  #[project.optional-dependencies]
36
36
  #brep = ["brepmatching>=0.1.8,<0.2"]
37
- version = "1.9.0"
37
+ version = "1.9.2"
38
38
 
39
39
  [project.urls]
40
40
  Repository = "https://github.com/pyfemtet/pyfemtet"
File without changes
File without changes
File without changes
File without changes