pyfemtet 1.0.1__tar.gz → 1.0.3__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 (171) hide show
  1. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/PKG-INFO +1 -1
  2. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/df_util.py +3 -0
  3. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/history/_history.py +1 -3
  4. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_base_interface.py +3 -3
  5. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_excel_interface/excel_interface.py +6 -6
  6. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_interface/femtet_interface.py +8 -8
  7. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_nx_interface/femtet_with_nx_interface.py +10 -3
  8. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_solidworks/femtet_with_solidworks_interface.py +2 -2
  9. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_solidworks_interface/solidworks_interface.py +3 -3
  10. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_surrogate_model_interface/botorch_interface.py +2 -2
  11. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_with_excel_settings/with_excel_settings.py +2 -2
  12. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/_base_optimizer.py +6 -4
  13. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_optimizer.py +2 -3
  14. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/enable_nonlinear_constraint.py +3 -1
  15. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/scipy_optimizer/_scipy_optimizer.py +4 -4
  16. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/_pages.py +8 -2
  17. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyproject.toml +1 -1
  18. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/LICENSE +0 -0
  19. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/LICENSE_THIRD_PARTY.txt +0 -0
  20. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/README.md +0 -0
  21. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/__init__.py +0 -0
  22. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/1. make_pot_and_update_po.bat +0 -0
  23. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/2. build_mo.bat +0 -0
  24. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/__init__.py +0 -0
  25. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/babel.cfg +0 -0
  26. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/i18n.py +0 -0
  27. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.mo +0 -0
  28. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/locales/ja/LC_MESSAGES/messages.po +0 -0
  29. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/locales/messages.pot +0 -0
  30. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_i18n/messages.py +0 -0
  31. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/__init__.py +0 -0
  32. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/closing.py +0 -0
  33. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/dask_util.py +0 -0
  34. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/excel_macro_util.py +0 -0
  35. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/excel_parse_util.py +0 -0
  36. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/femtet_access_inspection.py +0 -0
  37. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/femtet_autosave.py +0 -0
  38. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/femtet_exit.py +0 -0
  39. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/femtet_version.py +0 -0
  40. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/helper.py +0 -0
  41. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/process_util.py +0 -0
  42. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/sample.xlsx +0 -0
  43. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/_util/str_enum.py +0 -0
  44. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/core.py +0 -0
  45. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/dispatch_extensions/__init__.py +0 -0
  46. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/dispatch_extensions/_impl.py +0 -0
  47. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/logger/__init__.py +0 -0
  48. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/logger/_impl.py +0 -0
  49. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/__init__.py +0 -0
  50. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/exceptions.py +0 -0
  51. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/femopt.py +0 -0
  52. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/history/__init__.py +0 -0
  53. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/history/_hypervolume.py +0 -0
  54. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/history/_optimality.py +0 -0
  55. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/__init__.py +0 -0
  56. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_excel_interface/__init__.py +0 -0
  57. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_excel_interface/debug-excel-interface.xlsm +0 -0
  58. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_interface/__init__.py +0 -0
  59. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_interface/_femtet_parametric.py +0 -0
  60. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_nx_interface/__init__.py +0 -0
  61. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.prt +0 -0
  62. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_nx_interface/model1.x_t +0 -0
  63. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_nx_interface/update_model.py +0 -0
  64. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_femtet_with_solidworks/__init__.py +0 -0
  65. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_solidworks_interface/__init__.py +0 -0
  66. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_surrogate_model_interface/__init__.py +0 -0
  67. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_surrogate_model_interface/base_surrogate_interface.py +0 -0
  68. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_surrogate_model_interface/debug-pof-botorch.reccsv +0 -0
  69. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/interface/_with_excel_settings/__init__.py +0 -0
  70. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/meta_script/YAML_Generator.xlsm +0 -0
  71. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/meta_script/__init__.py +0 -0
  72. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/meta_script/__main__.py +0 -0
  73. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/meta_script/sample/sample.bas +0 -0
  74. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/meta_script/sample/sample.femprj +0 -0
  75. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/__init__.py +0 -0
  76. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/__init__.py +0 -0
  77. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_optuna_attribute.py +0 -0
  78. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/__init__.py +0 -0
  79. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/debug-pof-botorch.reccsv +0 -0
  80. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/_pof_botorch/pof_botorch_sampler.py +0 -0
  81. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/optuna_optimizer/wat_ex14_parametric_jp.femprj +0 -0
  82. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/optimizer/scipy_optimizer/__init__.py +0 -0
  83. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/prediction/__init__.py +0 -0
  84. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/prediction/_botorch_utils.py +0 -0
  85. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/prediction/_gpytorch_modules_extension.py +0 -0
  86. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/prediction/_helper.py +0 -0
  87. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/prediction/_model.py +0 -0
  88. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/problem/__init__.py +0 -0
  89. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/problem/problem.py +0 -0
  90. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/problem/variable_manager/__init__.py +0 -0
  91. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/problem/variable_manager/_string_as_expression.py +0 -0
  92. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/problem/variable_manager/_variable_manager.py +0 -0
  93. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/__init__.py +0 -0
  94. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/_create_wrapped_components.py +0 -0
  95. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/__init__.py +0 -0
  96. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/__main__.py +0 -0
  97. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_base_application.py +0 -0
  98. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_common_pages.py +0 -0
  99. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_complex_components/__init__.py +0 -0
  100. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_complex_components/alert_region.py +0 -0
  101. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_complex_components/control_femtet.py +0 -0
  102. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_complex_components/main_graph.py +0 -0
  103. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_complex_components/pm_graph.py +0 -0
  104. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_process_monitor/__init__.py +0 -0
  105. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_application.py +0 -0
  106. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_process_monitor/_pages.py +0 -0
  107. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/__init__.py +0 -0
  108. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dbc.py +0 -0
  109. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/dcc.py +0 -0
  110. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/html.py +0 -0
  111. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/_wrapped_components/str_enum.py +0 -0
  112. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/.gitignore +0 -0
  113. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/__init__.py +0 -0
  114. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/__main__.py +0 -0
  115. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/_application.py +0 -0
  116. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.csv +0 -0
  117. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08.db +0 -0
  118. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.jpg +0 -0
  119. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.log +0 -0
  120. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8.pdt +0 -0
  121. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.jpg +0 -0
  122. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_1.pdt +0 -0
  123. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.jpg +0 -0
  124. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_10.pdt +0 -0
  125. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.jpg +0 -0
  126. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_11.pdt +0 -0
  127. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.jpg +0 -0
  128. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_12.pdt +0 -0
  129. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.jpg +0 -0
  130. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_13.pdt +0 -0
  131. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.jpg +0 -0
  132. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_14.pdt +0 -0
  133. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.jpg +0 -0
  134. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_15.pdt +0 -0
  135. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.jpg +0 -0
  136. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_16.pdt +0 -0
  137. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.jpg +0 -0
  138. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_17.pdt +0 -0
  139. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.jpg +0 -0
  140. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_18.pdt +0 -0
  141. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.jpg +0 -0
  142. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_19.pdt +0 -0
  143. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.jpg +0 -0
  144. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_2.pdt +0 -0
  145. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.jpg +0 -0
  146. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_20.pdt +0 -0
  147. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.jpg +0 -0
  148. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_3.pdt +0 -0
  149. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bgr +0 -0
  150. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.bnd +0 -0
  151. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.btr +0 -0
  152. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.jpg +0 -0
  153. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.mtl +0 -0
  154. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.pdt +0 -0
  155. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_4.prm +0 -0
  156. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.jpg +0 -0
  157. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_5.pdt +0 -0
  158. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.jpg +0 -0
  159. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_6.pdt +0 -0
  160. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.jpg +0 -0
  161. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_7.pdt +0 -0
  162. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.jpg +0 -0
  163. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_8.pdt +0 -0
  164. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.jpg +0 -0
  165. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.Results/ex8_trial_9.pdt +0 -0
  166. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/history_viewer/result_viewer/tutorial_files/tutorial_gau_ex08_parametric.femprj +0 -0
  167. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/plotter/__init__.py +0 -0
  168. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/plotter/main_figure_creator.py +0 -0
  169. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/visualization/plotter/pm_graph_creator.py +0 -0
  170. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/wat_ex14_parametric_jp.femprj +0 -0
  171. {pyfemtet-1.0.1 → pyfemtet-1.0.3}/pyfemtet/opt/worker_status.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyfemtet
