pyfemtet 0.8.17__tar.gz → 0.8.19__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 (158) hide show
  1. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/PKG-INFO +1 -1
  2. pyfemtet-0.8.19/pyfemtet/__init__.py +1 -0
  3. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_femopt_core.py +27 -25
  4. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/__init__.py +1 -1
  5. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_excel_interface.py +21 -0
  6. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyproject.toml +1 -1
  7. pyfemtet-0.8.17/pyfemtet/__init__.py +0 -1
  8. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/LICENSE +0 -0
  9. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/LICENSE_THIRD_PARTY.txt +0 -0
  10. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/README.md +0 -0
  11. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_femtet_config_util/__init__.py +0 -0
  12. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_femtet_config_util/autosave.py +0 -0
  13. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_femtet_config_util/exit.py +0 -0
  14. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/1. make_pot.bat +0 -0
  15. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/2. make_mo.bat +0 -0
  16. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/__init__.py +0 -0
  17. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/babel.cfg +0 -0
  18. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/locales/ja/LC_MESSAGES/messages.mo +0 -0
  19. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/locales/ja/LC_MESSAGES/messages.po +0 -0
  20. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/locales/messages.pot +0 -0
  21. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_message/messages.py +0 -0
  22. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_util/__init__.py +0 -0
  23. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_util/dask_util.py +0 -0
  24. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_util/excel_macro_util.py +0 -0
  25. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_util/excel_parse_util.py +0 -0
  26. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_util/sample.xlsx +0 -0
  27. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/_warning.py +0 -0
  28. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/brep/__init__.py +0 -0
  29. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/brep/_impl.py +0 -0
  30. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/core.py +0 -0
  31. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/dispatch_extensions/__init__.py +0 -0
  32. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/dispatch_extensions/_impl.py +0 -0
  33. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/logger/__init__.py +0 -0
  34. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/logger/_impl.py +0 -0
  35. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/__init__.py +0 -0
  36. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_femopt.py +0 -0
  37. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_test_utils/__init__.py +0 -0
  38. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_test_utils/control_femtet.py +0 -0
  39. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_test_utils/hyper_sphere.py +0 -0
  40. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/_test_utils/record_history.py +0 -0
  41. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/excel_ui/(ref) original_project.femprj +0 -0
  42. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/excel_ui/femtet-macro.xlsm +0 -0
  43. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/excel_ui/pyfemtet-core.py +0 -0
  44. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/excel_ui/test-pyfemtet-core.cmd +0 -0
  45. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/restart/gal_ex13_parametric.femprj +0 -0
  46. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/restart/gal_ex13_parametric_restart.py +0 -0
  47. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/restart/gal_ex13_parametric_restart_jp.py +0 -0
  48. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_create_training_data.py +0 -0
  49. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_create_training_data_jp.py +0 -0
  50. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_optimize_with_surrogate.py +0 -0
  51. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_optimize_with_surrogate_jp.py +0 -0
  52. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/advanced_samples/surrogate_model/gal_ex13_parametric.femprj +0 -0
  53. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_base.py +0 -0
  54. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet.py +0 -0
  55. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_excel.py +0 -0
  56. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_parametric.py +0 -0
  57. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_with_nx/__init__.py +0 -0
  58. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_with_nx/_interface.py +0 -0
  59. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_with_nx/update_model.py +0 -0
  60. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_femtet_with_sldworks.py +0 -0
  61. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_surrogate/__init__.py +0 -0
  62. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_surrogate/_base.py +0 -0
  63. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_surrogate/_chaospy.py +0 -0
  64. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_surrogate/_singletaskgp.py +0 -0
  65. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/interface/_surrogate_excel.py +0 -0
  66. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/meta_script/YAML_Generator.xlsm +0 -0
  67. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/meta_script/__init__.py +0 -0
  68. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/meta_script/__main__.py +0 -0
  69. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/meta_script/sample/sample.bas +0 -0
  70. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/meta_script/sample/sample.femprj +0 -0
  71. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/__init__.py +0 -0
  72. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_base.py +0 -0
  73. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_optuna/__init__.py +0 -0
  74. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_optuna/_botorch_patch/__init__.py +0 -0
  75. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_optuna/_botorch_patch/enable_nonlinear_constraint.py +0 -0
  76. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_optuna/_optuna.py +0 -0
  77. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_optuna/_pof_botorch.py +0 -0
  78. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_scipy.py +0 -0
  79. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/_scipy_scalar.py +0 -0
  80. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/optimizer/parameter.py +0 -0
  81. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/prediction/__init__.py +0 -0
  82. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/prediction/_base.py +0 -0
  83. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/prediction/single_task_gp.py +0 -0
  84. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/ParametricIF.femprj +0 -0
  85. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/ParametricIF.py +0 -0
  86. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/ParametricIF_test_result.reccsv +0 -0
  87. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.femprj +0 -0
  88. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.prt +0 -0
  89. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX.py +0 -0
  90. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_NX_test_result.reccsv +0 -0
  91. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.SLDPRT +0 -0
  92. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.femprj +0 -0
  93. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW.py +0 -0
  94. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/cad_ex01_SW_test_result.reccsv +0 -0
  95. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/constrained_pipe.femprj +0 -0
  96. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/constrained_pipe.py +0 -0
  97. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/constrained_pipe_test_result.reccsv +0 -0
  98. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric.femprj +0 -0
  99. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric.py +0 -0
  100. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gal_ex58_parametric_test_result.reccsv +0 -0
  101. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric.femprj +0 -0
  102. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric.py +0 -0
  103. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gau_ex08_parametric_test_result.reccsv +0 -0
  104. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gau_ex12_parametric.femprj +0 -0
  105. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/gau_ex12_parametric.py +0 -0
  106. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric.femprj +0 -0
  107. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric.py +0 -0
  108. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/her_ex40_parametric_test_result.reccsv +0 -0
  109. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric.femprj +0 -0
  110. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric.py +0 -0
  111. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric_parallel.py +0 -0
  112. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/paswat_ex1_parametric_test_result.reccsv +0 -0
  113. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric.femprj +0 -0
  114. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric.py +0 -0
  115. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric_parallel.py +0 -0
  116. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample/wat_ex14_parametric_test_result.reccsv +0 -0
  117. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/ParametricIF_jp.femprj +0 -0
  118. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/ParametricIF_jp.py +0 -0
  119. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_NX_jp.femprj +0 -0
  120. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_NX_jp.py +0 -0
  121. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_SW_jp.femprj +0 -0
  122. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/cad_ex01_SW_jp.py +0 -0
  123. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/constrained_pipe_jp.py +0 -0
  124. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/gal_ex58_parametric_jp.femprj +0 -0
  125. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/gal_ex58_parametric_jp.py +0 -0
  126. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/gau_ex08_parametric_jp.femprj +0 -0
  127. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/gau_ex08_parametric_jp.py +0 -0
  128. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/gau_ex12_parametric_jp.py +0 -0
  129. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/her_ex40_parametric_jp.femprj +0 -0
  130. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/her_ex40_parametric_jp.py +0 -0
  131. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_jp.femprj +0 -0
  132. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_jp.py +0 -0
  133. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/paswat_ex1_parametric_parallel_jp.py +0 -0
  134. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_jp.femprj +0 -0
  135. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_jp.py +0 -0
  136. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/samples/femprj_sample_jp/wat_ex14_parametric_parallel_jp.py +0 -0
  137. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/__init__.py +0 -0
  138. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_base.py +0 -0
  139. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/__init__.py +0 -0
  140. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/alert_region.py +0 -0
  141. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/control_femtet.py +0 -0
  142. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/main_figure_creator.py +0 -0
  143. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/main_graph.py +0 -0
  144. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/pm_graph.py +0 -0
  145. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_complex_components/pm_graph_creator.py +0 -0
  146. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_create_wrapped_components.py +0 -0
  147. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_process_monitor/__init__.py +0 -0
  148. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_process_monitor/application.py +0 -0
  149. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_process_monitor/pages.py +0 -0
  150. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_wrapped_components/__init__.py +0 -0
  151. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_wrapped_components/dbc.py +0 -0
  152. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_wrapped_components/dcc.py +0 -0
  153. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_wrapped_components/html.py +0 -0
  154. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/_wrapped_components/str_enum.py +0 -0
  155. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/result_viewer/.gitignore +0 -0
  156. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/result_viewer/__init__.py +0 -0
  157. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/result_viewer/application.py +0 -0
  158. {pyfemtet-0.8.17 → pyfemtet-0.8.19}/pyfemtet/opt/visualization/result_viewer/pages.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyfemtet
3
- Version: 0.8.17
3
+ Version: 0.8.19
4
4
  Summary: Design parameter optimization using Femtet.
5
5
  License: MIT
6
6
  Author: kazuma.naito
@@ -0,0 +1 @@
1
+ __version__ = "0.8.19"
@@ -832,39 +832,41 @@ class History:
832
832
  for obj_column, (_, objective) in zip(self.obj_names, objectives.items()):
833
833
  solution_set.loc[:, obj_column] = solution_set[obj_column].map(objective.convert)
834
834
 
835
- # 非劣解の計算
836
- non_domi: list[bool] = []
837
- non_domi_row: list[pd.Series] = []
838
- for i, row in solution_set.iterrows():
839
- non_domi.append((row > solution_set).product(axis=1).sum(axis=0) == 0)
840
- non_domi_row.append(row)
841
- print(solution_set)
842
-
843
- # パレートフロントから裾解(他と同等というだけで残っている非劣解)を除く
844
- true_non_domi = []
845
- for i, row in enumerate(non_domi_row):
846
- print('=====')
847
- print(row) # その非劣解について
848
- print('-----')
849
- is_true_non_domi = []
850
- for j, other_row in enumerate(non_domi_row):
835
+ # 非劣解(改)の計算
836
+ # 「全ての項目において
837
+ # 重複する解を除いて
838
+ # より優れているか又は同等である
839
+ # 他の解が存在しない解」であるかどうかを判定
840
+ non_domi = []
841
+ row: np.ndarray
842
+ another: np.ndarray
843
+ for i, row in enumerate(solution_set.values):
844
+ for j, another in enumerate(solution_set.values):
851
845
  if i == j:
846
+ # 他と比べたいので
852
847
  continue
853
- print(row < other_row) # 他の非劣解よりも優れている
854
- print('-----')
855
- print((row < other_row).sum()) # そのような目的がひとつでもある
856
- is_true_non_domi.append((row < other_row).sum()) # ような解が
857
-
858
- true_non_domi.append(all(is_true_non_domi)) # 全ての解に対し、ひとつの目的でも優れている
859
-
860
- # non_domi に true_non_domi を反映する
848
+ elif np.allclose(row, another):
849
+ # 重複してたら他の解との比較に
850
+ # 判定を委ねたいので
851
+ continue
852
+ elif all(another <= row):
853
+ # 全項目について
854
+ # another のほうが
855
+ # 優れているか又は同等である
856
+ non_domi.append(False)
857
+ break
858
+ else:
859
+ # 全項目について優れているか又は
860
+ # 同等であるような他の解が
861
+ # 存在しなかった
862
+ non_domi.append(True)
861
863
 
862
864
  # feasible も infeasible も一旦劣解にする
863
865
  df['non_domi'] = False
864
866
 
865
867
  # feasible のものに non_domi の評価結果を代入する
866
868
  if len(non_domi) > 0:
867
- df.loc[idx, 'non_domi'] = true_non_domi
869
+ df.loc[idx, 'non_domi'] = non_domi
868
870
 
869
871
  def _calc_hypervolume(self, objectives, df):
870
872
 
@@ -19,7 +19,7 @@ else:
19
19
  FemtetInterface = type('FemtetInterface', (NotAvailableForWindows,), {})
20
20
  FemtetWithSolidworksInterface = type('FemtetWithSolidworksInterface', (FemtetInterface,), {})
21
21
  FemtetWithNXInterface = type('FemtetWithNXInterface', (FemtetInterface,), {})
22
- ExcelInterface = type('FemtetInterface', (NotAvailableForWindows,), {})
22
+ ExcelInterface = type('ExcelInterface', (NotAvailableForWindows,), {})
23
23
 
24
24
  from pyfemtet.opt.interface._surrogate._base import SurrogateModelInterfaceBase
25
25
  from pyfemtet.opt.interface._surrogate._singletaskgp import PoFBoTorchInterface
@@ -222,6 +222,8 @@ class ExcelInterface(FEMInterface):
222
222
 
223
223
  use_named_range: bool # input を定義したシートにおいて input の値を名前付き範囲で指定するかどうか。
224
224
 
225
+ force_override_when_load: bool = False # .py で add_... されている変数などを Excel の内容で上書きするかどうか。
226
+
225
227
  def __init__(
226
228
  self,
227
229
  input_xlsm_path: str or Path,
@@ -751,6 +753,13 @@ class ExcelInterface(FEMInterface):
751
753
  # name
752
754
  name = str(row[ParseAsParameter.name])
753
755
 
756
+ # if the variable is already added by
757
+ # add_parameter or add_expression,
758
+ # use it.
759
+ if not self.force_override_when_load:
760
+ if name in opt.variables.get_variables():
761
+ continue
762
+
754
763
  # value
755
764
  value = float(row[ParseAsParameter.value])
756
765
 
@@ -821,6 +830,12 @@ class ExcelInterface(FEMInterface):
821
830
  # name
822
831
  name = str(row[ParseAsObjective.name])
823
832
 
833
+ # if the objective is already added by
834
+ # add_objective, use it.
835
+ if not self.force_override_when_load:
836
+ if name in opt.objectives.keys():
837
+ continue
838
+
824
839
  # direction
825
840
  direction = row[ParseAsObjective.direction]
826
841
  assert not is_cell_value_empty(direction), 'direction is empty.'
@@ -865,6 +880,12 @@ class ExcelInterface(FEMInterface):
865
880
  # name
866
881
  name = str(row[ParseAsConstraint.name])
867
882
 
883
+ # if the constraint is already added by
884
+ # add_constraint, use it.
885
+ if not self.force_override_when_load:
886
+ if name in opt.constraints.keys():
887
+ continue
888
+
868
889
  # lb (optional)
869
890
  lb = None
870
891
  if ParseAsConstraint.lb in df.columns:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyfemtet"
3
- version = "0.8.17" # ignored by versioning plugin
3
+ version = "0.8.19" # ignored by versioning plugin
4
4
  description = "Design parameter optimization using Femtet."
5
5
  authors = ["kazuma.naito <148934231+pyfemtet@users.noreply.github.com>"]
6
6
  readme = "README.md"
@@ -1 +0,0 @@
1
- __version__ = "0.8.17"
File without changes
File without changes
File without changes