mlhp 0.0.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.
Files changed (503) hide show
  1. mlhp-0.0.0/.git +1 -0
  2. mlhp-0.0.0/.gitignore +9 -0
  3. mlhp-0.0.0/.gitlab-ci.yml +97 -0
  4. mlhp-0.0.0/.gitmodules +6 -0
  5. mlhp-0.0.0/.mailmap +4 -0
  6. mlhp-0.0.0/CMakeLists.txt +193 -0
  7. mlhp-0.0.0/LICENSE +21 -0
  8. mlhp-0.0.0/PKG-INFO +40 -0
  9. mlhp-0.0.0/README.md +30 -0
  10. mlhp-0.0.0/examples/example_fcm.py +69 -0
  11. mlhp-0.0.0/examples/example_gmsh.py +93 -0
  12. mlhp-0.0.0/examples/fichera_corner.cpp +98 -0
  13. mlhp-0.0.0/examples/travelling_heat_source.cpp +165 -0
  14. mlhp-0.0.0/examples/wing_elastic_fcm.cpp +101 -0
  15. mlhp-0.0.0/external/catch2/catch.hpp +17471 -0
  16. mlhp-0.0.0/external/pybind11/.appveyor.yml +35 -0
  17. mlhp-0.0.0/external/pybind11/.clang-format +38 -0
  18. mlhp-0.0.0/external/pybind11/.clang-tidy +77 -0
  19. mlhp-0.0.0/external/pybind11/.cmake-format.yaml +73 -0
  20. mlhp-0.0.0/external/pybind11/.codespell-ignore-lines +24 -0
  21. mlhp-0.0.0/external/pybind11/.git +1 -0
  22. mlhp-0.0.0/external/pybind11/.gitattributes +1 -0
  23. mlhp-0.0.0/external/pybind11/.github/CODEOWNERS +9 -0
  24. mlhp-0.0.0/external/pybind11/.github/CONTRIBUTING.md +388 -0
  25. mlhp-0.0.0/external/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
  26. mlhp-0.0.0/external/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  27. mlhp-0.0.0/external/pybind11/.github/dependabot.yml +15 -0
  28. mlhp-0.0.0/external/pybind11/.github/labeler.yml +8 -0
  29. mlhp-0.0.0/external/pybind11/.github/labeler_merged.yml +3 -0
  30. mlhp-0.0.0/external/pybind11/.github/matchers/pylint.json +32 -0
  31. mlhp-0.0.0/external/pybind11/.github/pull_request_template.md +19 -0
  32. mlhp-0.0.0/external/pybind11/.github/workflows/ci.yml +1202 -0
  33. mlhp-0.0.0/external/pybind11/.github/workflows/configure.yml +92 -0
  34. mlhp-0.0.0/external/pybind11/.github/workflows/format.yml +60 -0
  35. mlhp-0.0.0/external/pybind11/.github/workflows/labeler.yml +25 -0
  36. mlhp-0.0.0/external/pybind11/.github/workflows/pip.yml +114 -0
  37. mlhp-0.0.0/external/pybind11/.github/workflows/upstream.yml +116 -0
  38. mlhp-0.0.0/external/pybind11/.gitignore +46 -0
  39. mlhp-0.0.0/external/pybind11/.pre-commit-config.yaml +155 -0
  40. mlhp-0.0.0/external/pybind11/.readthedocs.yml +20 -0
  41. mlhp-0.0.0/external/pybind11/CMakeLists.txt +373 -0
  42. mlhp-0.0.0/external/pybind11/LICENSE +29 -0
  43. mlhp-0.0.0/external/pybind11/MANIFEST.in +6 -0
  44. mlhp-0.0.0/external/pybind11/README.rst +181 -0
  45. mlhp-0.0.0/external/pybind11/SECURITY.md +13 -0
  46. mlhp-0.0.0/external/pybind11/docs/Doxyfile +21 -0
  47. mlhp-0.0.0/external/pybind11/docs/Makefile +192 -0
  48. mlhp-0.0.0/external/pybind11/docs/_static/css/custom.css +3 -0
  49. mlhp-0.0.0/external/pybind11/docs/advanced/cast/chrono.rst +81 -0
  50. mlhp-0.0.0/external/pybind11/docs/advanced/cast/custom.rst +93 -0
  51. mlhp-0.0.0/external/pybind11/docs/advanced/cast/eigen.rst +310 -0
  52. mlhp-0.0.0/external/pybind11/docs/advanced/cast/functional.rst +109 -0
  53. mlhp-0.0.0/external/pybind11/docs/advanced/cast/index.rst +43 -0
  54. mlhp-0.0.0/external/pybind11/docs/advanced/cast/overview.rst +170 -0
  55. mlhp-0.0.0/external/pybind11/docs/advanced/cast/stl.rst +249 -0
  56. mlhp-0.0.0/external/pybind11/docs/advanced/cast/strings.rst +296 -0
  57. mlhp-0.0.0/external/pybind11/docs/advanced/classes.rst +1335 -0
  58. mlhp-0.0.0/external/pybind11/docs/advanced/embedding.rst +262 -0
  59. mlhp-0.0.0/external/pybind11/docs/advanced/exceptions.rst +401 -0
  60. mlhp-0.0.0/external/pybind11/docs/advanced/functions.rst +614 -0
  61. mlhp-0.0.0/external/pybind11/docs/advanced/misc.rst +429 -0
  62. mlhp-0.0.0/external/pybind11/docs/advanced/pycpp/index.rst +13 -0
  63. mlhp-0.0.0/external/pybind11/docs/advanced/pycpp/numpy.rst +455 -0
  64. mlhp-0.0.0/external/pybind11/docs/advanced/pycpp/object.rst +286 -0
  65. mlhp-0.0.0/external/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  66. mlhp-0.0.0/external/pybind11/docs/advanced/smart_ptrs.rst +174 -0
  67. mlhp-0.0.0/external/pybind11/docs/basics.rst +307 -0
  68. mlhp-0.0.0/external/pybind11/docs/benchmark.py +87 -0
  69. mlhp-0.0.0/external/pybind11/docs/benchmark.rst +95 -0
  70. mlhp-0.0.0/external/pybind11/docs/changelog.rst +3006 -0
  71. mlhp-0.0.0/external/pybind11/docs/classes.rst +555 -0
  72. mlhp-0.0.0/external/pybind11/docs/cmake/index.rst +8 -0
  73. mlhp-0.0.0/external/pybind11/docs/compiling.rst +649 -0
  74. mlhp-0.0.0/external/pybind11/docs/conf.py +368 -0
  75. mlhp-0.0.0/external/pybind11/docs/faq.rst +308 -0
  76. mlhp-0.0.0/external/pybind11/docs/index.rst +48 -0
  77. mlhp-0.0.0/external/pybind11/docs/installing.rst +105 -0
  78. mlhp-0.0.0/external/pybind11/docs/limitations.rst +72 -0
  79. mlhp-0.0.0/external/pybind11/docs/pybind11-logo.png +0 -0
  80. mlhp-0.0.0/external/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  81. mlhp-0.0.0/external/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  82. mlhp-0.0.0/external/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  83. mlhp-0.0.0/external/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  84. mlhp-0.0.0/external/pybind11/docs/reference.rst +130 -0
  85. mlhp-0.0.0/external/pybind11/docs/release.rst +143 -0
  86. mlhp-0.0.0/external/pybind11/docs/requirements.txt +6 -0
  87. mlhp-0.0.0/external/pybind11/docs/upgrade.rst +594 -0
  88. mlhp-0.0.0/external/pybind11/include/pybind11/attr.h +690 -0
  89. mlhp-0.0.0/external/pybind11/include/pybind11/buffer_info.h +208 -0
  90. mlhp-0.0.0/external/pybind11/include/pybind11/cast.h +1837 -0
  91. mlhp-0.0.0/external/pybind11/include/pybind11/chrono.h +225 -0
  92. mlhp-0.0.0/external/pybind11/include/pybind11/common.h +2 -0
  93. mlhp-0.0.0/external/pybind11/include/pybind11/complex.h +74 -0
  94. mlhp-0.0.0/external/pybind11/include/pybind11/detail/class.h +748 -0
  95. mlhp-0.0.0/external/pybind11/include/pybind11/detail/common.h +1267 -0
  96. mlhp-0.0.0/external/pybind11/include/pybind11/detail/descr.h +171 -0
  97. mlhp-0.0.0/external/pybind11/include/pybind11/detail/init.h +434 -0
  98. mlhp-0.0.0/external/pybind11/include/pybind11/detail/internals.h +667 -0
  99. mlhp-0.0.0/external/pybind11/include/pybind11/detail/type_caster_base.h +1218 -0
  100. mlhp-0.0.0/external/pybind11/include/pybind11/detail/typeid.h +65 -0
  101. mlhp-0.0.0/external/pybind11/include/pybind11/eigen/common.h +9 -0
  102. mlhp-0.0.0/external/pybind11/include/pybind11/eigen/matrix.h +714 -0
  103. mlhp-0.0.0/external/pybind11/include/pybind11/eigen/tensor.h +517 -0
  104. mlhp-0.0.0/external/pybind11/include/pybind11/eigen.h +12 -0
  105. mlhp-0.0.0/external/pybind11/include/pybind11/embed.h +316 -0
  106. mlhp-0.0.0/external/pybind11/include/pybind11/eval.h +156 -0
  107. mlhp-0.0.0/external/pybind11/include/pybind11/functional.h +138 -0
  108. mlhp-0.0.0/external/pybind11/include/pybind11/gil.h +247 -0
  109. mlhp-0.0.0/external/pybind11/include/pybind11/gil_safe_call_once.h +91 -0
  110. mlhp-0.0.0/external/pybind11/include/pybind11/iostream.h +265 -0
  111. mlhp-0.0.0/external/pybind11/include/pybind11/numpy.h +2133 -0
  112. mlhp-0.0.0/external/pybind11/include/pybind11/operators.h +202 -0
  113. mlhp-0.0.0/external/pybind11/include/pybind11/options.h +92 -0
  114. mlhp-0.0.0/external/pybind11/include/pybind11/pybind11.h +2963 -0
  115. mlhp-0.0.0/external/pybind11/include/pybind11/pytypes.h +2574 -0
  116. mlhp-0.0.0/external/pybind11/include/pybind11/stl/filesystem.h +116 -0
  117. mlhp-0.0.0/external/pybind11/include/pybind11/stl.h +448 -0
  118. mlhp-0.0.0/external/pybind11/include/pybind11/stl_bind.h +823 -0
  119. mlhp-0.0.0/external/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  120. mlhp-0.0.0/external/pybind11/include/pybind11/typing.h +125 -0
  121. mlhp-0.0.0/external/pybind11/noxfile.py +107 -0
  122. mlhp-0.0.0/external/pybind11/pybind11/__init__.py +17 -0
  123. mlhp-0.0.0/external/pybind11/pybind11/__main__.py +62 -0
  124. mlhp-0.0.0/external/pybind11/pybind11/_version.py +12 -0
  125. mlhp-0.0.0/external/pybind11/pybind11/commands.py +37 -0
  126. mlhp-0.0.0/external/pybind11/pybind11/py.typed +0 -0
  127. mlhp-0.0.0/external/pybind11/pybind11/setup_helpers.py +500 -0
  128. mlhp-0.0.0/external/pybind11/pyproject.toml +95 -0
  129. mlhp-0.0.0/external/pybind11/setup.cfg +43 -0
  130. mlhp-0.0.0/external/pybind11/setup.py +150 -0
  131. mlhp-0.0.0/external/pybind11/tests/CMakeLists.txt +589 -0
  132. mlhp-0.0.0/external/pybind11/tests/conftest.py +222 -0
  133. mlhp-0.0.0/external/pybind11/tests/constructor_stats.h +322 -0
  134. mlhp-0.0.0/external/pybind11/tests/cross_module_gil_utils.cpp +108 -0
  135. mlhp-0.0.0/external/pybind11/tests/cross_module_interleaved_error_already_set.cpp +51 -0
  136. mlhp-0.0.0/external/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +14 -0
  137. mlhp-0.0.0/external/pybind11/tests/env.py +27 -0
  138. mlhp-0.0.0/external/pybind11/tests/extra_python_package/pytest.ini +0 -0
  139. mlhp-0.0.0/external/pybind11/tests/extra_python_package/test_files.py +293 -0
  140. mlhp-0.0.0/external/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  141. mlhp-0.0.0/external/pybind11/tests/extra_setuptools/test_setuphelper.py +151 -0
  142. mlhp-0.0.0/external/pybind11/tests/local_bindings.h +92 -0
  143. mlhp-0.0.0/external/pybind11/tests/object.h +205 -0
  144. mlhp-0.0.0/external/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
  145. mlhp-0.0.0/external/pybind11/tests/pybind11_tests.cpp +129 -0
  146. mlhp-0.0.0/external/pybind11/tests/pybind11_tests.h +85 -0
  147. mlhp-0.0.0/external/pybind11/tests/pytest.ini +22 -0
  148. mlhp-0.0.0/external/pybind11/tests/requirements.txt +15 -0
  149. mlhp-0.0.0/external/pybind11/tests/test_async.cpp +25 -0
  150. mlhp-0.0.0/external/pybind11/tests/test_async.py +24 -0
  151. mlhp-0.0.0/external/pybind11/tests/test_buffers.cpp +259 -0
  152. mlhp-0.0.0/external/pybind11/tests/test_buffers.py +228 -0
  153. mlhp-0.0.0/external/pybind11/tests/test_builtin_casters.cpp +392 -0
  154. mlhp-0.0.0/external/pybind11/tests/test_builtin_casters.py +528 -0
  155. mlhp-0.0.0/external/pybind11/tests/test_call_policies.cpp +115 -0
  156. mlhp-0.0.0/external/pybind11/tests/test_call_policies.py +247 -0
  157. mlhp-0.0.0/external/pybind11/tests/test_callbacks.cpp +280 -0
  158. mlhp-0.0.0/external/pybind11/tests/test_callbacks.py +225 -0
  159. mlhp-0.0.0/external/pybind11/tests/test_chrono.cpp +81 -0
  160. mlhp-0.0.0/external/pybind11/tests/test_chrono.py +205 -0
  161. mlhp-0.0.0/external/pybind11/tests/test_class.cpp +657 -0
  162. mlhp-0.0.0/external/pybind11/tests/test_class.py +499 -0
  163. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/CMakeLists.txt +80 -0
  164. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/embed.cpp +23 -0
  165. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
  166. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
  167. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
  168. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/main.cpp +6 -0
  169. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +47 -0
  170. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +41 -0
  171. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +47 -0
  172. mlhp-0.0.0/external/pybind11/tests/test_cmake_build/test.py +8 -0
  173. mlhp-0.0.0/external/pybind11/tests/test_const_name.cpp +55 -0
  174. mlhp-0.0.0/external/pybind11/tests/test_const_name.py +29 -0
  175. mlhp-0.0.0/external/pybind11/tests/test_constants_and_functions.cpp +158 -0
  176. mlhp-0.0.0/external/pybind11/tests/test_constants_and_functions.py +56 -0
  177. mlhp-0.0.0/external/pybind11/tests/test_copy_move.cpp +533 -0
  178. mlhp-0.0.0/external/pybind11/tests/test_copy_move.py +132 -0
  179. mlhp-0.0.0/external/pybind11/tests/test_custom_type_casters.cpp +221 -0
  180. mlhp-0.0.0/external/pybind11/tests/test_custom_type_casters.py +122 -0
  181. mlhp-0.0.0/external/pybind11/tests/test_custom_type_setup.cpp +41 -0
  182. mlhp-0.0.0/external/pybind11/tests/test_custom_type_setup.py +48 -0
  183. mlhp-0.0.0/external/pybind11/tests/test_docstring_options.cpp +141 -0
  184. mlhp-0.0.0/external/pybind11/tests/test_docstring_options.py +64 -0
  185. mlhp-0.0.0/external/pybind11/tests/test_eigen_matrix.cpp +445 -0
  186. mlhp-0.0.0/external/pybind11/tests/test_eigen_matrix.py +814 -0
  187. mlhp-0.0.0/external/pybind11/tests/test_eigen_tensor.cpp +18 -0
  188. mlhp-0.0.0/external/pybind11/tests/test_eigen_tensor.inl +333 -0
  189. mlhp-0.0.0/external/pybind11/tests/test_eigen_tensor.py +288 -0
  190. mlhp-0.0.0/external/pybind11/tests/test_embed/CMakeLists.txt +47 -0
  191. mlhp-0.0.0/external/pybind11/tests/test_embed/catch.cpp +43 -0
  192. mlhp-0.0.0/external/pybind11/tests/test_embed/external_module.cpp +20 -0
  193. mlhp-0.0.0/external/pybind11/tests/test_embed/test_interpreter.cpp +488 -0
  194. mlhp-0.0.0/external/pybind11/tests/test_embed/test_interpreter.py +14 -0
  195. mlhp-0.0.0/external/pybind11/tests/test_embed/test_trampoline.py +16 -0
  196. mlhp-0.0.0/external/pybind11/tests/test_enum.cpp +133 -0
  197. mlhp-0.0.0/external/pybind11/tests/test_enum.py +269 -0
  198. mlhp-0.0.0/external/pybind11/tests/test_eval.cpp +118 -0
  199. mlhp-0.0.0/external/pybind11/tests/test_eval.py +50 -0
  200. mlhp-0.0.0/external/pybind11/tests/test_eval_call.py +4 -0
  201. mlhp-0.0.0/external/pybind11/tests/test_exceptions.cpp +388 -0
  202. mlhp-0.0.0/external/pybind11/tests/test_exceptions.h +13 -0
  203. mlhp-0.0.0/external/pybind11/tests/test_exceptions.py +432 -0
  204. mlhp-0.0.0/external/pybind11/tests/test_factory_constructors.cpp +430 -0
  205. mlhp-0.0.0/external/pybind11/tests/test_factory_constructors.py +516 -0
  206. mlhp-0.0.0/external/pybind11/tests/test_gil_scoped.cpp +144 -0
  207. mlhp-0.0.0/external/pybind11/tests/test_gil_scoped.py +242 -0
  208. mlhp-0.0.0/external/pybind11/tests/test_iostream.cpp +126 -0
  209. mlhp-0.0.0/external/pybind11/tests/test_iostream.py +291 -0
  210. mlhp-0.0.0/external/pybind11/tests/test_kwargs_and_defaults.cpp +327 -0
  211. mlhp-0.0.0/external/pybind11/tests/test_kwargs_and_defaults.py +425 -0
  212. mlhp-0.0.0/external/pybind11/tests/test_local_bindings.cpp +106 -0
  213. mlhp-0.0.0/external/pybind11/tests/test_local_bindings.py +257 -0
  214. mlhp-0.0.0/external/pybind11/tests/test_methods_and_attributes.cpp +493 -0
  215. mlhp-0.0.0/external/pybind11/tests/test_methods_and_attributes.py +537 -0
  216. mlhp-0.0.0/external/pybind11/tests/test_modules.cpp +125 -0
  217. mlhp-0.0.0/external/pybind11/tests/test_modules.py +116 -0
  218. mlhp-0.0.0/external/pybind11/tests/test_multiple_inheritance.cpp +341 -0
  219. mlhp-0.0.0/external/pybind11/tests/test_multiple_inheritance.py +493 -0
  220. mlhp-0.0.0/external/pybind11/tests/test_numpy_array.cpp +552 -0
  221. mlhp-0.0.0/external/pybind11/tests/test_numpy_array.py +674 -0
  222. mlhp-0.0.0/external/pybind11/tests/test_numpy_dtypes.cpp +639 -0
  223. mlhp-0.0.0/external/pybind11/tests/test_numpy_dtypes.py +448 -0
  224. mlhp-0.0.0/external/pybind11/tests/test_numpy_vectorize.cpp +107 -0
  225. mlhp-0.0.0/external/pybind11/tests/test_numpy_vectorize.py +266 -0
  226. mlhp-0.0.0/external/pybind11/tests/test_opaque_types.cpp +77 -0
  227. mlhp-0.0.0/external/pybind11/tests/test_opaque_types.py +58 -0
  228. mlhp-0.0.0/external/pybind11/tests/test_operator_overloading.cpp +281 -0
  229. mlhp-0.0.0/external/pybind11/tests/test_operator_overloading.py +151 -0
  230. mlhp-0.0.0/external/pybind11/tests/test_pickling.cpp +194 -0
  231. mlhp-0.0.0/external/pybind11/tests/test_pickling.py +93 -0
  232. mlhp-0.0.0/external/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
  233. mlhp-0.0.0/external/pybind11/tests/test_python_multiple_inheritance.py +35 -0
  234. mlhp-0.0.0/external/pybind11/tests/test_pytypes.cpp +846 -0
  235. mlhp-0.0.0/external/pybind11/tests/test_pytypes.py +954 -0
  236. mlhp-0.0.0/external/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
  237. mlhp-0.0.0/external/pybind11/tests/test_sequences_and_iterators.py +265 -0
  238. mlhp-0.0.0/external/pybind11/tests/test_smart_ptr.cpp +473 -0
  239. mlhp-0.0.0/external/pybind11/tests/test_smart_ptr.py +315 -0
  240. mlhp-0.0.0/external/pybind11/tests/test_stl.cpp +551 -0
  241. mlhp-0.0.0/external/pybind11/tests/test_stl.py +381 -0
  242. mlhp-0.0.0/external/pybind11/tests/test_stl_binders.cpp +276 -0
  243. mlhp-0.0.0/external/pybind11/tests/test_stl_binders.py +393 -0
  244. mlhp-0.0.0/external/pybind11/tests/test_tagbased_polymorphic.cpp +147 -0
  245. mlhp-0.0.0/external/pybind11/tests/test_tagbased_polymorphic.py +28 -0
  246. mlhp-0.0.0/external/pybind11/tests/test_thread.cpp +66 -0
  247. mlhp-0.0.0/external/pybind11/tests/test_thread.py +42 -0
  248. mlhp-0.0.0/external/pybind11/tests/test_type_caster_pyobject_ptr.cpp +130 -0
  249. mlhp-0.0.0/external/pybind11/tests/test_type_caster_pyobject_ptr.py +104 -0
  250. mlhp-0.0.0/external/pybind11/tests/test_union.cpp +22 -0
  251. mlhp-0.0.0/external/pybind11/tests/test_union.py +8 -0
  252. mlhp-0.0.0/external/pybind11/tests/test_unnamed_namespace_a.cpp +38 -0
  253. mlhp-0.0.0/external/pybind11/tests/test_unnamed_namespace_a.py +34 -0
  254. mlhp-0.0.0/external/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
  255. mlhp-0.0.0/external/pybind11/tests/test_unnamed_namespace_b.py +5 -0
  256. mlhp-0.0.0/external/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
  257. mlhp-0.0.0/external/pybind11/tests/test_vector_unique_ptr_member.py +14 -0
  258. mlhp-0.0.0/external/pybind11/tests/test_virtual_functions.cpp +592 -0
  259. mlhp-0.0.0/external/pybind11/tests/test_virtual_functions.py +458 -0
  260. mlhp-0.0.0/external/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  261. mlhp-0.0.0/external/pybind11/tests/valgrind-python.supp +117 -0
  262. mlhp-0.0.0/external/pybind11/tools/FindCatch.cmake +76 -0
  263. mlhp-0.0.0/external/pybind11/tools/FindEigen3.cmake +86 -0
  264. mlhp-0.0.0/external/pybind11/tools/FindPythonLibsNew.cmake +310 -0
  265. mlhp-0.0.0/external/pybind11/tools/JoinPaths.cmake +23 -0
  266. mlhp-0.0.0/external/pybind11/tools/check-style.sh +44 -0
  267. mlhp-0.0.0/external/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  268. mlhp-0.0.0/external/pybind11/tools/codespell_ignore_lines_from_errors.py +39 -0
  269. mlhp-0.0.0/external/pybind11/tools/libsize.py +36 -0
  270. mlhp-0.0.0/external/pybind11/tools/make_changelog.py +90 -0
  271. mlhp-0.0.0/external/pybind11/tools/pybind11.pc.in +7 -0
  272. mlhp-0.0.0/external/pybind11/tools/pybind11Common.cmake +419 -0
  273. mlhp-0.0.0/external/pybind11/tools/pybind11Config.cmake.in +233 -0
  274. mlhp-0.0.0/external/pybind11/tools/pybind11NewTools.cmake +311 -0
  275. mlhp-0.0.0/external/pybind11/tools/pybind11Tools.cmake +239 -0
  276. mlhp-0.0.0/external/pybind11/tools/pyproject.toml +3 -0
  277. mlhp-0.0.0/external/pybind11/tools/setup_global.py.in +63 -0
  278. mlhp-0.0.0/external/pybind11/tools/setup_main.py.in +44 -0
  279. mlhp-0.0.0/external/vtu11/.git +1 -0
  280. mlhp-0.0.0/external/vtu11/.github/workflows/build_and_test.yml +79 -0
  281. mlhp-0.0.0/external/vtu11/.gitignore +7 -0
  282. mlhp-0.0.0/external/vtu11/CMakeLists.txt +100 -0
  283. mlhp-0.0.0/external/vtu11/LICENSE +29 -0
  284. mlhp-0.0.0/external/vtu11/README.md +189 -0
  285. mlhp-0.0.0/external/vtu11/scripts/build_and_test.sh +9 -0
  286. mlhp-0.0.0/external/vtu11/scripts/single_header.sh +53 -0
  287. mlhp-0.0.0/external/vtu11/test/catch2/Catch.cmake +206 -0
  288. mlhp-0.0.0/external/vtu11/test/catch2/CatchAddTests.cmake +132 -0
  289. mlhp-0.0.0/external/vtu11/test/catch2/catch.hpp +17976 -0
  290. mlhp-0.0.0/external/vtu11/test/main_test.cpp +11 -0
  291. mlhp-0.0.0/external/vtu11/test/pwrite_pyramids3D_test.cpp +295 -0
  292. mlhp-0.0.0/external/vtu11/test/testfiles/hexas_3D/ascii.vtu +39 -0
  293. mlhp-0.0.0/external/vtu11/test/testfiles/hexas_3D/base64.vtu +39 -0
  294. mlhp-0.0.0/external/vtu11/test/testfiles/hexas_3D/base64appended.vtu +26 -0
  295. mlhp-0.0.0/external/vtu11/test/testfiles/hexas_3D/raw.vtu +0 -0
  296. mlhp-0.0.0/external/vtu11/test/testfiles/hexas_3D/raw_compressed.vtu +0 -0
  297. mlhp-0.0.0/external/vtu11/test/testfiles/icosahedron_3D/ascii.vtu +39 -0
  298. mlhp-0.0.0/external/vtu11/test/testfiles/icosahedron_3D/base64.vtu +39 -0
  299. mlhp-0.0.0/external/vtu11/test/testfiles/icosahedron_3D/base64appended.vtu +26 -0
  300. mlhp-0.0.0/external/vtu11/test/testfiles/icosahedron_3D/raw.vtu +0 -0
  301. mlhp-0.0.0/external/vtu11/test/testfiles/icosahedron_3D/raw_compressed.vtu +0 -0
  302. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +39 -0
  303. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +39 -0
  304. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +39 -0
  305. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test.pvtu +19 -0
  306. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +39 -0
  307. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +39 -0
  308. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +39 -0
  309. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test.pvtu +19 -0
  310. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +26 -0
  311. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +26 -0
  312. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +26 -0
  313. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test.pvtu +19 -0
  314. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  315. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  316. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  317. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test.pvtu +19 -0
  318. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  319. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +39 -0
  320. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +39 -0
  321. mlhp-0.0.0/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test.pvtu +19 -0
  322. mlhp-0.0.0/external/vtu11/test/testfiles/pyramids_3D/ascii.vtu +33 -0
  323. mlhp-0.0.0/external/vtu11/test/testfiles/pyramids_3D/base64.vtu +33 -0
  324. mlhp-0.0.0/external/vtu11/test/testfiles/pyramids_3D/base64appended.vtu +24 -0
  325. mlhp-0.0.0/external/vtu11/test/testfiles/pyramids_3D/raw.vtu +0 -0
  326. mlhp-0.0.0/external/vtu11/test/testfiles/pyramids_3D/raw_compressed.vtu +0 -0
  327. mlhp-0.0.0/external/vtu11/test/testfiles/square_2D/ascii.vtu +42 -0
  328. mlhp-0.0.0/external/vtu11/test/testfiles/square_2D/base64.vtu +42 -0
  329. mlhp-0.0.0/external/vtu11/test/testfiles/square_2D/base64appended.vtu +27 -0
  330. mlhp-0.0.0/external/vtu11/test/testfiles/square_2D/raw.vtu +0 -0
  331. mlhp-0.0.0/external/vtu11/test/testfiles/square_2D/raw_compressed.vtu +0 -0
  332. mlhp-0.0.0/external/vtu11/test/utilities_test.cpp +74 -0
  333. mlhp-0.0.0/external/vtu11/test/vtu11_testing.cpp +39 -0
  334. mlhp-0.0.0/external/vtu11/test/vtu11_testing.hpp +24 -0
  335. mlhp-0.0.0/external/vtu11/test/write_hexahedras3D_test.cpp +123 -0
  336. mlhp-0.0.0/external/vtu11/test/write_icosahedron3D_test.cpp +178 -0
  337. mlhp-0.0.0/external/vtu11/test/write_pyramids3D_test.cpp +112 -0
  338. mlhp-0.0.0/external/vtu11/test/write_square2D_test.cpp +139 -0
  339. mlhp-0.0.0/external/vtu11/vtu11/impl/utilities_impl.hpp +154 -0
  340. mlhp-0.0.0/external/vtu11/vtu11/impl/vtu11_impl.hpp +342 -0
  341. mlhp-0.0.0/external/vtu11/vtu11/impl/writer_impl.hpp +229 -0
  342. mlhp-0.0.0/external/vtu11/vtu11/impl/zlibWriter_impl.hpp +155 -0
  343. mlhp-0.0.0/external/vtu11/vtu11/inc/alias.hpp +60 -0
  344. mlhp-0.0.0/external/vtu11/vtu11/inc/filesystem.hpp +5809 -0
  345. mlhp-0.0.0/external/vtu11/vtu11/inc/utilities.hpp +86 -0
  346. mlhp-0.0.0/external/vtu11/vtu11/inc/writer.hpp +87 -0
  347. mlhp-0.0.0/external/vtu11/vtu11/inc/zlibWriter.hpp +45 -0
  348. mlhp-0.0.0/external/vtu11/vtu11/vtu11.hpp +84 -0
  349. mlhp-0.0.0/include/mlhp/core/algorithm.hpp +217 -0
  350. mlhp-0.0.0/include/mlhp/core/alias.hpp +279 -0
  351. mlhp-0.0.0/include/mlhp/core/arrayfunctions.hpp +463 -0
  352. mlhp-0.0.0/include/mlhp/core/assembly.hpp +182 -0
  353. mlhp-0.0.0/include/mlhp/core/assembly_impl.hpp +176 -0
  354. mlhp-0.0.0/include/mlhp/core/basis.hpp +548 -0
  355. mlhp-0.0.0/include/mlhp/core/basis_impl.hpp +339 -0
  356. mlhp-0.0.0/include/mlhp/core/basisevaluation.hpp +221 -0
  357. mlhp-0.0.0/include/mlhp/core/basisevaluation_impl.hpp +344 -0
  358. mlhp-0.0.0/include/mlhp/core/boundary.hpp +140 -0
  359. mlhp-0.0.0/include/mlhp/core/compilermacros.hpp +49 -0
  360. mlhp-0.0.0/include/mlhp/core/dense.hpp +111 -0
  361. mlhp-0.0.0/include/mlhp/core/dense_impl.hpp +276 -0
  362. mlhp-0.0.0/include/mlhp/core/derivativeHelper.hpp +48 -0
  363. mlhp-0.0.0/include/mlhp/core/derivativeHelper_impl.hpp +150 -0
  364. mlhp-0.0.0/include/mlhp/core/forwarddeclare.hpp +78 -0
  365. mlhp-0.0.0/include/mlhp/core/implicit.hpp +85 -0
  366. mlhp-0.0.0/include/mlhp/core/implicit_impl.hpp +41 -0
  367. mlhp-0.0.0/include/mlhp/core/integrands.hpp +109 -0
  368. mlhp-0.0.0/include/mlhp/core/integrandtypes.hpp +185 -0
  369. mlhp-0.0.0/include/mlhp/core/kdtree.hpp +188 -0
  370. mlhp-0.0.0/include/mlhp/core/logging.hpp +72 -0
  371. mlhp-0.0.0/include/mlhp/core/mapping.hpp +645 -0
  372. mlhp-0.0.0/include/mlhp/core/memory.hpp +144 -0
  373. mlhp-0.0.0/include/mlhp/core/mesh.hpp +653 -0
  374. mlhp-0.0.0/include/mlhp/core/mesh_impl.hpp +249 -0
  375. mlhp-0.0.0/include/mlhp/core/multilevelhpcore.hpp +46 -0
  376. mlhp-0.0.0/include/mlhp/core/ndarray.hpp +204 -0
  377. mlhp-0.0.0/include/mlhp/core/ndarray_impl.hpp +452 -0
  378. mlhp-0.0.0/include/mlhp/core/numeric.hpp +80 -0
  379. mlhp-0.0.0/include/mlhp/core/parallel.hpp +74 -0
  380. mlhp-0.0.0/include/mlhp/core/partitioning.hpp +257 -0
  381. mlhp-0.0.0/include/mlhp/core/polynomials.hpp +128 -0
  382. mlhp-0.0.0/include/mlhp/core/postprocessing.hpp +499 -0
  383. mlhp-0.0.0/include/mlhp/core/postprocessing_impl.hpp +51 -0
  384. mlhp-0.0.0/include/mlhp/core/quadrature.hpp +79 -0
  385. mlhp-0.0.0/include/mlhp/core/refinement.hpp +63 -0
  386. mlhp-0.0.0/include/mlhp/core/sparse.hpp +207 -0
  387. mlhp-0.0.0/include/mlhp/core/spatial.hpp +434 -0
  388. mlhp-0.0.0/include/mlhp/core/spatial_impl.hpp +916 -0
  389. mlhp-0.0.0/include/mlhp/core/topologycore.hpp +78 -0
  390. mlhp-0.0.0/include/mlhp/core/triangulation.hpp +199 -0
  391. mlhp-0.0.0/include/mlhp/core/utilities.hpp +242 -0
  392. mlhp-0.0.0/include/mlhp/core/utilities_impl.hpp +340 -0
  393. mlhp-0.0.0/include/mlhp/core.hpp +41 -0
  394. mlhp-0.0.0/pyproject.toml +51 -0
  395. mlhp-0.0.0/src/core/algorithm.cpp +352 -0
  396. mlhp-0.0.0/src/core/assembly.cpp +1082 -0
  397. mlhp-0.0.0/src/core/basis.cpp +1407 -0
  398. mlhp-0.0.0/src/core/basisevaluation.cpp +302 -0
  399. mlhp-0.0.0/src/core/boundary.cpp +647 -0
  400. mlhp-0.0.0/src/core/config.hpp.in +30 -0
  401. mlhp-0.0.0/src/core/dense.cpp +560 -0
  402. mlhp-0.0.0/src/core/files.cmake +73 -0
  403. mlhp-0.0.0/src/core/implicit.cpp +226 -0
  404. mlhp-0.0.0/src/core/integrands.cpp +746 -0
  405. mlhp-0.0.0/src/core/kdtree.cpp +1156 -0
  406. mlhp-0.0.0/src/core/logging.cpp +56 -0
  407. mlhp-0.0.0/src/core/mesh.cpp +1914 -0
  408. mlhp-0.0.0/src/core/multilevelhpcore.cpp +655 -0
  409. mlhp-0.0.0/src/core/numeric.cpp +105 -0
  410. mlhp-0.0.0/src/core/partitioning.cpp +909 -0
  411. mlhp-0.0.0/src/core/polynomials.cpp +861 -0
  412. mlhp-0.0.0/src/core/postprocessing.cpp +1794 -0
  413. mlhp-0.0.0/src/core/quadrature.cpp +435 -0
  414. mlhp-0.0.0/src/core/refinement.cpp +162 -0
  415. mlhp-0.0.0/src/core/sparse.cpp +1263 -0
  416. mlhp-0.0.0/src/core/spatial.cpp +862 -0
  417. mlhp-0.0.0/src/core/topologycore.cpp +386 -0
  418. mlhp-0.0.0/src/core/triangulation.cpp +1670 -0
  419. mlhp-0.0.0/src/python/assembly.cpp +130 -0
  420. mlhp-0.0.0/src/python/discretization.cpp +845 -0
  421. mlhp-0.0.0/src/python/files.cmake +6 -0
  422. mlhp-0.0.0/src/python/helper.hpp +127 -0
  423. mlhp-0.0.0/src/python/linalg.cpp +39 -0
  424. mlhp-0.0.0/src/python/main.cpp +22 -0
  425. mlhp-0.0.0/src/python/mlhp.py +90 -0
  426. mlhp-0.0.0/tests/core/algorithm_test.cpp +121 -0
  427. mlhp-0.0.0/tests/core/assembly_test.cpp +334 -0
  428. mlhp-0.0.0/tests/core/basis_test.cpp +1398 -0
  429. mlhp-0.0.0/tests/core/basisfunctions_test.cpp +695 -0
  430. mlhp-0.0.0/tests/core/boundary_test.cpp +297 -0
  431. mlhp-0.0.0/tests/core/core_test.hpp +104 -0
  432. mlhp-0.0.0/tests/core/dense_test.cpp +162 -0
  433. mlhp-0.0.0/tests/core/files.cmake +29 -0
  434. mlhp-0.0.0/tests/core/implicit_test.cpp +93 -0
  435. mlhp-0.0.0/tests/core/integrands_test.cpp +188 -0
  436. mlhp-0.0.0/tests/core/kdtree_test.cpp +968 -0
  437. mlhp-0.0.0/tests/core/main_test.cpp +4 -0
  438. mlhp-0.0.0/tests/core/mapping_test.cpp +491 -0
  439. mlhp-0.0.0/tests/core/mesh_test.cpp +1232 -0
  440. mlhp-0.0.0/tests/core/ndarray_test.cpp +267 -0
  441. mlhp-0.0.0/tests/core/numeric_test.cpp +40 -0
  442. mlhp-0.0.0/tests/core/partitioning_test.cpp +314 -0
  443. mlhp-0.0.0/tests/core/projection_test.cpp +533 -0
  444. mlhp-0.0.0/tests/core/quadrature_test.cpp +231 -0
  445. mlhp-0.0.0/tests/core/singleBaseCell_2D.cpp +717 -0
  446. mlhp-0.0.0/tests/core/singleBaseCell_2D.hpp +141 -0
  447. mlhp-0.0.0/tests/core/sparse_test.cpp +252 -0
  448. mlhp-0.0.0/tests/core/spatialfunctions_test.cpp +943 -0
  449. mlhp-0.0.0/tests/core/testCases_test.cpp +185 -0
  450. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/leafMask.txt +5 -0
  451. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/levels.txt +21 -0
  452. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/locationMapLengths.txt +16 -0
  453. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/locationMaps.txt +404 -0
  454. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/neighbours.txt +118 -0
  455. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/parents.txt +36 -0
  456. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/positionsInParent.txt +460 -0
  457. mlhp-0.0.0/tests/core/testfiles/FicheraCorner3D/tensorProductIndices.txt +1 -0
  458. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/leafMask.txt +4 -0
  459. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/levels.txt +7 -0
  460. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/locationMapLengths.txt +8 -0
  461. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/locationMaps.txt +198 -0
  462. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/neighbours.txt +53 -0
  463. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/parents.txt +14 -0
  464. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/positionsInParent.txt +260 -0
  465. mlhp-0.0.0/tests/core/testfiles/HalfCircle2D/tensorProductIndices.txt +1 -0
  466. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face0.txt +33 -0
  467. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face1.txt +4 -0
  468. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face2.txt +59 -0
  469. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face3.txt +66 -0
  470. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face4.txt +32 -0
  471. mlhp-0.0.0/tests/core/testfiles/MeshBoundaryTriangulation/face5.txt +1 -0
  472. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/global.dat +1860 -0
  473. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/indexMap.dat +99 -0
  474. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/indices1.dat +30 -0
  475. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/indices2.dat +8 -0
  476. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/otherLocal1.dat +1860 -0
  477. mlhp-0.0.0/tests/core/testfiles/MeshIntersectionPartitioner/thisLocal1.dat +1860 -0
  478. mlhp-0.0.0/tests/core/testfiles/csg_binary.stl +0 -0
  479. mlhp-0.0.0/tests/core/testfiles/readStl_test.stl +86 -0
  480. mlhp-0.0.0/tests/core/triangulation_test.cpp +468 -0
  481. mlhp-0.0.0/tests/core/utilities_test.cpp +305 -0
  482. mlhp-0.0.0/tests/system/__init__.py +0 -0
  483. mlhp-0.0.0/tests/system/elasticity_test.cpp +393 -0
  484. mlhp-0.0.0/tests/system/files.cmake +18 -0
  485. mlhp-0.0.0/tests/system/j2plasticity_test.cpp +591 -0
  486. mlhp-0.0.0/tests/system/linear_heat.cpp +167 -0
  487. mlhp-0.0.0/tests/system/linear_heat_test.py +125 -0
  488. mlhp-0.0.0/tests/system/main_test.cpp +4 -0
  489. mlhp-0.0.0/tests/system/planestress_test.cpp +308 -0
  490. mlhp-0.0.0/tests/system/run_systemtests.py +6 -0
  491. mlhp-0.0.0/tests/system/singular_L2_test.cpp +131 -0
  492. mlhp-0.0.0/tests/system/singular_L2_test.py +74 -0
  493. mlhp-0.0.0/tests/system/singular_Poisson_test.cpp +245 -0
  494. mlhp-0.0.0/tests/system/singular_poisson_test.py +171 -0
  495. mlhp-0.0.0/tools/cmake/ConfigureBuildType.cmake +6 -0
  496. mlhp-0.0.0/tools/cmake/ConfigureCompiler.cmake +72 -0
  497. mlhp-0.0.0/tools/cmake/ConfigureInstantiation.cmake +20 -0
  498. mlhp-0.0.0/tools/cmake/CreateExampleDriver.cmake +37 -0
  499. mlhp-0.0.0/tools/doxygen/Doxyfile +332 -0
  500. mlhp-0.0.0/tools/scripts/avxbenchmark/benchmark.cpp.in +94 -0
  501. mlhp-0.0.0/tools/scripts/avxbenchmark/benchmark.py +186 -0
  502. mlhp-0.0.0/tools/scripts/avxbenchmark/printMedians.py +33 -0
  503. mlhp-0.0.0/tools/scripts/avxbenchmark/scheduleBenchmark.cmd +18 -0