3
- Version: 1.0.1
3
+ Version: 1.0.3
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License: MIT
6
6
  Author: kazuma.naito
@@ -9,6 +9,9 @@ __all__ = [
9
9
 
10
10
 
11
11
  def get_index(df, equality_filters):
12
+ # 値渡しに変換
13
+ equality_filters = equality_filters.copy()
14
+
12
15
  # フィルタ条件に一致する行のインデックスを取得
13
16
 
14
17
  # na との == での比較は常に False なので別処理するために別リストを作る
@@ -1115,8 +1115,6 @@ class History:
1115
1115
  when the optimization process starts.
1116
1116
  """
1117
1117
 
1118
- MAIN_FILTER = MAIN_FILTER
1119
-
1120
1118
  def __init__(self):
1121
1119
  self._records = Records()
1122
1120
  self.path: str | None = None
@@ -1275,7 +1273,7 @@ class History:
1275
1273
  # フィデリティの話は現在解析を実行している opt が
1276
1274
  # 必要なので、recording メソッドの引数に
1277
1275
  # それを追加する
1278
- df = self.get_df(equality_filters=self.MAIN_FILTER)
1276
+ df = self.get_df(equality_filters=MAIN_FILTER)
1279
1277
 
1280
1278
  if client is not None:
1281
1279
  client.run_on_scheduler(
@@ -22,7 +22,7 @@ except ModuleNotFoundError:
22
22
 
23
23
  from pyfemtet._util.dask_util import *
24
24
  from pyfemtet.logger import get_module_logger
25
- from pyfemtet.opt.problem.variable_manager import SupportedVariableTypes
25
+ from pyfemtet.opt.problem.problem import *
26
26
 
27
27
  logger = get_module_logger('opt.interface', False)
28
28
 
@@ -39,12 +39,12 @@ class AbstractFEMInterface:
39
39
 
40
40
  kwargs: dict = {}
41
41
  _load_problem_from_fem: bool = False
42
- current_prm_values: dict[str, SupportedVariableTypes]
42
+ current_prm_values: TrialInput
43
43
  _tmp_dir: tempfile.TemporaryDirectory
44
44
 
45
45
  # ===== update =====
46
46
 
47
- def update_parameter(self, x: dict[str, SupportedVariableTypes]) -> None:
47
+ def update_parameter(self, x: TrialInput) -> None:
48
48
  # FEM オブジェクトに与えられた変数を設定する。
49
49
  # 目的は Function 内でユーザーが FEM オブジェクト経由で
50
50
  # 変数を取得できるようにするためなので、各具象クラスでは
@@ -26,7 +26,7 @@ from pyfemtet._util.femtet_autosave import *
26
26
  from pyfemtet._i18n import _
27
27
 
28
28
  from pyfemtet.opt.exceptions import *
29
- from pyfemtet.opt.problem.variable_manager import SupportedVariableTypes
29
+ from pyfemtet.opt.problem.problem import *
30
30
  from pyfemtet.opt.interface._base_interface import COMInterface
31
31
 
32
32
  from pyfemtet.logger import get_module_logger
@@ -797,15 +797,15 @@ class ExcelInterface(COMInterface):
797
797
  return self._get_wb(self.teardown_xlsm_path)
798
798
 
799
799
  # ===== update =====
800
- def update_parameter(self, x: dict[str, SupportedVariableTypes]) -> None:
800
+ def update_parameter(self, x: TrialInput) -> None:
801
801
 
802
802
  COMInterface.update_parameter(self, x)
803
803
 
804
804
  # excel シートの変数更新
805
805
  if self.use_named_range:
806
- for key, value in self.current_prm_values.items():
806
+ for key, variable in self.current_prm_values.items():
807
807
  try:
808
- self.sh_input.Range(key).value = value
808
+ self.sh_input.Range(key).value = variable.value
809
809
  except com_error:
810
810
  logger.warning(
811
811
  _(
@@ -819,10 +819,10 @@ class ExcelInterface(COMInterface):
819
819
  break
820
820
 
821
821
  if not self.use_named_range: # else にしないこと
822
- for name, value in self.current_prm_values.items():
822
+ for name, variable in self.current_prm_values.items():
823
823
  r = 1 + search_r(self.input_xlsm_path, self.input_sheet_name, name)
824
824
  c = 1 + search_c(self.input_xlsm_path, self.input_sheet_name, ParseAsParameter.value)
825
- self.sh_input.Cells(r, c).value = value
825
+ self.sh_input.Cells(r, c).value = variable.value
826
826
 
827
827
  # 再計算
828
828
  self.excel.CalculateFull()
@@ -33,7 +33,7 @@ from pyfemtet._util.femtet_access_inspection import *
33
33
  from pyfemtet.dispatch_extensions import *
34
34
  from pyfemtet.opt.interface._base_interface import COMInterface
35
35
  from pyfemtet.opt.exceptions import *
36
- from pyfemtet.opt.problem.variable_manager import SupportedVariableTypes
36
+ from pyfemtet.opt.problem.problem import *
37
37
 
38
38
  from ._femtet_parametric import *
39
39
 
@@ -803,7 +803,7 @@ class FemtetInterface(COMInterface):
803
803
  else:
804
804
  return None
805
805
 
806
- def update_parameter(self, x: dict[str, SupportedVariableTypes], with_warning=False) -> None | list[str]:
806
+ def update_parameter(self, x: TrialInput, with_warning=False) -> None | list[str]:
807
807
  """Update parameter of femprj."""
808
808
  COMInterface.update_parameter(self, x)
809
809
 
@@ -844,7 +844,7 @@ class FemtetInterface(COMInterface):
844
844
 
845
845
  # 変数を更新
846
846
  warning_messages = []
847
- for name, value in self.current_prm_values.items():
847
+ for name, variable in self.current_prm_values.items():
848
848
 
849
849
  # 渡された変数がちゃんと Femtet に定義されている
850
850
  if name in existing_variable_names:
@@ -855,9 +855,9 @@ class FemtetInterface(COMInterface):
855
855
  return_value_if_failed=False,
856
856
  if_error=ModelError, # 生きてるのに失敗した場合
857
857
  error_message=Msg.ERR_FAILED_TO_UPDATE_VARIABLE
858
- + f"{value} -> {name}",
858
+ + f"{variable.value} -> {name}",
859
859
  is_Gaudi_method=True,
860
- args=(name, value),
860
+ args=(name, variable.value),
861
861
  )
862
862
 
863
863
  # 渡された変数が Femtet で定義されていない
@@ -875,15 +875,15 @@ class FemtetInterface(COMInterface):
875
875
 
876
876
  # update without parameter check
877
877
  warning_messages = []
878
- for name, value in self.current_prm_values.items():
878
+ for name, variable in self.current_prm_values.items():
879
879
  self._call_femtet_api(
880
880
  fun=self.Femtet.UpdateVariable,
881
881
  return_value_if_failed=False,
882
882
  if_error=ModelError, # 生きてるのに失敗した場合
883
883
  error_message=Msg.ERR_FAILED_TO_UPDATE_VARIABLE
884
- + f"{value} -> {name}",
884
+ + f"{variable.value} -> {name}",
885
885
  is_Gaudi_method=True,
886
- args=(name, value),
886
+ args=(name, variable.value),
887
887
  )
888
888
 
889
889
  # ここでは ReExecute しない
@@ -9,10 +9,11 @@ import subprocess
9
9
  # noinspection PyUnresolvedReferences
10
10
  from pywintypes import com_error
11
11
 
12
- from pyfemtet._i18n import Msg, _
12
+ from pyfemtet._i18n import _
13
13
  from pyfemtet.opt.interface._base_interface import AbstractFEMInterface
14
14
  from pyfemtet.opt.interface._femtet_interface import FemtetInterface
15
15
  from pyfemtet.opt.exceptions import *
16
+ from pyfemtet.opt.problem.variable_manager import *
16
17
 
17
18
  if TYPE_CHECKING:
18
19
  from pyfemtet.opt.optimizer import AbstractOptimizer
@@ -78,7 +79,9 @@ class _NXInterface(AbstractFEMInterface):
78
79
  os.remove(xt_path)
79
80
 
80
81
  # 変数の json 文字列を作る
81
- str_json = json.dumps(self.current_prm_values)
82
+ str_json = json.dumps(
83
+ {name: variable.value for name, variable
84
+ in self.current_prm_values.items()})
82
85
 
83
86
  # create dumped json of export settings
84
87
  tmp_dict = dict(
@@ -216,13 +219,17 @@ class FemtetWithNXInterface(FemtetInterface, _NXInterface):
216
219
 
217
220
  def _debug_1():
218
221
 
222
+ x = Variable()
223
+ x.name = 'x'
224
+ x.value = 20
225
+
219
226
  fem = _NXInterface(
220
227
  prt_path=os.path.join(os.path.dirname(__file__), 'model1.prt'),
221
228
  export_solids=True,
222
229
  )
223
230
  fem._setup_before_parallel()
224
231
  fem._setup_after_parallel()
225
- fem.update_parameter({'x': 20})
232
+ fem.update_parameter(dict(x=x))
226
233
  fem._export_xt(os.path.join(os.path.dirname(__file__), 'model1.x_t'))
227
234
 
228
235
 
@@ -9,7 +9,7 @@ from pywintypes import com_error
9
9
 
10
10
  from pyfemtet._i18n import _
11
11
 
12
- from pyfemtet.opt.problem.variable_manager import SupportedVariableTypes
12
+ from pyfemtet.opt.problem.problem import *
13
13
  from pyfemtet.opt.interface._base_interface import AbstractFEMInterface
14
14
  from pyfemtet.opt.interface._femtet_interface import FemtetInterface
15
15
  from pyfemtet.opt.interface._solidworks_interface import SolidworksInterface
@@ -89,7 +89,7 @@ class FemtetWithSolidworksInterface(FemtetInterface, SolidworksInterface, Abstra
89
89
  SolidworksInterface._setup_after_parallel(self, opt)
90
90
  FemtetInterface._setup_after_parallel(self, opt)
91
91
 
92
- def update_parameter(self, x: dict[str, SupportedVariableTypes], with_warning=False) -> None:
92
+ def update_parameter(self, x: TrialInput, with_warning=False) -> None:
93
93
  SolidworksInterface.update_parameter(self, x)
94
94
  FemtetInterface.update_parameter(self, x, with_warning)
95
95
 
@@ -14,7 +14,7 @@ from pyfemtet._util.dask_util import *
14
14
  from pyfemtet.opt.exceptions import *
15
15
  from pyfemtet.opt.interface._base_interface import COMInterface
16
16
  from pyfemtet._i18n import _
17
- from pyfemtet.opt.problem.variable_manager import SupportedVariableTypes
17
+ from pyfemtet.opt.problem.problem import *
18
18
  from pyfemtet.logger import get_module_logger
19
19
 
20
20
  if TYPE_CHECKING:
@@ -125,7 +125,7 @@ class SolidworksInterface(COMInterface):
125
125
  def update(self) -> None:
126
126
  raise NotImplementedError
127
127
 
128
- def update_parameter(self, x: dict[str, SupportedVariableTypes]) -> None:
128
+ def update_parameter(self, x: TrialInput) -> None:
129
129
 
130
130
  COMInterface.update_parameter(self, x)
131
131
 
@@ -154,7 +154,7 @@ class SolidworksInterface(COMInterface):
154
154
  prm_name = _get_name_from_equation(eq)
155
155
  # 対象なら処理
156
156
  if prm_name in self.current_prm_values:
157
- new_equation = f'"{prm_name}" = {self.current_prm_values[prm_name]}'
157
+ new_equation = f'"{prm_name}" = {self.current_prm_values[prm_name].value}'
158
158
  swEqnMgr.Equation(i, new_equation)
159
159
 
160
160
  # 式の計算
@@ -62,7 +62,7 @@ class BoTorchInterface(AbstractSurrogateModelInterfaceBase):
62
62
 
63
63
  def update(self) -> None:
64
64
  # update current objective values
65
- x = np.array([self.current_prm_values.values()])
65
+ x = np.array([[variable.value for variable in self.current_prm_values.values()]])
66
66
 
67
67
  y, _ = self.pyfemtet_model.predict(x)
68
68
  y = y[0]
@@ -255,7 +255,7 @@ class PoFBoTorchInterface(BoTorchInterface, AbstractSurrogateModelInterfaceBase)
255
255
 
256
256
  return
257
257
 
258
- x = np.array([self.current_prm_values.values()])
258
+ x = np.array([[variable.value for variable in self.current_prm_values.values()]])
259
259
 
260
260
  f_mean, f_std = self.pyfemtet_model_c.predict(x)
261
261
  f_mean, f_std = f_mean[0][0], f_std[0][0]
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
4
4
 
5
5
  import re
6
6
 
7
- from pyfemtet.opt.problem.problem import SupportedVariableTypes
7
+ from pyfemtet.opt.problem.problem import *
8
8
  from pyfemtet.opt.interface._base_interface import AbstractFEMInterface
9
9
  from pyfemtet.opt.interface._excel_interface import ExcelInterface
10
10
  from pyfemtet.opt.interface._femtet_interface import FemtetInterface
@@ -116,7 +116,7 @@ def _class_factory(FEMClass: type[AbstractFEMInterface]) -> type[AbstractFEMInte
116
116
  ExcelInterface.load_constraints(self, opt, raise_if_no_keyword)
117
117
  FEMClass.load_constraints(self, opt)
118
118
 
119
- def update_parameter(self, x: SupportedVariableTypes) -> None:
119
+ def update_parameter(self, x: TrialInput) -> None:
120
120
  assert self._excel_initialized, '最初に init_excel() を呼び出してください。'
121
121
  ExcelInterface.update_parameter(self, x)
122
122
  FEMClass.update_parameter(self, x)
@@ -458,7 +458,6 @@ class AbstractOptimizer:
458
458
  self,
459
459
  opt_: AbstractOptimizer,
460
460
  parameters: TrialInput,
461
- variables_pass_to_fem: dict[str, SupportedVariableTypes],
462
461
  history: History = None,
463
462
  datetime_start=None,
464
463
  trial_id=None,
@@ -509,8 +508,12 @@ class AbstractOptimizer:
509
508
  logger.info(parameters)
510
509
 
511
510
  # ===== update FEM parameter =====
511
+ pass_to_fem = self.opt.variable_manager.get_variables(
512
+ filter='pass_to_fem',
513
+ format='raw',
514
+ )
512
515
  logger.info(_('updating variables...'))
513
- opt_.fem.update_parameter(variables_pass_to_fem)
516
+ opt_.fem.update_parameter(pass_to_fem)
514
517
  opt_._check_and_raise_interruption()
515
518
 
516
519
  # ===== evaluate hard constraint =====
@@ -632,7 +635,6 @@ class AbstractOptimizer:
632
635
  def solve(
633
636
  self,
634
637
  x: TrialInput,
635
- x_pass_to_fem_: dict[str, SupportedVariableTypes],
636
638
  opt_: AbstractOptimizer | None = None,
637
639
  trial_id: str =None,
638
640
  ) -> _FReturnValue | None:
@@ -669,7 +671,7 @@ class AbstractOptimizer:
669
671
  datetime_start = datetime.datetime.now()
670
672
  try:
671
673
  f_return = self._solve_or_raise(
672
- opt_, x, x_pass_to_fem_, self.opt.history,
674
+ opt_, x, self.opt.history,
673
675
  datetime_start, trial_id
674
676
  )
675
677
 
@@ -228,13 +228,12 @@ class OptunaOptimizer(AbstractOptimizer):
228
228
 
229
229
  # construct TrialInput
230
230
  x = vm.get_variables(filter='parameter')
231
- x_pass_to_fem: dict[str, SupportedVariableTypes] = vm.get_variables(filter='pass_to_fem', format='dict')
232
231
 
233
232
  # prepare solve
234
233
  solve_set = self._get_solve_set()
235
234
 
236
235
  # process main fidelity model
237
- f_return = solve_set.solve(x, x_pass_to_fem)
236
+ f_return = solve_set.solve(x)
238
237
  if f_return is None:
239
238
  y_internal: None = None
240
239
  else:
@@ -244,7 +243,7 @@ class OptunaOptimizer(AbstractOptimizer):
244
243
  for sub_fidelity_name, sub_opt in self.sub_fidelity_models.items():
245
244
  # _SolveSet に特殊な初期化を入れていないので
246
245
  # sub fidelity でも初期化せず使用可能
247
- solve_set.solve(x, x_pass_to_fem, sub_opt)
246
+ solve_set.solve(x, sub_opt)
248
247
 
249
248
  # check interruption
250
249
  self._check_and_raise_interruption()
@@ -75,7 +75,9 @@ def _evaluate_pyfemtet_cns(
75
75
  'アクセスは著しく時間がかかりますので'
76
76
  'ご注意ください。'
77
77
  ))
78
- pass_to_fem = opt.variable_manager.get_variables(filter='pass_to_fem')
78
+ pass_to_fem = opt.variable_manager.get_variables(
79
+ filter='pass_to_fem', format='raw'
80
+ )
79
81
  opt.fem.update_parameter(pass_to_fem)
80
82
 
81
83
  # eval
@@ -195,7 +195,9 @@ class ScipyOptimizer(AbstractOptimizer):
195
195
  # update fem (very slow!)
196
196
  if cns.using_fem:
197
197
  logger.warning(Msg.WARN_USING_FEM_IN_NLC)
198
- pass_to_fem = self.variable_manager.get_variables(filter='pass_to_fem')
198
+ pass_to_fem = self.variable_manager.get_variables(
199
+ filter='pass_to_fem', format='raw'
200
+ )
199
201
  self.fem.update_parameter(pass_to_fem)
200
202
 
201
203
  return cns.eval(self.fem)
@@ -345,12 +347,10 @@ class ScipyOptimizer(AbstractOptimizer):
345
347
 
346
348
  # construct TrialInput
347
349
  x = vm.get_variables(filter='parameter')
348
- x_pass_to_fem: dict[str, SupportedVariableTypes] = vm.get_variables(
349
- filter='pass_to_fem', format='dict')
350
350
 
351
351
  # process main fidelity model
352
352
  solve_set = self._get_solve_set()
353
- f_return = solve_set.solve(x, x_pass_to_fem)
353
+ f_return = solve_set.solve(x)
354
354
  assert f_return is not None
355
355
  dict_y_internal = f_return[1]
356
356
  y_internal: float = tuple(dict_y_internal.values())[0] # type: ignore
@@ -7,6 +7,7 @@ from dash import Output, Input, State, callback_context, no_update
7
7
  from dash.exceptions import PreventUpdate
8
8
 
9
9
  from pyfemtet.opt.history import History
10
+ from pyfemtet.opt.problem.variable_manager import Variable
10
11
 
11
12
  from pyfemtet.opt.visualization.history_viewer._wrapped_components import dcc, dbc, html
12
13
  from pyfemtet.opt.visualization.history_viewer._base_application import *
@@ -326,9 +327,14 @@ class HomePage(AbstractPage):
326
327
  row = df[df['trial'] == trial]
327
328
  prm_names = self.application.history.prm_names
328
329
  prm_values = row[prm_names].values.ravel()
329
- x = {name: value for name, value in zip(prm_names, prm_values)}
330
330
 
331
- self.femtet_control.fem.update_parameter(x)
331
+ pass_to_fem = {}
332
+ for name, value in zip(prm_names, prm_values):
333
+ v = Variable()
334
+ v.name = name
335
+ v.value = value
336
+ pass_to_fem.update({name: v})
337
+ self.femtet_control.fem.update_parameter(pass_to_fem)
332
338
  self.femtet_control.fem.update_model()
333
339
 
334
340
  Femtet.SaveProject(Femtet.Project, True)
@@ -33,7 +33,7 @@ dependencies = [
33
33
 
34
34
  #[project.optional-dependencies]
35
35
  #brep = ["brepmatching>=0.1.8,<0.2"]
36
- version = "1.0.1"
36
+ version = "1.0.3"
37
37
 
38
38
  [project.urls]
39
39
  Repository = "https://github.com/pyfemtet/pyfemtet"
File without changes
File without changes
File without changes
File without changes