mlhp-0.0.0/.git ADDED
@@ -0,0 +1 @@
1
+ gitdir: ../.git/modules/mlhp
mlhp-0.0.0/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ *.vscode
2
+ *.swp
3
+ *.vs
4
+ CMakeSettings.json
5
+ out/
6
+ build/
7
+ html/
8
+ latex/
9
+ dist/
@@ -0,0 +1,97 @@
1
+ # This file is part of the mlhp project. License: See LICENSE
2
+
3
+ image: registry.gitlab.com/phmkopp/mlhp/ubuntu21.04
4
+
5
+ .build_linux:
6
+
7
+ stage: build
8
+
9
+ script:
10
+
11
+ - git submodule update --init --recursive
12
+
13
+ - ${CXX_COMPILER} --version
14
+ - echo "${CellIndexSize}"
15
+ - echo "${DofIndexSize}"
16
+ - export CXXFLAGS="-Werror ${CXXFLAGS}"
17
+
18
+ # Configure & generate build project
19
+ - cmake -H"."
20
+ -D MLHP_DEBUG_CHECKS=ON
21
+ -D MLHP_ENABLE_EXAMPLES=ON
22
+ -D MLHP_ENABLE_EXAMPLES=ON
23
+ -D MLHP_ENABLE_CPP_EXAMPLE_FICHERA_CORNER=ON
24
+ -D MLHP_ENABLE_CPP_EXAMPLE_WING_ELASTIC_FCM=ON
25
+ -D MLHP_ENABLE_CPP_EXAMPLE_TRAVELLING_HEAT_SOURCE=ON
26
+ -D MLHP_ENABLE_PYTHONBINDINGS=ON
27
+ -D MLHP_ENABLE_OMP=On
28
+ -D MLHP_INDEX_SIZE_CELLS=${CellIndexSize}
29
+ -D MLHP_INDEX_SIZE_DOFS=${DofIndexSize}
30
+ -D CMAKE_CXX_COMPILER=${CXX_COMPILER}
31
+ -B "build"
32
+
33
+ # Invoke build in build subdirectory
34
+ - cmake --build "build" -- -j$(nproc)
35
+
36
+ artifacts:
37
+ paths:
38
+ - build/bin
39
+ - build/lib
40
+ - build/testfiles
41
+
42
+ only:
43
+ - master
44
+ - merge_requests
45
+
46
+ .test_linux:
47
+ stage: test
48
+
49
+ script:
50
+ - cd build
51
+ - ./bin/mlhpcore_testrunner
52
+ - ./bin/system_testrunner
53
+ - python3 ./bin/run_systemtests.py
54
+
55
+ only:
56
+ - master
57
+ - merge_requests
58
+
59
+ build_gcc:
60
+ extends: .build_linux
61
+
62
+ before_script:
63
+ - CXX_COMPILER=g++-10
64
+ - CellIndexSize=32
65
+ - DofIndexSize=64
66
+ - export CXXFLAGS="-Wno-error=suggest-attribute=pure"
67
+
68
+ test_gcc:
69
+ extends: .test_linux
70
+ needs:
71
+ - job: build_gcc
72
+ artifacts: true
73
+
74
+ build_clang:
75
+ extends: .build_linux
76
+
77
+ before_script:
78
+ - CXX_COMPILER=clang++-13
79
+ - CellIndexSize=16
80
+ - DofIndexSize=32
81
+
82
+ test_clang:
83
+ extends: .test_linux
84
+ needs:
85
+ - job: build_clang
86
+ artifacts: true
87
+
88
+ pages:
89
+ stage: deploy
90
+ script:
91
+ - doxygen tools/doxygen/Doxyfile
92
+ - mv html/ public/
93
+ artifacts:
94
+ paths:
95
+ - public
96
+ only:
97
+ - master
mlhp-0.0.0/.gitmodules ADDED
@@ -0,0 +1,6 @@
1
+ [submodule "external/vtu11"]
2
+ path = external/vtu11
3
+ url = https://github.com/phmkopp/vtu11.git
4
+ [submodule "required/pybind11"]
5
+ path = external/pybind11
6
+ url = https://github.com/pybind/pybind11.git
mlhp-0.0.0/.mailmap ADDED
@@ -0,0 +1,4 @@
1
+ Philipp Kopp <phmkopp@gmail.com>
2
+ Philipp Kopp <phmkopp@gmail.com> <philipp.kopp@tum.de>
3
+ Philipp Kopp <phmkopp@gmail.com> <ga49sos2@htcer10c05s09.cos.lrz.de>
4
+ Philipp Kopp <phmkopp@gmail.com> <philipp.kopp@tum.de>
@@ -0,0 +1,193 @@
1
+ # This file is part of the mlhp project. License: See LICENSE
2
+
3
+ cmake_minimum_required( VERSION 3.12 )
4
+
5
+ project( mlhp LANGUAGES CXX )
6
+
7
+ # Find out if mlhp is the root CMake project or not
8
+ get_directory_property( hasParent PARENT_DIRECTORY)
9
+ string( COMPARE EQUAL "${hasParent}" "" MLHP_IS_ROOT )
10
+
11
+ # ------------------- set project variables -----------------------
12
+
13
+ option( BUILD_SHARED_LIBS "Build shared library" ON )
14
+ option( MLHP_DEBUG_CHECKS "Enable debug checks with (hopefully) minor performance penalty." ON )
15
+ option( MLHP_ALL_OPTIMIZATIONS "Compile with all optimizations, including platform specific ones" ON )
16
+
17
+ option( MLHP_ENABLE_PYTHONBINDINGS "Enable pybind11 based python interface" OFF )
18
+ option( MLHP_ENABLE_TESTS "Enable unit-tests and system tests if also python bindings are ON." ${MLHP_IS_ROOT} )
19
+ option( MLHP_ENABLE_EXAMPLES "Enable example drivers." OFF )
20
+ option( MLHP_ENABLE_OMP "Compile with shared memory parallelism." ON )
21
+
22
+ set( MLHP_DIMENSIONS_TO_INSTANTIATE "1, 2, 3, 4" CACHE STRING "List of spatial dimensions to compile." )
23
+
24
+ set( MLHP_BUILD_ARCHIVE_DIR ${CMAKE_BINARY_DIR}/lib CACHE PATH "Build directory for static libs." )
25
+ set( MLHP_BUILD_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib CACHE PATH "Build directory for dynamic libs." )
26
+ set( MLHP_BUILD_BINARY_DIR ${CMAKE_BINARY_DIR}/bin CACHE PATH "Build directory for binaries." )
27
+
28
+ set( MLHP_SIMD_ALIGNMENT 32 CACHE STRING "Simd over-alignment 32 or 64, depending on cache line size of the CPU." )
29
+ set( MLHP_INDEX_SIZE_CELLS 32 CACHE STRING "Unsigned integer size used to index mesh cells." )
30
+ set( MLHP_INDEX_SIZE_DOFS 32 CACHE STRING "Unsigned integer size used to index degrees of freedom and sparse indices." )
31
+
32
+ mark_as_advanced( MLHP_BUILD_ARCHIVE_DIR MLHP_BUILD_LIBRARY_DIR MLHP_BUILD_BINARY_DIR
33
+ MLHP_INDEX_SIZE_CELLS MLHP_INDEX_SIZE_DOFS )
34
+
35
+ set( MLHP_OUTPUT_DIRS ARCHIVE_OUTPUT_DIRECTORY ${MLHP_BUILD_ARCHIVE_DIR}
36
+ LIBRARY_OUTPUT_DIRECTORY ${MLHP_BUILD_LIBRARY_DIR}
37
+ RUNTIME_OUTPUT_DIRECTORY ${MLHP_BUILD_BINARY_DIR} )
38
+
39
+ # Changes the default install path to build/install, assuming build is the project directory
40
+ if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
41
+ set ( CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/install" CACHE PATH "default install path" FORCE )
42
+ endif( )
43
+
44
+ # Set up build types with Release as default
45
+ include(tools/cmake/ConfigureBuildType.cmake)
46
+
47
+ # ---------------------------- Core -------------------------------
48
+
49
+ # Provides interface target vtu11::vtu11
50
+ add_subdirectory(external/vtu11)
51
+
52
+ # Create mlhp_public_compile_flags and mlhp_private_compile_flags interface targets
53
+ include(tools/cmake/ConfigureCompiler.cmake)
54
+
55
+ # Configure the explicit template instantiation of space dimensions
56
+ include(tools/cmake/ConfigureInstantiation.cmake)
57
+
58
+ # To automatically configure a library export header into build tree
59
+ include(GenerateExportHeader)
60
+
61
+ # Sets MLHP_CORE_SOURCES and MLHP_CORE_INCLUDES
62
+ include( src/core/files.cmake )
63
+
64
+ list( TRANSFORM MLHP_CORE_SOURCES PREPEND src/core/ )
65
+ list( TRANSFORM MLHP_CORE_INCLUDES PREPEND include/mlhp/core/ )
66
+
67
+ add_library( mlhpcore ${MLHP_CORE_SOURCES} ${MLHP_CORE_INCLUDES} include/mlhp/core.hpp )
68
+ add_library( mlhp::core ALIAS mlhpcore )
69
+
70
+ target_link_libraries( mlhpcore PRIVATE mlhp_private_compile_flags vtu11::vtu11
71
+ PUBLIC mlhp_public_compile_flags )
72
+
73
+ target_include_directories( mlhpcore PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
74
+ ${CMAKE_CURRENT_BINARY_DIR}/include )
75
+ # Not sure what this does: $<INSTALL_INTERFACE:include>
76
+
77
+ generate_export_header( mlhpcore EXPORT_MACRO_NAME MLHP_EXPORT EXPORT_FILE_NAME
78
+ ${CMAKE_CURRENT_BINARY_DIR}/include/mlhp/core/coreexport.hpp )
79
+
80
+ # Set output directories
81
+ set_target_properties( mlhpcore PROPERTIES ${MLHP_OUTPUT_DIRS} )
82
+
83
+ install( TARGETS mlhpcore
84
+ EXPORT mlhpcore-targets
85
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
86
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
87
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
88
+ INCLUDES DESTINATION ${LIBLEGACY_INCLUDE_DIRS} )
89
+
90
+ # install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/mlhp
91
+ # DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ )
92
+ #
93
+ # install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mlhp
94
+ # DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ )
95
+
96
+ # ----------------------- Core testrunner -------------------------
97
+
98
+ if( ${MLHP_ENABLE_TESTS} )
99
+
100
+ # Creates MLHP_CORE_TEST_SOURCES variable
101
+ include( tests/core/files.cmake )
102
+ include( tests/system/files.cmake )
103
+
104
+ list( TRANSFORM MLHP_CORE_TEST_SOURCES PREPEND tests/core/ )
105
+ list( TRANSFORM MLHP_SYSTEM_TEST_SOURCES PREPEND tests/system/ )
106
+
107
+ add_executable( mlhpcore_testrunner ${MLHP_CORE_TEST_SOURCES} )
108
+
109
+ target_link_libraries( mlhpcore_testrunner PRIVATE mlhp::core mlhp_private_compile_flags )
110
+
111
+ target_include_directories( mlhpcore_testrunner PRIVATE . )
112
+
113
+ file( GLOB MLHP_CORE_TESTFILES tests/core/testfiles/* )
114
+ file( COPY ${MLHP_CORE_TESTFILES} DESTINATION testfiles/core )
115
+
116
+ # Set output directories
117
+ set_target_properties( mlhpcore_testrunner PROPERTIES ${MLHP_OUTPUT_DIRS} )
118
+
119
+ # Setup system tests
120
+ add_executable( system_testrunner ${MLHP_SYSTEM_TEST_SOURCES} )
121
+
122
+ target_link_libraries( system_testrunner PRIVATE mlhp::core mlhp_private_compile_flags )
123
+
124
+ target_include_directories( system_testrunner PRIVATE . )
125
+
126
+ set_target_properties( system_testrunner PROPERTIES ${MLHP_OUTPUT_DIRS} )
127
+
128
+ endif( ${MLHP_ENABLE_TESTS} )
129
+
130
+ # --------------------------- Examples ----------------------------
131
+
132
+ include( tools/cmake/CreateExampleDriver.cmake )
133
+
134
+ CreateExampleCppDriver( fichera_corner "Poisson equation fichera corner benchmark." )
135
+ CreateExampleCppDriver( travelling_heat_source "Linear heat equation with moving point-like source." )
136
+ CreateExampleCppDriver( wing_elastic_fcm "FCM example with linear elasticity." )
137
+
138
+ CreateExamplePythonDriver( example_fcm "Placeholder fcm example." )
139
+ CreateExamplePythonDriver( example_gmsh "Compute with unstructured grid from gmsh file." )
140
+
141
+ # ----------------------- Python bindings -------------------------
142
+
143
+ if( ${MLHP_ENABLE_PYTHONBINDINGS} )
144
+
145
+ add_subdirectory( external/pybind11 )
146
+
147
+ # Creates MLHP_PYTHON_BINDING_SOURCES variable
148
+ include( src/python/files.cmake )
149
+
150
+ list( TRANSFORM MLHP_PYTHON_BINDING_SOURCES PREPEND src/python/ )
151
+
152
+ pybind11_add_module( pymlhpcore ${MLHP_PYTHON_BINDING_SOURCES} )
153
+
154
+ target_link_libraries( pymlhpcore PRIVATE mlhpcore mlhp_private_compile_flags )
155
+
156
+ target_include_directories( pymlhpcore PRIVATE . )
157
+
158
+ # Set output directories
159
+ set_target_properties( pymlhpcore PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${MLHP_BUILD_BINARY_DIR} )
160
+
161
+ # After building pymlhpcore write file bin/mlhpPath.py containing directory of python module
162
+ add_custom_command( TARGET pymlhpcore POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo
163
+ "$<TARGET_FILE_DIR:pymlhpcore>" > ${MLHP_BUILD_BINARY_DIR}/mlhpPythonPath )
164
+
165
+ # Copy python sources
166
+ file( COPY src/python/mlhp.py DESTINATION ${MLHP_BUILD_BINARY_DIR} )
167
+
168
+ #install( TARGETS pymlhpcore
169
+ # EXPORT pymlhpcore-targets
170
+ # ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
171
+ # LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR}
172
+ # RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
173
+
174
+ # This install works for building with scikit-build-core
175
+ install( TARGETS pymlhpcore LIBRARY DESTINATION . )
176
+ install( FILES src/python/mlhp.py DESTINATION . )
177
+
178
+ endif( ${MLHP_ENABLE_PYTHONBINDINGS} )
179
+
180
+ if( ${MLHP_ENABLE_PYTHONBINDINGS} AND ${MLHP_ENABLE_TESTS} )
181
+
182
+ # Creates MLHP_PYTHON_TESTS variable
183
+ include( tests/system/files.cmake )
184
+
185
+ list( TRANSFORM MLHP_PYTHON_TESTS PREPEND tests/system/ )
186
+
187
+ file( COPY ${MLHP_PYTHON_TESTS} DESTINATION ${MLHP_BUILD_BINARY_DIR}/systemtests )
188
+ file( COPY tests/system/run_systemtests.py DESTINATION ${MLHP_BUILD_BINARY_DIR} )
189
+
190
+ endif( ${MLHP_ENABLE_PYTHONBINDINGS} AND ${MLHP_ENABLE_TESTS} )
191
+
192
+ # Configure configuration header to build tree
193
+ configure_file( src/core/config.hpp.in include/mlhp/core/config.hpp )
mlhp-0.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Philipp Kopp
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
mlhp-0.0.0/PKG-INFO ADDED
@@ -0,0 +1,40 @@
1
+ Metadata-Version: 2.1
2
+ Name: mlhp
3
+ Version: 0.0.0
4
+ Summary: A work-in-progress finite element library.
5
+ Author: Philipp Kopp
6
+ Classifier: License :: OSI Approved :: MIT License
7
+ Project-URL: Homepage, https://gitlab.com/phmkopp/mlhp
8
+ Project-URL: Issues, https://github.com/phmkopp/mlhp/issues
9
+ Description-Content-Type: text/markdown
10
+
11
+ ## About
12
+
13
+ Mlhp is a C++ library with python bindings that implements multi-level _hp_- and other finite element methods efficiently also for dimensions > 3. The project is still very much work in progress and therefore does not have an extensive documentation.
14
+
15
+ ## Submodules
16
+
17
+ The header-only libraries [pybind11](https://pybind11.readthedocs.io/en/stable/), [Catch2](https://github.com/catchorg/Catch2), and [vtu11](https://github.com/phmkopp/vtu11) are included as git submodules. To clone them resursively, use:
18
+ ```
19
+ git clone --recursive https://gitlab.com/phmkopp/mlhp.git
20
+ ```
21
+
22
+ ## Getting started
23
+ - [Compiler and platform support](https://gitlab.com/phmkopp/mlhp/-/wikis/Compiler%20and%20platform%20support)
24
+ - [Setting up an executable that uses mlhp](https://gitlab.com/phmkopp/mlhp/-/wikis/Setting%20up%20an%20executable%20that%20uses%20mlhp).
25
+ - [Core class structure](https://gitlab.com/phmkopp/mlhp/-/wikis/Core%20class%20structure)
26
+ - [Doxygen documentation](https://phmkopp.gitlab.io/mlhp)
27
+
28
+ ## References and publications
29
+
30
+ If you use our code for your scientific research, please acknowledge this by referring to the following publication:
31
+
32
+ P. Kopp, E. Rank, V. M. Calo, S. Kollmannsberger, 2022: Efficient multi-level hp-finite elements in arbitrary dimensions, Computer Methods in Applied Mechanics and Engineering, Volume 401, Part B, 115575, DOI: [10.1016/j.cma.2022.115575](https://doi.org/10.1016/j.cma.2022.115575)
33
+
34
+ Here are some of the publications using this project:
35
+
36
+ - V. Holla, P. Kopp, J. Grünewald; P. Praegla, C. Meier, K. Wudy, S. Kollmannsberger, 2023: Laser beam shape optimization: Exploring alternative profiles to Gaussian-shaped laser beams in powder bed fusion of metals, 2023 International Solid Freeform Fabrication Symposium,
37
+ DOI: [10.26153/TSW/50986](https://doi.org/10.26153/TSW/50986)
38
+ - V. Holla, P. Kopp, J. Grünewald, K. Wudy, S. Kollmannsberger, 2023: Laser beam shape optimization in powder bed fusion of metals, Additive Manufacturing, Volume 72, 103609, DOI: [10.1016/j.addma.2023.103609](https://doi.org/10.1016/j.addma.2023.103609)
39
+ - P. Kopp, V. M. Calo, E. Rank, S. Kollmannsberger, 2022: Space-time hp-finite elements for heat evolution in laser powder bed fusion additive manufacturing, Engineering with Computers, Volume 38, pages 4879–4893, DOI: [10.1007/s00366-022-01719-1](https://doi.org/10.1007/s00366-022-01719-1)
40
+ - S. Kollmannsberger; P. Kopp, 2021: On accurate time integration for temperature evolutions in additive manufacturing, GAMM-Mitteilungen, Volume 44, Issue 4, DOI: [10.1002/gamm.202100019](https://doi.org/10.1002/gamm.202100019)
mlhp-0.0.0/README.md ADDED
@@ -0,0 +1,30 @@
1
+ ## About
2
+
3
+ Mlhp is a C++ library with python bindings that implements multi-level _hp_- and other finite element methods efficiently also for dimensions > 3. The project is still very much work in progress and therefore does not have an extensive documentation.
4
+
5
+ ## Submodules
6
+
7
+ The header-only libraries [pybind11](https://pybind11.readthedocs.io/en/stable/), [Catch2](https://github.com/catchorg/Catch2), and [vtu11](https://github.com/phmkopp/vtu11) are included as git submodules. To clone them resursively, use:
8
+ ```
9
+ git clone --recursive https://gitlab.com/phmkopp/mlhp.git
10
+ ```
11
+
12
+ ## Getting started
13
+ - [Compiler and platform support](https://gitlab.com/phmkopp/mlhp/-/wikis/Compiler%20and%20platform%20support)
14
+ - [Setting up an executable that uses mlhp](https://gitlab.com/phmkopp/mlhp/-/wikis/Setting%20up%20an%20executable%20that%20uses%20mlhp).
15
+ - [Core class structure](https://gitlab.com/phmkopp/mlhp/-/wikis/Core%20class%20structure)
16
+ - [Doxygen documentation](https://phmkopp.gitlab.io/mlhp)
17
+
18
+ ## References and publications
19
+
20
+ If you use our code for your scientific research, please acknowledge this by referring to the following publication:
21
+
22
+ P. Kopp, E. Rank, V. M. Calo, S. Kollmannsberger, 2022: Efficient multi-level hp-finite elements in arbitrary dimensions, Computer Methods in Applied Mechanics and Engineering, Volume 401, Part B, 115575, DOI: [10.1016/j.cma.2022.115575](https://doi.org/10.1016/j.cma.2022.115575)
23
+
24
+ Here are some of the publications using this project:
25
+
26
+ - V. Holla, P. Kopp, J. Grünewald; P. Praegla, C. Meier, K. Wudy, S. Kollmannsberger, 2023: Laser beam shape optimization: Exploring alternative profiles to Gaussian-shaped laser beams in powder bed fusion of metals, 2023 International Solid Freeform Fabrication Symposium,
27
+ DOI: [10.26153/TSW/50986](https://doi.org/10.26153/TSW/50986)
28
+ - V. Holla, P. Kopp, J. Grünewald, K. Wudy, S. Kollmannsberger, 2023: Laser beam shape optimization in powder bed fusion of metals, Additive Manufacturing, Volume 72, 103609, DOI: [10.1016/j.addma.2023.103609](https://doi.org/10.1016/j.addma.2023.103609)
29
+ - P. Kopp, V. M. Calo, E. Rank, S. Kollmannsberger, 2022: Space-time hp-finite elements for heat evolution in laser powder bed fusion additive manufacturing, Engineering with Computers, Volume 38, pages 4879–4893, DOI: [10.1007/s00366-022-01719-1](https://doi.org/10.1007/s00366-022-01719-1)
30
+ - S. Kollmannsberger; P. Kopp, 2021: On accurate time integration for temperature evolutions in additive manufacturing, GAMM-Mitteilungen, Volume 44, Issue 4, DOI: [10.1002/gamm.202100019](https://doi.org/10.1002/gamm.202100019)
@@ -0,0 +1,69 @@
1
+ import mlhp
2
+
3
+ D = 3
4
+
5
+ print( "1. Setting up mesh and basis", flush=True )
6
+
7
+ refinementDepth = 0
8
+ polynomialDegree = 2
9
+ nelements = [10] * D
10
+ lengths = [1.0] * D
11
+
12
+ alphaFCM = 1e-3 # needs better preconditioning
13
+
14
+ domain = mlhp.invert( mlhp.makeImplicitCube( [0.0,0.101,0.101], [1.0, 0.899, 0.899] ) )
15
+
16
+ strategy = mlhp.refineTowardsBoundary( domain, refinementDepth )
17
+
18
+ grid = mlhp.makeRefinedGrid( nelements, lengths )
19
+ grid.refine( strategy )
20
+
21
+ basis = mlhp.makeHpTensorSpace( grid, polynomialDegree, nfields=D )
22
+
23
+ print( "2. Computing dirichlet boundary conditions", flush=True )
24
+
25
+ dirichletFunction = mlhp.makeConstantFunction( D, 0.0 )
26
+
27
+ dirichlet = mlhp.integrateDirichletDofs( [dirichletFunction]*3, basis, [0] )
28
+
29
+ print( "3. Setting up physics", flush=True )
30
+
31
+ E = mlhp.makeConstantFunction( D, 200 * 1e9 )
32
+ nu = mlhp.makeConstantFunction( D, 0.3 )
33
+ rhs = mlhp.makeConstantFunction( D, [0.0, 0.0, 78.5 * 1e3] )
34
+
35
+ kinematics = mlhp.makeSmallStrainKinematics( D )
36
+ constitutive = mlhp.makeIsotropicElasticMaterial( E, nu )
37
+ integrand = mlhp.makeIntegrand( kinematics, constitutive, rhs )
38
+
39
+ print( "4. Allocating linear system", flush=True )
40
+
41
+ matrix = mlhp.allocateUnsymmetricSparseMatrix( basis, dirichlet[0] )
42
+ vector = mlhp.allocateVectorWithSameSize( matrix )
43
+
44
+ print( "5. Integrating linear system", flush=True )
45
+
46
+ quadrature = mlhp.makeMomentFittingQuadrature( domain,
47
+ depth=polynomialDegree + 1, epsilon=alphaFCM )
48
+
49
+ mlhp.integrateOnDomain( basis, integrand, [matrix, vector],
50
+ dirichletDofs=dirichlet, quadrature=quadrature )
51
+
52
+ print( "6. Solving linear system", flush=True )
53
+
54
+ P = mlhp.makeAdditiveSchwarzPreconditioner( matrix, basis, dirichlet[0] )
55
+ #P = mlhp.makeDiagonalPreconditioner( matrix )
56
+
57
+ interiorDofs, norms = mlhp.cg( matrix, vector, preconditioner=P, maxit=1000, residualNorms=True )
58
+
59
+ allDofs = mlhp.inflateDofs( interiorDofs, dirichlet )
60
+
61
+ print( "7. Postprocessing solution", flush=True )
62
+
63
+ processors = [mlhp.makeSolutionProcessor( D, allDofs, "Displacement" ),
64
+ mlhp.makeFunctionProcessor( domain )]
65
+
66
+ postmesh = mlhp.createGridOnCells( [polynomialDegree + 3] * D )
67
+ writer = mlhp.PVtuOutput( filename="outputs/linear_elasticity" )
68
+
69
+ mlhp.writeBasisOutput( basis, postmesh, writer, processors )
@@ -0,0 +1,93 @@
1
+ import mlhp
2
+ import sys
3
+ import numpy
4
+ import gmshparser
5
+
6
+ assert( len( sys.argv ) == 2 )
7
+
8
+ print( "1. Reading mesh", flush=True )
9
+
10
+ mesh = gmshparser.parse( sys.argv[1] )
11
+
12
+ vertices = numpy.array( [node.get_coordinates( ) for entity in mesh.get_node_entities( ) for node in entity.get_nodes( )] )
13
+ cells = [element.get_connectivity( ) for entity in mesh.get_element_entities( ) for element in entity.get_elements( )]
14
+ types = numpy.array([entity.get_element_type( ) for entity in mesh.get_element_entities( ) for element in entity.get_elements( )])
15
+
16
+ # Mesh is 3D
17
+ if numpy.any(types == 4) or numpy.any(types == 5):
18
+ vertices = [vertex[:3] for vertex in vertices]
19
+ # https://gmsh.info/dev/doc/texinfo/gmsh.pdf page 362/372
20
+ hexes = [[cell[0], cell[1], cell[3], cell[2], cell[4], cell[5], cell[7], cell[6]]\
21
+ for type, cell in zip(types, cells) if type == 5]
22
+ cells = hexes + [cell for type, cell in zip(types, cells) if type == 4]
23
+
24
+ # Mesh is 2D
25
+ elif numpy.any(types == 2) or numpy.any(types == 3):
26
+ vertices = [vertex[:2] for vertex in vertices]
27
+ quads = [[cell[0], cell[1], cell[3], cell[2]] for type, cell in zip(types, cells) if type == 3]
28
+ cells = quads + [cell for type, cell in zip(types, cells) if type == 2]
29
+ else:
30
+ RuntimeError("Did not find 2- or 3D cubic or simplex elements")
31
+
32
+ offsets = numpy.cumsum( [0] + [len(cell) for cell in cells] )
33
+ cells = numpy.array( [id for cell in cells for id in cell] ) - 1
34
+
35
+ print( "2. Setting up mesh and basis", flush=True )
36
+
37
+ mesh = mlhp.makeUnstructuredMesh( vertices, cells, offsets )
38
+
39
+ ndim = mesh.ndim( )
40
+ nfields = ndim
41
+
42
+ basis = mlhp.makeUnstructuredBasis( mesh, nfields )
43
+
44
+ print( mesh )
45
+ print( basis )
46
+
47
+ print( "3. Computing dirichlet boundary conditions", flush=True )
48
+
49
+ dirichletFunction = mlhp.makeConstantFunction( ndim, 0.0 )
50
+
51
+ dirichlet = mlhp.integrateDirichletDofs( [dirichletFunction] * nfields, basis, [0] )
52
+
53
+ print( "4. Setting up physics", flush=True )
54
+
55
+ E = mlhp.makeConstantFunction( ndim, 200 * 1e9 )
56
+ nu = mlhp.makeConstantFunction( ndim, 0.3 )
57
+ rhs = mlhp.makeConstantFunction( ndim, [0.0] * (ndim - 1) + [-1.0] )
58
+
59
+ if ndim == 3:
60
+ constitutive = mlhp.makeIsotropicElasticMaterial( E, nu )
61
+ if ndim == 2:
62
+ constitutive = mlhp.makePlaneStressMaterial( E, nu )
63
+
64
+ kinematics = mlhp.makeSmallStrainKinematics( ndim )
65
+ integrand = mlhp.makeIntegrand( kinematics, constitutive, rhs )
66
+
67
+ print( "5. Allocating linear system", flush=True )
68
+
69
+ matrix = mlhp.allocateUnsymmetricSparseMatrix( basis, dirichlet[0] )
70
+ vector = mlhp.allocateVectorWithSameSize( matrix )
71
+
72
+ print( "6. Integrating linear system", flush=True )
73
+
74
+ mlhp.integrateOnDomain( basis, integrand, [matrix, vector],
75
+ dirichletDofs=dirichlet )
76
+
77
+ print( "7. Solving linear system", flush=True )
78
+
79
+ P = mlhp.makeDiagonalPreconditioner( matrix )
80
+
81
+ interiorDofs, norms = mlhp.cg( matrix, vector, preconditioner=P, maxit=5000, residualNorms=True )
82
+
83
+ allDofs = mlhp.inflateDofs( interiorDofs, dirichlet )
84
+
85
+ print( "8. Postprocessing solution", flush=True )
86
+
87
+ processors = [mlhp.makeSolutionProcessor( ndim, allDofs, "Displacement" ),
88
+ mlhp.makeVonMisesProcessor( allDofs, kinematics, constitutive )]
89
+
90
+ postmesh = mlhp.createGridOnCells( [1] * ndim )
91
+ writer = mlhp.PVtuOutput( filename="outputs/example_gmsh" )
92
+
93
+ mlhp.writeBasisOutput( basis, postmesh, writer, processors )
@@ -0,0 +1,98 @@
1
+ // This file is part of the mlhp project. License: See LICENSE
2
+
3
+ #include "mlhp/core.hpp"
4
+
5
+ int main( )
6
+ {
7
+ using namespace mlhp;
8
+
9
+ static constexpr size_t D = 2;
10
+
11
+ // Analytical solution
12
+ auto solution = solution::singularSolution<D>( );
13
+ auto solutionDerivatives = solution::singularSolutionDerivatives<D>( );
14
+ auto source = solution::singularSolutionSource<D>( );
15
+
16
+ // Create and refine grid
17
+ auto nelements = array::makeSizes<D>( 2 );
18
+ auto lengths = array::make<D>( 1.0 );
19
+
20
+ auto grid = makeRefinedGrid( nelements, lengths );
21
+
22
+ size_t nlevels = 20;
23
+
24
+ auto collapsedCircle = implicit::sphere<D>( array::make<D>( 0.0 ), 1e-10 );
25
+ auto refinementStrategy = refineTowardsDomainBoundary( collapsedCircle, nlevels );
26
+
27
+ grid->refine( refinementStrategy );
28
+
29
+ print( *grid, std::cout );
30
+
31
+ // Create multi-level hp basis on refined grid
32
+ auto grading = UniformGrading { nlevels }; // fekernel::LinearGrading { 1 }
33
+
34
+ using AnsatzSpace = TrunkSpace; // TensorSpace
35
+
36
+ auto basis = makeHpBasis<AnsatzSpace>( grid, grading );
37
+
38
+ print( *basis, std::cout );
39
+
40
+ // Boundary conditions
41
+ std::vector<size_t> faces;
42
+
43
+ for( size_t axis = 0; axis < D; ++axis )
44
+ {
45
+ faces.push_back( boundary::face( axis, 1 ) );
46
+ }
47
+
48
+ auto boundaryDofs = boundary::boundaryDofs<D>( solution, *basis, faces );
49
+
50
+ // Allocate sparse linear system
51
+ auto matrix = allocateMatrix<linalg::UnsymmetricSparseMatrix>( *basis, boundaryDofs.first );
52
+
53
+ std::vector<double> F( matrix.size1( ), 0.0 );
54
+
55
+ linalg::print( matrix, std::cout );
56
+
57
+ // Integrate system
58
+ auto conductivity = spatial::constantFunction<D>( 1.0 );
59
+
60
+ auto integrand = makePoissonIntegrand( conductivity, source );
61
+
62
+ integrateOnDomain( *basis, integrand, { matrix, F }, boundaryDofs );
63
+
64
+ // Solve equation system
65
+ auto interiorSolution = linalg::makeCGSolver( 1e-10 )( matrix, F );
66
+
67
+ auto fullSolution = boundary::inflate( interiorSolution, boundaryDofs );
68
+
69
+ // Write .vtu output
70
+ if constexpr( D <= 3 )
71
+ {
72
+ auto nsamples = array::makeSizes<D>( 10 );
73
+
74
+ auto numerical = makeSolutionProcessor<D>( fullSolution );
75
+ auto analytical = makeFunctionProcessor<D>( solution, "AnalyticalSolution" );
76
+ auto rhs = makeFunctionProcessor<D>( source, "Source" );
77
+
78
+ auto path = "outputs/singular_" + std::to_string( D ) + "D_" + std::to_string( nlevels ) + ".vtu";
79
+ auto postmesh = createGridOnCells( nsamples );
80
+
81
+ writeOutput( *basis, postmesh, std::tuple { numerical, analytical, rhs }, VtuOutput { path } );
82
+ }
83
+
84
+ // Integrate errors with p + 3 points
85
+ //auto l2ErrorIntegrand = makeL2ErrorIntegrand( fullSolution, solution );
86
+ auto energyErrorIntegrand = makeEnergyErrorIntegrand( fullSolution, solutionDerivatives );
87
+
88
+ //auto l2Integrals = ErrorIntegrals { };
89
+ auto energyIntegrals = ErrorIntegrals { };
90
+
91
+ integrateOnDomain( *basis, energyErrorIntegrand, energyIntegrals, makeIntegrationOrderDeterminor<D>( 3 ) );
92
+
93
+ double percent = energyIntegrals.relativeDifference( ) * 100.0;
94
+
95
+ std::cout << "Number of internal dofs : " << interiorSolution.size( ) << std::endl;
96
+ std::cout << "Energy error || u - u^h || / || u || * 100% : " << percent << std::endl;
97
+ }
98
+