mlhp 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. {mlhp-0.2.0 → mlhp-0.2.2}/.gitlab-ci.yml +3 -2
  2. {mlhp-0.2.0 → mlhp-0.2.2}/CMakeLists.txt +3 -1
  3. {mlhp-0.2.0 → mlhp-0.2.2}/PKG-INFO +1 -1
  4. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_fcm_csg.py +26 -36
  5. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_fcm_stl.py +3 -4
  6. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gyroid.py +1 -1
  7. mlhp-0.2.2/examples/elastic_mapped_thin_solid.py +159 -0
  8. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_wave_IMEX_SEM.py +7 -4
  9. {mlhp-0.2.0 → mlhp-0.2.2}/examples/fichera_corner.cpp +1 -0
  10. {mlhp-0.2.0 → mlhp-0.2.2}/examples/hyperelastic_gyroid.py +3 -3
  11. {mlhp-0.2.0 → mlhp-0.2.2}/examples/interactive_eigenmodes.py +2 -1
  12. {mlhp-0.2.0 → mlhp-0.2.2}/examples/j2_plasticity_compiled.py +43 -16
  13. {mlhp-0.2.0 → mlhp-0.2.2}/examples/j2_pressurized_sphere_fcm.cpp +65 -358
  14. {mlhp-0.2.0 → mlhp-0.2.2}/examples/linear_elastic_fcm_stl.cpp +2 -3
  15. {mlhp-0.2.0 → mlhp-0.2.2}/examples/navier_stokes_vms.cpp +1 -2
  16. {mlhp-0.2.0 → mlhp-0.2.2}/examples/planestress_fcm_lshaped_adaptive.py +6 -3
  17. {mlhp-0.2.0 → mlhp-0.2.2}/examples/planestress_fcm_plate_with_hole.py +3 -2
  18. {mlhp-0.2.0 → mlhp-0.2.2}/examples/poisson_compiled.py +15 -13
  19. {mlhp-0.2.0 → mlhp-0.2.2}/examples/scalar_wave_SEM.py +1 -1
  20. mlhp-0.2.2/examples/thermoelastic_spinodoid_fcm.py +197 -0
  21. {mlhp-0.2.0 → mlhp-0.2.2}/examples/travelling_heat_source.cpp +1 -0
  22. {mlhp-0.2.0 → mlhp-0.2.2}/examples/waveequation_matrix_free.cpp +5 -0
  23. {mlhp-0.2.0 → mlhp-0.2.2}/examples/wing_elastic_fcm.cpp +1 -0
  24. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/alias.hpp +1 -1
  25. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/assembly.hpp +2 -1
  26. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basisevaluation.hpp +1 -1
  27. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/dense.hpp +3 -3
  28. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/forwarddeclare.hpp +0 -1
  29. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/integrands.hpp +85 -60
  30. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mapping.hpp +60 -0
  31. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/memory.hpp +1 -1
  32. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mesh.hpp +71 -5
  33. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mesh_impl.hpp +7 -1
  34. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/meshfunction.hpp +35 -0
  35. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/parallel.hpp +3 -3
  36. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/partitioning.hpp +3 -3
  37. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/postprocessing.hpp +9 -5
  38. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/sparse.hpp +7 -7
  39. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/spatial.hpp +42 -9
  40. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/spatial_impl.hpp +167 -11
  41. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/triangulation.hpp +78 -2
  42. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/utilities.hpp +24 -7
  43. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/assembly.cpp +20 -7
  44. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/cellmesh.cpp +2 -2
  45. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/integrands.cpp +711 -420
  46. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/kdtree.cpp +1 -1
  47. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/mesh.cpp +225 -42
  48. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/meshfunction.cpp +221 -0
  49. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/parallel.cpp +2 -2
  50. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/polynomials.cpp +1 -1
  51. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/postprocessing.cpp +31 -0
  52. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/sparse.cpp +5 -5
  53. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/spatial.cpp +1 -14
  54. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/triangulation.cpp +680 -5
  55. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/assemblybindings.cpp +95 -90
  56. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/discretebindings.cpp +273 -68
  57. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/meshfunctionbindings.cpp +107 -29
  58. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/mlhp.py +354 -182
  59. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/postprocessingbindings.cpp +20 -1
  60. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/pymlhpcore.hpp +90 -31
  61. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/spatialbindings.cpp +250 -58
  62. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/assembly_test.cpp +47 -2
  63. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/integrands_test.cpp +165 -1
  64. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/mapping_test.cpp +34 -0
  65. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/mesh_test.cpp +259 -0
  66. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/meshfunction_test.cpp +52 -0
  67. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/spatialfunctions_test.cpp +176 -1
  68. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/triangulation_test.cpp +386 -0
  69. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/collection_test.py +195 -0
  70. mlhp-0.2.2/tests/system/compiled_field_test.py +107 -0
  71. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/elasticity_test.cpp +8 -6
  72. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/files.cmake +3 -0
  73. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/immersed_beam_test.py +1 -1
  74. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/j2plasticity_test.cpp +1 -1
  75. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/largedeformation_test.cpp +1 -1
  76. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/nitsche_nonlinear_test.py +2 -2
  77. mlhp-0.2.2/tests/system/nitsche_poisson_test.py +100 -0
  78. mlhp-0.2.2/tests/system/prestrain_test.py +136 -0
  79. {mlhp-0.2.0 → mlhp-0.2.2}/.gitignore +0 -0
  80. {mlhp-0.2.0 → mlhp-0.2.2}/.gitmodules +0 -0
  81. {mlhp-0.2.0 → mlhp-0.2.2}/LICENSE +0 -0
  82. {mlhp-0.2.0 → mlhp-0.2.2}/README.md +0 -0
  83. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gmsh.msh +0 -0
  84. {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gmsh.py +0 -0
  85. {mlhp-0.2.0 → mlhp-0.2.2}/external/catch2/catch.hpp +0 -0
  86. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.appveyor.yml +0 -0
  87. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.clang-format +0 -0
  88. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.clang-tidy +0 -0
  89. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.cmake-format.yaml +0 -0
  90. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.codespell-ignore-lines +0 -0
  91. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.gitattributes +0 -0
  92. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/CODEOWNERS +0 -0
  93. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/CONTRIBUTING.md +0 -0
  94. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  95. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -0
  96. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/dependabot.yml +0 -0
  97. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/labeler.yml +0 -0
  98. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/labeler_merged.yml +0 -0
  99. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/matchers/pylint.json +0 -0
  100. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/pull_request_template.md +0 -0
  101. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/ci.yml +0 -0
  102. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/configure.yml +0 -0
  103. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/docs-link.yml +0 -0
  104. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/format.yml +0 -0
  105. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/labeler.yml +0 -0
  106. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/nightlies.yml +0 -0
  107. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/pip.yml +0 -0
  108. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/reusable-standard.yml +0 -0
  109. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/tests-cibw.yml +0 -0
  110. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/upstream.yml +0 -0
  111. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.gitignore +0 -0
  112. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.pre-commit-config.yaml +0 -0
  113. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.readthedocs.yml +0 -0
  114. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/CMakeLists.txt +0 -0
  115. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/CMakePresets.json +0 -0
  116. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/LICENSE +0 -0
  117. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/README.rst +0 -0
  118. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/SECURITY.md +0 -0
  119. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/Doxyfile +0 -0
  120. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/_static/css/custom.css +0 -0
  121. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/chrono.rst +0 -0
  122. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/custom.rst +0 -0
  123. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/eigen.rst +0 -0
  124. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/functional.rst +0 -0
  125. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/index.rst +0 -0
  126. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/overview.rst +0 -0
  127. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/stl.rst +0 -0
  128. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/strings.rst +0 -0
  129. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/classes.rst +0 -0
  130. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/deadlock.md +0 -0
  131. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/deprecated.rst +0 -0
  132. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/embedding.rst +0 -0
  133. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/exceptions.rst +0 -0
  134. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/functions.rst +0 -0
  135. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/misc.rst +0 -0
  136. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/index.rst +0 -0
  137. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/numpy.rst +0 -0
  138. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/object.rst +0 -0
  139. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/utilities.rst +0 -0
  140. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/smart_ptrs.rst +0 -0
  141. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/basics.rst +0 -0
  142. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/benchmark.py +0 -0
  143. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/benchmark.rst +0 -0
  144. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/changelog.md +0 -0
  145. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/classes.rst +0 -0
  146. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/cmake/index.rst +0 -0
  147. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/compiling.rst +0 -0
  148. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/conf.py +0 -0
  149. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/faq.rst +0 -0
  150. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/index.rst +0 -0
  151. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/installing.rst +0 -0
  152. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/limitations.rst +0 -0
  153. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11-logo.png +0 -0
  154. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  155. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python1.svg +0 -0
  156. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  157. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python2.svg +0 -0
  158. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/reference.rst +0 -0
  159. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/release.rst +0 -0
  160. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/requirements.in +0 -0
  161. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/requirements.txt +0 -0
  162. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/upgrade.rst +0 -0
  163. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/attr.h +0 -0
  164. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/buffer_info.h +0 -0
  165. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/cast.h +0 -0
  166. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/chrono.h +0 -0
  167. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/common.h +0 -0
  168. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/complex.h +0 -0
  169. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/README.txt +0 -0
  170. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +0 -0
  171. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +0 -0
  172. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/wrap_include_python_h.h +0 -0
  173. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/critical_section.h +0 -0
  174. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/class.h +0 -0
  175. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/common.h +0 -0
  176. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/cpp_conduit.h +0 -0
  177. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/descr.h +0 -0
  178. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +0 -0
  179. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/exception_translation.h +0 -0
  180. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/function_record_pyobject.h +0 -0
  181. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/init.h +0 -0
  182. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/internals.h +0 -0
  183. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/native_enum_data.h +0 -0
  184. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/pybind11_namespace_macros.h +0 -0
  185. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/struct_smart_holder.h +0 -0
  186. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/type_caster_base.h +0 -0
  187. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/typeid.h +0 -0
  188. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/using_smart_holder.h +0 -0
  189. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/value_and_holder.h +0 -0
  190. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/common.h +0 -0
  191. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/matrix.h +0 -0
  192. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/tensor.h +0 -0
  193. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen.h +0 -0
  194. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/embed.h +0 -0
  195. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eval.h +0 -0
  196. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/functional.h +0 -0
  197. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil.h +0 -0
  198. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil_safe_call_once.h +0 -0
  199. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil_simple.h +0 -0
  200. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/iostream.h +0 -0
  201. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/native_enum.h +0 -0
  202. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/numpy.h +0 -0
  203. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/operators.h +0 -0
  204. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/options.h +0 -0
  205. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/pybind11.h +0 -0
  206. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/pytypes.h +0 -0
  207. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl/filesystem.h +0 -0
  208. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl.h +0 -0
  209. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl_bind.h +0 -0
  210. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/subinterpreter.h +0 -0
  211. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/trampoline_self_life_support.h +0 -0
  212. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/type_caster_pyobject_ptr.h +0 -0
  213. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/typing.h +0 -0
  214. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/warnings.h +0 -0
  215. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/noxfile.py +0 -0
  216. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/__init__.py +0 -0
  217. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/__main__.py +0 -0
  218. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/_version.py +0 -0
  219. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/commands.py +0 -0
  220. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/py.typed +0 -0
  221. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/setup_helpers.py +0 -0
  222. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pyproject.toml +0 -0
  223. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/CMakeLists.txt +0 -0
  224. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/conftest.py +0 -0
  225. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/constructor_stats.h +0 -0
  226. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/cross_module_gil_utils.cpp +0 -0
  227. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/cross_module_interleaved_error_already_set.cpp +0 -0
  228. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/custom_exceptions.py +0 -0
  229. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +0 -0
  230. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/env.py +0 -0
  231. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/exo_planet_c_api.cpp +0 -0
  232. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/exo_planet_pybind11.cpp +0 -0
  233. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_python_package/pytest.ini +0 -0
  234. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_python_package/test_files.py +0 -0
  235. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  236. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -0
  237. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/home_planet_very_lonely_traveler.cpp +0 -0
  238. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/local_bindings.h +0 -0
  239. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/mod_per_interpreter_gil.cpp +0 -0
  240. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/mod_shared_interpreter_gil.cpp +0 -0
  241. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/object.h +0 -0
  242. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/CMakeLists.txt +0 -0
  243. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/smart_holder_poc.h +0 -0
  244. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/smart_holder_poc_test.cpp +0 -0
  245. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_cross_module_tests.cpp +0 -0
  246. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_tests.cpp +0 -0
  247. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_tests.h +0 -0
  248. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pyproject.toml +0 -0
  249. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pytest.ini +0 -0
  250. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/requirements.txt +0 -0
  251. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_async.cpp +0 -0
  252. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_async.py +0 -0
  253. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_buffers.cpp +0 -0
  254. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_buffers.py +0 -0
  255. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_builtin_casters.cpp +0 -0
  256. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_builtin_casters.py +0 -0
  257. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_call_policies.cpp +0 -0
  258. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_call_policies.py +0 -0
  259. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_callbacks.cpp +0 -0
  260. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_callbacks.py +0 -0
  261. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_chrono.cpp +0 -0
  262. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_chrono.py +0 -0
  263. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class.cpp +0 -0
  264. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class.py +0 -0
  265. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.cpp +0 -0
  266. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.py +0 -0
  267. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_basic.cpp +0 -0
  268. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_basic.py +0 -0
  269. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning.cpp +0 -0
  270. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning.py +0 -0
  271. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning_mi.cpp +0 -0
  272. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning_mi.py +0 -0
  273. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_factory_constructors.cpp +0 -0
  274. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_factory_constructors.py +0 -0
  275. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_inheritance.cpp +0 -0
  276. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_inheritance.py +0 -0
  277. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_mi_thunks.cpp +0 -0
  278. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_mi_thunks.py +0 -0
  279. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property.cpp +0 -0
  280. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property.py +0 -0
  281. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property_non_owning.cpp +0 -0
  282. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property_non_owning.py +0 -0
  283. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_shared_ptr_copy_move.cpp +0 -0
  284. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_shared_ptr_copy_move.py +0 -0
  285. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_basic.cpp +0 -0
  286. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_basic.py +0 -0
  287. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_self_life_support.cpp +0 -0
  288. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_self_life_support.py +0 -0
  289. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_from_this.cpp +0 -0
  290. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_from_this.py +0 -0
  291. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +0 -0
  292. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +0 -0
  293. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_unique_ptr.cpp +0 -0
  294. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_unique_ptr.py +0 -0
  295. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.cpp +0 -0
  296. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.py +0 -0
  297. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_member.cpp +0 -0
  298. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_member.py +0 -0
  299. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_virtual_py_cpp_mix.cpp +0 -0
  300. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_virtual_py_cpp_mix.py +0 -0
  301. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -0
  302. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/embed.cpp +0 -0
  303. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -0
  304. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -0
  305. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -0
  306. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/main.cpp +0 -0
  307. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -0
  308. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -0
  309. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -0
  310. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/test.py +0 -0
  311. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_const_name.cpp +0 -0
  312. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_const_name.py +0 -0
  313. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_constants_and_functions.cpp +0 -0
  314. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_constants_and_functions.py +0 -0
  315. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_copy_move.cpp +0 -0
  316. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_copy_move.py +0 -0
  317. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit.cpp +0 -0
  318. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit.py +0 -0
  319. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit_traveler_bindings.h +0 -0
  320. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit_traveler_types.h +0 -0
  321. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/CMakeLists.txt +0 -0
  322. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/bindings.cpp +0 -0
  323. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/catch.cpp +0 -0
  324. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/lib.cpp +0 -0
  325. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/lib.h +0 -0
  326. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/test_cross_module_rtti.cpp +0 -0
  327. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_casters.cpp +0 -0
  328. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_casters.py +0 -0
  329. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_setup.cpp +0 -0
  330. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_setup.py +0 -0
  331. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docs_advanced_cast_custom.cpp +0 -0
  332. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docs_advanced_cast_custom.py +0 -0
  333. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docstring_options.cpp +0 -0
  334. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docstring_options.py +0 -0
  335. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_matrix.cpp +0 -0
  336. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_matrix.py +0 -0
  337. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.cpp +0 -0
  338. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.inl +0 -0
  339. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.py +0 -0
  340. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/CMakeLists.txt +0 -0
  341. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/catch.cpp +0 -0
  342. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/external_module.cpp +0 -0
  343. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_interpreter.cpp +0 -0
  344. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_interpreter.py +0 -0
  345. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_subinterpreter.cpp +0 -0
  346. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_trampoline.py +0 -0
  347. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_enum.cpp +0 -0
  348. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_enum.py +0 -0
  349. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval.cpp +0 -0
  350. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval.py +0 -0
  351. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval_call.py +0 -0
  352. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.cpp +0 -0
  353. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.h +0 -0
  354. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.py +0 -0
  355. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_factory_constructors.cpp +0 -0
  356. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_factory_constructors.py +0 -0
  357. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_gil_scoped.cpp +0 -0
  358. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_gil_scoped.py +0 -0
  359. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_iostream.cpp +0 -0
  360. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_iostream.py +0 -0
  361. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_kwargs_and_defaults.cpp +0 -0
  362. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_kwargs_and_defaults.py +0 -0
  363. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_local_bindings.cpp +0 -0
  364. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_local_bindings.py +0 -0
  365. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_methods_and_attributes.cpp +0 -0
  366. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_methods_and_attributes.py +0 -0
  367. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_modules.cpp +0 -0
  368. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_modules.py +0 -0
  369. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_inheritance.cpp +0 -0
  370. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_inheritance.py +0 -0
  371. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_interpreters.py +0 -0
  372. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_native_enum.cpp +0 -0
  373. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_native_enum.py +0 -0
  374. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_array.cpp +0 -0
  375. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_array.py +0 -0
  376. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_dtypes.cpp +0 -0
  377. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_dtypes.py +0 -0
  378. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_scalars.cpp +0 -0
  379. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_scalars.py +0 -0
  380. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_vectorize.cpp +0 -0
  381. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_vectorize.py +0 -0
  382. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_opaque_types.cpp +0 -0
  383. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_opaque_types.py +0 -0
  384. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_operator_overloading.cpp +0 -0
  385. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_operator_overloading.py +0 -0
  386. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pickling.cpp +0 -0
  387. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pickling.py +0 -0
  388. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_potentially_slicing_weak_ptr.cpp +0 -0
  389. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_potentially_slicing_weak_ptr.py +0 -0
  390. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_python_multiple_inheritance.cpp +0 -0
  391. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_python_multiple_inheritance.py +0 -0
  392. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pytypes.cpp +0 -0
  393. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pytypes.py +0 -0
  394. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_scoped_critical_section.cpp +0 -0
  395. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_scoped_critical_section.py +0 -0
  396. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_sequences_and_iterators.cpp +0 -0
  397. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_sequences_and_iterators.py +0 -0
  398. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_smart_ptr.cpp +0 -0
  399. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_smart_ptr.py +0 -0
  400. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl.cpp +0 -0
  401. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl.py +0 -0
  402. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl_binders.cpp +0 -0
  403. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl_binders.py +0 -0
  404. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_tagbased_polymorphic.cpp +0 -0
  405. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_tagbased_polymorphic.py +0 -0
  406. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_thread.cpp +0 -0
  407. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_thread.py +0 -0
  408. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_pyobject_ptr.cpp +0 -0
  409. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_pyobject_ptr.py +0 -0
  410. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_std_function_specializations.cpp +0 -0
  411. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_std_function_specializations.py +0 -0
  412. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_union.cpp +0 -0
  413. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_union.py +0 -0
  414. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_a.cpp +0 -0
  415. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_a.py +0 -0
  416. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_b.cpp +0 -0
  417. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_b.py +0 -0
  418. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_vector_unique_ptr_member.cpp +0 -0
  419. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_vector_unique_ptr_member.py +0 -0
  420. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_virtual_functions.cpp +0 -0
  421. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_virtual_functions.py +0 -0
  422. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_warnings.cpp +0 -0
  423. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_warnings.py +0 -0
  424. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/valgrind-numpy-scipy.supp +0 -0
  425. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/valgrind-python.supp +0 -0
  426. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindCatch.cmake +0 -0
  427. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindEigen3.cmake +0 -0
  428. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindPythonLibsNew.cmake +0 -0
  429. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/JoinPaths.cmake +0 -0
  430. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/check-style.sh +0 -0
  431. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/cmake_uninstall.cmake.in +0 -0
  432. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/codespell_ignore_lines_from_errors.py +0 -0
  433. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/libsize.py +0 -0
  434. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/make_changelog.py +0 -0
  435. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/make_global.py +0 -0
  436. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11.pc.in +0 -0
  437. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Common.cmake +0 -0
  438. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Config.cmake.in +0 -0
  439. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +0 -0
  440. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11NewTools.cmake +0 -0
  441. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Tools.cmake +0 -0
  442. {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +0 -0
  443. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/.github/workflows/build_and_test.yml +0 -0
  444. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/.gitignore +0 -0
  445. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/CMakeLists.txt +0 -0
  446. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/LICENSE +0 -0
  447. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/README.md +0 -0
  448. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/scripts/build_and_test.sh +0 -0
  449. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/scripts/single_header.sh +0 -0
  450. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/Catch.cmake +0 -0
  451. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/CatchAddTests.cmake +0 -0
  452. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/catch.hpp +0 -0
  453. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/main_test.cpp +0 -0
  454. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/pwrite_pyramids3D_test.cpp +0 -0
  455. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/ascii.vtu +0 -0
  456. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/base64.vtu +0 -0
  457. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/base64appended.vtu +0 -0
  458. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/raw.vtu +0 -0
  459. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/raw_compressed.vtu +0 -0
  460. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/ascii.vtu +0 -0
  461. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/base64.vtu +0 -0
  462. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/base64appended.vtu +0 -0
  463. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/raw.vtu +0 -0
  464. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/raw_compressed.vtu +0 -0
  465. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  466. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  467. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  468. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test.pvtu +0 -0
  469. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  470. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  471. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  472. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test.pvtu +0 -0
  473. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  474. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  475. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  476. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test.pvtu +0 -0
  477. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  478. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  479. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  480. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test.pvtu +0 -0
  481. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_0.vtu +0 -0
  482. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_1.vtu +0 -0
  483. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test/pyramids3D_parallel_test_2.vtu +0 -0
  484. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test.pvtu +0 -0
  485. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/ascii.vtu +0 -0
  486. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/base64.vtu +0 -0
  487. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/base64appended.vtu +0 -0
  488. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/raw.vtu +0 -0
  489. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/raw_compressed.vtu +0 -0
  490. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/ascii.vtu +0 -0
  491. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/base64.vtu +0 -0
  492. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/base64appended.vtu +0 -0
  493. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/raw.vtu +0 -0
  494. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/raw_compressed.vtu +0 -0
  495. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/utilities_test.cpp +0 -0
  496. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/vtu11_testing.cpp +0 -0
  497. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/vtu11_testing.hpp +0 -0
  498. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_hexahedras3D_test.cpp +0 -0
  499. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_icosahedron3D_test.cpp +0 -0
  500. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_pyramids3D_test.cpp +0 -0
  501. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_square2D_test.cpp +0 -0
  502. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/utilities_impl.hpp +0 -0
  503. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/vtu11_impl.hpp +0 -0
  504. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/writer_impl.hpp +0 -0
  505. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/zlibWriter_impl.hpp +0 -0
  506. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/alias.hpp +0 -0
  507. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/filesystem.hpp +0 -0
  508. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/utilities.hpp +0 -0
  509. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/writer.hpp +0 -0
  510. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/zlibWriter.hpp +0 -0
  511. {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/vtu11.hpp +0 -0
  512. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/algorithm.hpp +0 -0
  513. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/arrayfunctions.hpp +0 -0
  514. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/assembly_impl.hpp +0 -0
  515. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basis.hpp +0 -0
  516. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basis_impl.hpp +0 -0
  517. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basisevaluation_impl.hpp +0 -0
  518. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/boundary.hpp +0 -0
  519. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/cellmesh.hpp +0 -0
  520. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/compilermacros.hpp +0 -0
  521. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/dense_impl.hpp +0 -0
  522. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/derivativeHelper.hpp +0 -0
  523. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/derivativeHelper_impl.hpp +0 -0
  524. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/implicit.hpp +0 -0
  525. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/implicit_impl.hpp +0 -0
  526. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/integrandtypes.hpp +0 -0
  527. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/kdtree.hpp +0 -0
  528. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/multilevelhpcore.hpp +0 -0
  529. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/ndarray.hpp +0 -0
  530. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/ndarray_impl.hpp +0 -0
  531. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/numeric.hpp +0 -0
  532. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/polynomials.hpp +0 -0
  533. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/quadrature.hpp +0 -0
  534. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/refinement.hpp +0 -0
  535. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/topologycore.hpp +0 -0
  536. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/utilities_impl.hpp +0 -0
  537. {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core.hpp +0 -0
  538. {mlhp-0.2.0 → mlhp-0.2.2}/pyproject.toml +0 -0
  539. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/algorithm.cpp +0 -0
  540. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/basis.cpp +0 -0
  541. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/basisevaluation.cpp +0 -0
  542. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/boundary.cpp +0 -0
  543. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/config.hpp.in +0 -0
  544. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/dense.cpp +0 -0
  545. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/files.cmake +0 -0
  546. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/implicit.cpp +0 -0
  547. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/multilevelhpcore.cpp +0 -0
  548. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/numeric.cpp +0 -0
  549. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/partitioning.cpp +0 -0
  550. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/quadrature.cpp +0 -0
  551. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/refinement.cpp +0 -0
  552. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/topologycore.cpp +0 -0
  553. {mlhp-0.2.0 → mlhp-0.2.2}/src/core/utilities.cpp +0 -0
  554. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/files.cmake +0 -0
  555. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/main.cpp +0 -0
  556. {mlhp-0.2.0 → mlhp-0.2.2}/src/python/mklwrapper.py +0 -0
  557. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/algorithm_test.cpp +0 -0
  558. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/basis_test.cpp +0 -0
  559. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/basisfunctions_test.cpp +0 -0
  560. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/boundary_test.cpp +0 -0
  561. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/core_test.hpp +0 -0
  562. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/dense_test.cpp +0 -0
  563. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/files.cmake +0 -0
  564. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/implicit_test.cpp +0 -0
  565. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/kdtree_test.cpp +0 -0
  566. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/main_test.cpp +0 -0
  567. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/ndarray_test.cpp +0 -0
  568. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/numeric_test.cpp +0 -0
  569. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/partitioning_test.cpp +0 -0
  570. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/projection_test.cpp +0 -0
  571. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/quadrature_test.cpp +0 -0
  572. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/singleBaseCell_2D.cpp +0 -0
  573. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/singleBaseCell_2D.hpp +0 -0
  574. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/sparse_test.cpp +0 -0
  575. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testCases_test.cpp +0 -0
  576. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/leafMask.txt +0 -0
  577. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/levels.txt +0 -0
  578. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/locationMapLengths.txt +0 -0
  579. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/locationMaps.txt +0 -0
  580. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/neighbours.txt +0 -0
  581. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/parents.txt +0 -0
  582. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/positionsInParent.txt +0 -0
  583. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/tensorProductIndices.txt +0 -0
  584. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/leafMask.txt +0 -0
  585. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/levels.txt +0 -0
  586. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/locationMapLengths.txt +0 -0
  587. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/locationMaps.txt +0 -0
  588. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/neighbours.txt +0 -0
  589. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/parents.txt +0 -0
  590. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/positionsInParent.txt +0 -0
  591. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/tensorProductIndices.txt +0 -0
  592. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face0.txt +0 -0
  593. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face1.txt +0 -0
  594. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face2.txt +0 -0
  595. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face3.txt +0 -0
  596. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face4.txt +0 -0
  597. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face5.txt +0 -0
  598. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/global.dat +0 -0
  599. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indexMap.dat +0 -0
  600. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indices1.dat +0 -0
  601. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indices2.dat +0 -0
  602. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/otherLocal1.dat +0 -0
  603. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/thisLocal1.dat +0 -0
  604. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/csg_binary.stl +0 -0
  605. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/readStl_test.stl +0 -0
  606. {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/utilities_test.cpp +0 -0
  607. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/__init__.py +0 -0
  608. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/eigenmodes_poisson_test.cpp +0 -0
  609. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/examples_test.py +0 -0
  610. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/linear_heat.cpp +0 -0
  611. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/linear_heat_test.py +0 -0
  612. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/main_test.cpp +0 -0
  613. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/planestress_test.cpp +0 -0
  614. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/pressurised_sphere_test.py +0 -0
  615. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/run_systemtests.py +0 -0
  616. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_L2_test.cpp +0 -0
  617. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_L2_test.py +0 -0
  618. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_Poisson_test.cpp +0 -0
  619. {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_poisson_test.py +0 -0
  620. {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/ConfigureBuildType.cmake +0 -0
  621. {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/ConfigureCompiler.cmake +0 -0
  622. {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/CreateExampleDriver.cmake +0 -0
  623. {mlhp-0.2.0 → mlhp-0.2.2}/tools/doxygen/Doxyfile +0 -0
  624. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/benchmark.cpp.in +0 -0
  625. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/benchmark.py +0 -0
  626. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/printMedians.py +0 -0
  627. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/scheduleBenchmark.cmd +0 -0
  628. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/ci_check_release_version.py +0 -0
  629. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/ci_mint_pypi_token.py +0 -0
  630. {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/run_examples.py +0 -0
@@ -427,11 +427,12 @@ wheels_macos_xcode:
427
427
 
428
428
  variables:
429
429
  HOMEBREW_NO_AUTO_UPDATE: 1
430
+ MACOSX_DEPLOYMENT_TARGET: "15.0"
430
431
 
431
432
  before_script:
432
433
  - python3 -m pip install cibuildwheel
433
- - curl -O https://mac.r-project.org/openmp/openmp-15.0.7-darwin20-Release.tar.gz
434
- - sudo tar fvxz openmp-15.0.7-darwin20-Release.tar.gz -C /
434
+ - brew install cmake libomp
435
+ - export OpenMP_ROOT=$(brew --prefix libomp)
435
436
 
436
437
  script:
437
438
  - export CIBW_ENVIRONMENT="SKBUILD_CMAKE_DEFINE=\"MLHP_ALL_OPTIMIZATIONS=OFF;MLHP_COMMIT_ID=$(git rev-parse HEAD)\" CXXFLAGS=\"-Ofast\""
@@ -154,7 +154,8 @@ CreateExamplePythonDriver( elastic_fcm_csg "Compute with a csg geometry." )
154
154
  CreateExamplePythonDriver( elastic_fcm_stl "Compute with an stl geometry." )
155
155
  CreateExamplePythonDriver( elastic_gmsh "Compute with unstructured grid from gmsh file." )
156
156
  CreateExamplePythonDriver( elastic_gyroid "Gyroid TPMS implicit geometry." )
157
- CreateExamplePythonDriver( elastic_wave_IMEX_SEM "Immsersed spectral elements with implicit Newmark on cut elements." )
157
+ CreateExamplePythonDriver( elastic_mapped_thin_solid "Curved thin-walled geometry from a mapped grid." )
158
+ CreateExamplePythonDriver( elastic_wave_IMEX_SEM "Immersed spectral elements with implicit Newmark on cut elements." )
158
159
  CreateExamplePythonDriver( hyperelastic_gyroid "Large deformation Gyroid TPMS implicit geometry." )
159
160
  CreateExamplePythonDriver( interactive_eigenmodes "Interactive eigenvalue analysis using a line segment boundary." INTERACTIVE )
160
161
  CreateExamplePythonDriver( j2_plasticity_compiled "Immersed J2 plasticity using a cffi-compiled material." )
@@ -162,6 +163,7 @@ CreateExamplePythonDriver( planestress_fcm_lshaped_adaptive "Immersed l-shaped d
162
163
  CreateExamplePythonDriver( planestress_fcm_plate_with_hole "Plate with a hole using FCM." )
163
164
  CreateExamplePythonDriver( poisson_compiled "Define integrand with numba or cffi." )
164
165
  CreateExamplePythonDriver( scalar_wave_SEM "Spectral elements for scalar wave equation." )
166
+ CreateExamplePythonDriver( thermoelastic_spinodoid_fcm "One-way thermomechanical spinodoid with FCM and Nitsche." )
165
167
 
166
168
  # Copy example input geometry and the example runner next to the example drivers
167
169
  # in bin so argument-less runs find them. Example builds only; the geometry is
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mlhp
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: An efficient finite element library for boundary-conforming and embedded domain methods.
5
5
  Author: Philipp Kopp
6
6
  License: MIT License
@@ -1,10 +1,10 @@
1
1
  """Linear elasticity with FCM on a constructive solid geometry (CSG)
2
- domain (sphere-cube intersection with cylinders subtracted). Showcases
3
- core features of embedded domain methods:
2
+ domain (a sphere with cylinders subtracted, cut to a box by the mesh).
3
+ Showcases core features of embedded domain methods:
4
4
  - Filtering of elements outside the domain
5
- - Displacement BC on a reconstructed triangulation using integral penalty
6
- - Traction BC on a reconstructed triangulation
7
- - Postprocessing on a domain boundary triangulation"""
5
+ - Displacement BC on a planar slice through the mesh using integral penalty
6
+ - Traction BC on a planar slice through the mesh
7
+ - Postprocessing on a domain boundary recovery"""
8
8
 
9
9
  import mlhp
10
10
 
@@ -15,17 +15,13 @@ print("1. Setting up mesh and basis", flush=True)
15
15
  origin, max = [-0.78] * D, [0.78] * D
16
16
 
17
17
  sphere = mlhp.implicitSphere([0.0, 0.0, 0.0], 1.0)
18
- cube = mlhp.implicitCube(origin, max)
19
- intersection = mlhp.implicitIntersection([sphere, cube])
20
-
21
18
  circle = mlhp.implicitSphere([0, 0], 0.4)
22
-
23
19
  cylinder1 = mlhp.extrude(circle, -1.0, 1.0, 0)
24
20
  cylinder2 = mlhp.extrude(circle, -1.0, 1.0, 1)
25
21
  cylinder3 = mlhp.extrude(circle, -1.0, 1.0, 2)
26
22
 
27
23
  cylinders = mlhp.implicitUnion([cylinder1, cylinder2, cylinder3])
28
- domain = mlhp.implicitSubtraction([intersection, cylinders])
24
+ domain = mlhp.implicitSubtraction([sphere, cylinders])
29
25
 
30
26
  scaling = 2 * 2.5 / 0.78
31
27
 
@@ -35,31 +31,23 @@ domain = mlhp.implicitTransformation(domain, mlhp.scaling([scaling] * D))
35
31
  youngsModulus = 200 * 1e9
36
32
  poissonsRatio = 0.3
37
33
 
38
- polynomialDegree = 1
34
+ degree = 1
39
35
  nelements = [50] * D
40
- alphaFCM = 1e-8
41
- penalty = 1e5 * youngsModulus
36
+ alpha = 1e-8
37
+ penalty = 200 * youngsModulus
42
38
 
43
- # ##################### FIX ####################
44
- origin = [scaling * o - 1e-10 for o in origin]
45
- max = [scaling * m + 1e-10 for m in max]
39
+ origin = [scaling * o for o in origin]
40
+ max = [scaling * m for m in max]
46
41
 
47
42
  lengths = [m - o for o, m in zip(origin, max)]
48
43
 
49
44
  grid = mlhp.makeGrid(nelements, lengths, origin)
50
- print(grid)
51
-
52
- grid = mlhp.makeRefinedGrid(mlhp.makeFilteredGrid(grid, domain=domain, nseedpoints=polynomialDegree + 2))
53
- basis = mlhp.makeHpTrunkSpace(grid, degree=polynomialDegree, nfields=D)
45
+ grid = mlhp.makeRefinedGrid(mlhp.makeFilteredGrid(grid, domain=domain, nseedpoints=degree + 2))
46
+ basis = mlhp.makeHpTrunkSpace(grid, degree=degree, nfields=D)
54
47
 
55
48
  print(grid)
56
49
  print(basis)
57
50
 
58
- resolution = [polynomialDegree + 3] * D
59
- triangulation, celldata = mlhp.recoverDomainBoundary(grid, domain, resolution)
60
-
61
- print(basis)
62
-
63
51
  print("2. Allocating linear system", flush=True)
64
52
 
65
53
  matrix = mlhp.allocateSparseMatrix(basis)
@@ -67,14 +55,15 @@ vector = mlhp.allocateRhsVector(matrix)
67
55
 
68
56
  print("3. Computing weak boundary integrals", flush=True)
69
57
 
70
- def createBoundaryQuadrature(func):
71
- filteredTriangulation, filteredCelldata = triangulation.filter(mlhp.implicitFunction(D, func), celldata)
72
- quadrature = mlhp.simplexQuadrature(filteredTriangulation, filteredCelldata)
58
+ def createBoundaryQuadrature(coordinate):
59
+ face, facedata = mlhp.createPlanarSlice(grid, 0, coordinate, domain,
60
+ cutDepth=degree)
61
+ quadrature = mlhp.simplexQuadrature(face, facedata)
73
62
 
74
- return filteredTriangulation, filteredCelldata, quadrature
63
+ return face, facedata, quadrature
75
64
 
76
- intersected0, celldata0, quadrature0 = createBoundaryQuadrature(f"x < {origin[0] + 1e-3}")
77
- intersected1, celldata1, quadrature1 = createBoundaryQuadrature(f"x > {origin[0] + lengths[0] - 1e-3}")
65
+ intersected0, celldata0, quadrature0 = createBoundaryQuadrature(origin[0])
66
+ intersected1, celldata1, quadrature1 = createBoundaryQuadrature(origin[0] + lengths[0])
78
67
 
79
68
  integrand0 = mlhp.l2BoundaryIntegrand(mlhp.vectorField(D, [penalty] * D),
80
69
  mlhp.vectorField(D, [0.0] * D))
@@ -95,10 +84,10 @@ constitutive = mlhp.isotropicElasticMaterial(E, nu)
95
84
  integrand = mlhp.staticDomainIntegrand(kinematics, constitutive, rhs)
96
85
 
97
86
  quadrature = mlhp.spaceTreeQuadrature(domain,
98
- depth=polynomialDegree + 1, epsilon=alphaFCM)
87
+ depth=degree + 1, epsilon=alpha)
99
88
 
100
89
  #quadrature = mlhp.momentFittingQuadrature(domain,
101
- # depth=polynomialDegree + 3, epsilon=alphaFCM)
90
+ # depth=degree + 1, epsilon=alpha)
102
91
 
103
92
  mlhp.integrateOnDomain(basis, integrand, [matrix, vector], quadrature=quadrature)
104
93
 
@@ -125,7 +114,7 @@ processors = [mlhp.solutionProcessor(D, dofs, "Displacement"),
125
114
  mlhp.vonMisesProcessor(gradient, kinematics, constitutive, "VonMises2"),
126
115
  mlhp.strainEnergyProcessor(gradient, kinematics, constitutive)]
127
116
 
128
- surfmesh = mlhp.localSimplexCellMesh(triangulation, celldata)
117
+ surfmesh = mlhp.boundaryCellMesh(domain, [degree + 2] * D)
129
118
 
130
119
  output0 = mlhp.PVtuOutput(filename="outputs/linear_elasticity_fcm_csg_boundary")
131
120
  output1 = mlhp.PVtuOutput(filename="outputs/linear_elasticity_fcm_csg_fcmmesh")
@@ -144,5 +133,6 @@ surfoutput1 = mlhp.VtuOutput(filename="outputs/linear_elasticity_fcm_csg_boundar
144
133
  mlhp.basisOutput(basis, surfmesh0, surfoutput0, processors)
145
134
  mlhp.basisOutput(basis, surfmesh1, surfoutput1, processors)
146
135
 
147
- # Backwards consistency check
148
- assert(abs(sum([mlhp.norm(diff) for diff in gradient]) - 1.57227628e-04) < 1e-12)
136
+ # Guards the result against unintended change; fails by design if example is modified.
137
+ gradientNorm = sum([mlhp.norm(diff) for diff in gradient])
138
+ assert abs(gradientNorm - 1.665646231e-04) < 1e-10, gradientNorm
@@ -57,7 +57,7 @@ vector = mlhp.allocateRhsVector(matrix)
57
57
  print("2. Computing weak boundary integrals", flush=True)
58
58
 
59
59
  def createBoundaryQuadrature(func):
60
- filtered = triangulation.filter(mlhp.implicitFunction(D, func))
60
+ filtered = mlhp.filterSimplexMesh(triangulation, mlhp.implicitFunction(D, func))
61
61
  intersected, celldata = mlhp.intersectWithMesh(filtered, grid)
62
62
  quadrature = mlhp.simplexQuadrature(intersected, celldata)
63
63
 
@@ -132,6 +132,5 @@ surfwriter1 = mlhp.VtuOutput(filename="outputs/linear_elasticity_fcm_stl_boundar
132
132
  mlhp.meshOutput(grid, surfmesh0, surfwriter0, [])
133
133
  mlhp.meshOutput(grid, surfmesh1, surfwriter1, [])
134
134
 
135
- # Guards the result against unintended change; if you modify the example it
136
- # fails by design - comment it out, or update the value when developing mlhp.
137
- assert abs(mlhp.norm(dofs) - 1.3324004e-05) < 1e-9, mlhp.norm(dofs)
135
+ # Guards the result against unintended change; fails by design if example is modified.
136
+ assert abs(mlhp.norm(dofs) - 1.3324004e-05) < 1e-8, mlhp.norm(dofs)
@@ -102,7 +102,7 @@ surfoutput = mlhp.PVtuOutput(filename="outputs/gyroid_surf")
102
102
  mlhp.basisOutput(basis, gridmesh, gridoutput, processors)
103
103
  mlhp.basisOutput(basis, surfmesh, surfoutput, processors)
104
104
 
105
- # Check consistency with previous versions
105
+ # Guards the result against unintended change; fails by design if example is modified.
106
106
  assert(abs(mlhp.norm(allDofs) - 0.05364596974082) < 1e-10)
107
107
 
108
108
  # # Alternatively: use numba to pass compiled implicit function
@@ -0,0 +1,159 @@
1
+ """Multi-level hp-refinement on a curved geometry created by a mapped, filtered
2
+ mesh."""
3
+
4
+ # Recreates example 4.4 of doi:10.1016/j.cma.2016.07.007, the three-dimensional
5
+ # Girkmann problem given in doi:10.1016/j.cma.2004.07.042.
6
+
7
+ import math
8
+
9
+ import mlhp
10
+
11
+ # Geometry, material and load of Fig. 12 in doi:10.1016/j.cma.2004.07.042
12
+ alpha = math.radians(30.0) # Elevation of the shell edge above the xy-plane
13
+ beta = math.radians(10.0) # Opening at the top of the shell
14
+ R1 = 10.0 # Mid-surface radius of the shell
15
+ t1 = 0.1 # Shell thickness
16
+ t2, L2 = 0.4, 0.4 # Stiffener width and height
17
+
18
+ E, nu = 6.825e10, 0.3
19
+ density, gravity = 500.0, 10.0
20
+ pressure = 1e5
21
+
22
+ grading = 2.0
23
+ nmeridional, nazimuthal = 4, 2
24
+
25
+ degree = 4
26
+ nrefinements = 3
27
+
28
+ print("1. Setting up geometry mapping", flush=True)
29
+
30
+ # Index space: x from 0 to 3 radially, with x in [1, 2] the shell thickness and
31
+ # the two remaining columns the rest of the stiffener. y from 0 to 1 is the
32
+ # azimuthal quarter, z from 0 to 1 the stiffener and z from 1 to 2 the shell.
33
+ # Splitting the stiffener into three columns makes the junction conforming.
34
+ ri, ro = R1 - t1 / 2, R1 + t1 / 2
35
+ zc = R1 * math.sin(alpha) # Junction plane = top of stiffener
36
+ R2 = R1 * math.cos(alpha)
37
+ rhoi = math.sqrt(ri**2 - zc**2) # Shell footprint on the stiffener
38
+ rhoo = math.sqrt(ro**2 - zc**2)
39
+ rho0, rho1 = R2 - t2 / 2, R2 + t2 / 2 # Stiffener radii
40
+
41
+ r = f"({ri} + (x - 1.0)*{t1})"
42
+ theta = f"(acos({zc}/{r})*(2.0 - z) + {beta}*(z - 1.0))"
43
+ phi = f"({0.5 * math.pi}*y)"
44
+
45
+ # Above the stiffener columns there are no cells, so the stiffener branch is
46
+ # continued into that part of index space. Switching branches at z = 1 instead
47
+ # would make the central differences straddle both branches on the free
48
+ # stiffener top faces, leaving only the glued faces of the shell discontinuous.
49
+ distance = "((1.0 - x) if x < 1.0 else (0.0 if x < 2.0 else (x - 2.0)))"
50
+ isShell = f"z - 1.0 > {distance}"
51
+
52
+ radius = (f"(({r}*sin{theta}) if {isShell} else "
53
+ f"(({rho0} + x*{rhoi - rho0}) if x < 1.0 else "
54
+ f"((({r})**2 - {zc**2})**0.5 if x < 2.0 else "
55
+ f"({rhoo} + (x - 2.0)*{rho1 - rhoo}))))")
56
+
57
+ height = f"(({r}*cos{theta}) if {isShell} else {zc} - (1.0 - z)*{L2})"
58
+
59
+ mapping = mlhp.vectorField(3, f"[{radius}*cos{phi}, {radius}*sin{phi}, {height}]")
60
+
61
+ # Meridional elements grow away from the junction, so that the shell element at
62
+ # the stiffener is of the size of the stiffener itself
63
+ sizes = [grading**i for i in range(nmeridional)]
64
+ meridional = [1.0]
65
+
66
+ for size in sizes:
67
+ meridional.append(meridional[-1] + size / sum(sizes))
68
+
69
+ ticks = [[0.0, 1.0, 2.0, 3.0],
70
+ [i / nazimuthal for i in range(nazimuthal + 1)],
71
+ [0.0] + meridional]
72
+
73
+ print("2. Setting up mesh and basis", flush=True)
74
+
75
+ grid = mlhp.makeGrid(ticks)
76
+
77
+ # Remove the stiffener columns above the junction to obtain the T-shaped section
78
+ centers = [grid.map(icell, [0.0] * 3) for icell in range(grid.ncells())]
79
+ mask = [not (c[2] > 1.0 and (c[0] < 1.0 or c[0] > 2.0)) for c in centers]
80
+
81
+ mapped = mlhp.makeMappedGrid(mlhp.makeFilteredGrid(grid, mask=mask), mapping)
82
+ mesh = mlhp.makeRefinedGrid(mapped)
83
+
84
+ # Refine towards the re-entrant corner edge at the inner shell surface
85
+ corner = mlhp.implicitFunction(
86
+ 3, f"(sqrt(x**2 + y**2) - {rhoi})**2 + (z - {zc})**2 < {(L2 / 8)**2}")
87
+
88
+ mesh.refine(mlhp.refineTowardsBoundary(corner, nrefinements))
89
+
90
+ basis = mlhp.makeHpTrunkSpace(mesh, degree=degree, nfields=3)
91
+
92
+ print(mesh)
93
+ print(basis)
94
+
95
+ print("3. Computing boundary conditions", flush=True)
96
+
97
+ # Symmetry on the xz- and yz-planes, vertical support at the stiffener bottom
98
+ zero = mlhp.scalarField(3, 0.0)
99
+
100
+ dirichlet = mlhp.combineDirichletDofs([
101
+ mlhp.integrateDirichletDofs(zero, basis, [0], ifield=0),
102
+ mlhp.integrateDirichletDofs(zero, basis, [2], ifield=1),
103
+ mlhp.integrateDirichletDofs(zero, basis, [4], ifield=2)])
104
+
105
+ print("4. Assembling linear system", flush=True)
106
+
107
+ kinematics = mlhp.smallStrainKinematics(3)
108
+ constitutive = mlhp.isotropicElasticMaterial(mlhp.scalarField(3, E), mlhp.scalarField(3, nu))
109
+ weight = mlhp.vectorField(3, [0.0, 0.0, -density * gravity])
110
+
111
+ domainIntegrand = mlhp.staticDomainIntegrand(kinematics, constitutive, weight)
112
+ surfaceIntegrand = mlhp.normalNeumannIntegrand(mlhp.scalarField(3, -pressure))
113
+
114
+ # The outer surface is curved and thus not selectable by bounding box. In index
115
+ # space it is the x-max face of every cell that has no neighbour there.
116
+ outside = mesh.boundariesByFaceIndex([1])[0]
117
+ faceQuadrature = mlhp.quadratureOnMeshFaces(mesh, cellFaces=outside)
118
+
119
+ matrix = mlhp.allocateSparseMatrix(basis, dirichlet[0])
120
+ vector = mlhp.allocateRhsVector(matrix)
121
+
122
+ mlhp.integrateOnDomain(basis, domainIntegrand, [matrix, vector], dirichletDofs=dirichlet)
123
+ mlhp.integrateOnSurface(basis, surfaceIntegrand, [vector], faceQuadrature, dirichletDofs=dirichlet)
124
+
125
+ print("5. Solving linear system", flush=True)
126
+
127
+ interiorDofs, norms = mlhp.cg(matrix, vector, M=mlhp.diagonalPreconditioner(matrix),
128
+ maxiter=10000, residualNorms=True)
129
+ dofs = mlhp.inflateDofs(interiorDofs, dirichlet)
130
+
131
+ print(f" {len(norms) - 1} iterations, residual reduction {norms[-1] / norms[0]:.2e}")
132
+
133
+ print("6. Postprocessing solution", flush=True)
134
+
135
+ processors = [mlhp.solutionProcessor(3, dofs, "Displacement"),
136
+ mlhp.vonMisesProcessor(dofs, kinematics, constitutive)]
137
+
138
+ postmesh = mlhp.gridCellMesh([1 if degree == 1 else degree + 3] * 3)
139
+ output = mlhp.PVtuOutput(filename="outputs/mapped_thin_solid")
140
+
141
+ mlhp.basisOutput(basis, postmesh, output, processors)
142
+
143
+ # Volume of the quarter model, integrating the mapped geometry
144
+ volume = mlhp.ScalarDouble(0.0)
145
+
146
+ mlhp.integrateOnDomain(basis, mlhp.functionIntegrand(mlhp.scalarField(3, 1.0)), [volume])
147
+
148
+ expected = (math.pi / 2 * (math.cos(beta) * (ro**3 - ri**3) / 3 - zc * (ro**2 - ri**2) / 2)
149
+ + math.pi / 4 * (rho1**2 - rho0**2) * L2)
150
+
151
+ print(f" volume : {volume.get()} (analytical: {expected})")
152
+ print(f" norm : {mlhp.norm(dofs)}")
153
+
154
+ # Guards the result against unintended change; if you modify the example it
155
+ # fails by design - comment it out, or update the value when developing mlhp.
156
+ # The volume is not exact because the Jacobian of the mapping is approximated
157
+ # by central differences and detJ is not polynomial.
158
+ assert abs(volume.get() / expected - 1.0) < 1e-8, volume.get()
159
+ assert abs(mlhp.norm(dofs) - 0.0104088153393) < 1e-8, mlhp.norm(dofs)
@@ -88,7 +88,9 @@ def extractBoundaryFace(boundary, height):
88
88
  faceBounds0 = [-1e50] * (D - 1) + [height - 1e-4 * lengths[-1]]
89
89
  faceBounds1 = [+1e50] * (D - 1) + [height + 1e-4 * lengths[-1]]
90
90
  faceFilter = mlhp.implicitTransformation(mlhp.implicitCube(faceBounds0, faceBounds1), rotation)
91
- return boundary[0].filter(faceFilter, celldata=boundary[1])
91
+ # Clipped, not filtered: the recovered cap is rimmed by inclined triangles that reach
92
+ # into the slab, which filterSimplexMesh would drop entirely
93
+ return mlhp.clipSimplexMesh(boundary[0], faceFilter, celldata=boundary[1])
92
94
 
93
95
  boundary = mlhp.recoverDomainBoundary(grid, domain, [p + 2] * D)
94
96
 
@@ -247,7 +249,8 @@ if D == 2:
247
249
  for i, dofs in enumerate(results):
248
250
  print(f"\rEvaluating result {i + 1} / {len(results)}", flush=True, end='')
249
251
  output = postprocess(dofs, mlhp.DataAccumulator())
250
- triangulation, (u, vonmises) = output.triangulation(), output.data()
252
+ triangulation = output.triangulation()
253
+ u, vonmises = output.field("Displacement"), output.field("VonMisesStress")
251
254
  triangulation.x += warp_scaling * np.reshape(u, (-1, D)).T[0]
252
255
  triangulation.y += warp_scaling * np.reshape(u, (-1, D)).T[1]
253
256
 
@@ -284,5 +287,5 @@ if D == 3:
284
287
  for i, u in enumerate(results):
285
288
  postprocess(u, mlhp.PVtuOutput(filename=f"outputs/elastic_wave_{i}"))
286
289
 
287
- # Check consistency with previous result
288
- #assert(abs(mlhp.norm(dofs1) - 5.6633689e-08) < 1e-14)
290
+ # Guards the result against unintended change; fails by design if example is modified.
291
+ assert abs(mlhp.norm(dofs1) - 1.6872021802e-2) < 1e-8, mlhp.norm(dofs1)
@@ -95,6 +95,7 @@ int main( )
95
95
  std::cout << "Number of internal dofs : " << interiorSolution.size( ) << std::endl;
96
96
  std::cout << "Energy error || u - u^h || / || u || * 100% : " << percent << std::endl;
97
97
 
98
+ // Guards the result against unintended change; fails by design if example is modified.
98
99
  MLHP_CHECK( basis->ndof( ) == 12369, "First backward consistency check failed." );
99
100
  MLHP_CHECK( std::abs( percent - 9.995783899e-03 ) < 1e-9, "Second backward consistency check failed." );
100
101
  }
@@ -52,10 +52,10 @@ dofs = mlhp.DoubleVector(basis.ndof(), 0.0)
52
52
  # already scales with alpha.
53
53
  kinematics = mlhp.greenLagrangeStrain(D)
54
54
  material = mlhp.neoHookeanMaterial(mlhp.scalarField(D, E), mlhp.scalarField(D, nu))
55
- real = mlhp.staticDomainIntegrand(kinematics, material, dofs)
55
+ real = mlhp.staticDomainIntegrand(kinematics, material, dofs=dofs)
56
56
 
57
57
  elastic = mlhp.isotropicElasticMaterial(mlhp.scalarField(D, E), mlhp.scalarField(D, nu))
58
- fictitious = mlhp.staticDomainIntegrand(mlhp.smallStrainKinematics(D), elastic, dofs)
58
+ fictitious = mlhp.staticDomainIntegrand(mlhp.smallStrainKinematics(D), elastic, dofs=dofs)
59
59
 
60
60
  integrand = mlhp.selectIntegrand(domain, real, default=fictitious)
61
61
 
@@ -124,7 +124,7 @@ for istep in range(nsteps):
124
124
 
125
125
  print(flush=True)
126
126
 
127
- # Backwards consistency check
127
+ # Guards the result against unintended change; fails by design if example is modified.
128
128
  assert abs(mlhp.norm(dofs) - 22.663127256849243) < 1e-8, mlhp.norm(dofs)
129
129
 
130
130
  print("Done.", flush=True)
@@ -83,7 +83,8 @@ def compute(vertices):
83
83
  # Plot result
84
84
  plt.cla()
85
85
  plt.plot(*outline, '--', color='gray')
86
- plt.tricontourf(result.triangulation(mpl=True), result.data()[0], levels=20, cmap='turbo')
86
+ plt.tricontourf(result.triangulation(mpl=True), result.field("VonMisesStress"),
87
+ levels=20, cmap='turbo')
87
88
  refinedGrid.plot(show=False)
88
89
  plt.title("Von Mises stress in first nonzero eigenmode.")
89
90
  plt.xlabel("x")
@@ -28,6 +28,12 @@ nsteps = nelastic + nplastic
28
28
 
29
29
  print("Compiling...", flush=True)
30
30
 
31
+ # The C-extensions were written against this mlhp C-interface ABI version.
32
+ # Since we pass the target ABI version, mlhp can detect when its ABI is in-
33
+ # compatible and will raise an error. When this happens, adjust function
34
+ # signatures based on docstrings/Python bindings and increment abi_version.
35
+ cabi_version = 1
36
+
31
37
  # Material parameters are passed as a data vector registered with the
32
38
  # constitutive equation and history update below, so the C code is a plain
33
39
  # string and the parameters can be changed without recompiling.
@@ -142,10 +148,10 @@ ffibuilder.set_source("_j2_cffi", """
142
148
  // Material callback: strain is the strain increment (incremental=True),
143
149
  // userFields[0] is the history field, outputs stress / tangent /
144
150
  // energyDensity are null if not requested.
145
- static void material(double* stress, double* tangent, double* energyDensity,
146
- double* gradient, double* strain, double* xyz, double* rst,
147
- double** userFields, double** userData, double* tmp,
148
- int64_t* sizes, int64_t* userFieldSizes, int64_t ielement)
151
+ static int64_t material(double* stress, double* tangent, double* energyDensity,
152
+ double* gradient, double* strain, double* xyz, double* rst,
153
+ double** userFields, double** userData, double* tmp,
154
+ int64_t* sizes, int64_t* userFieldSizes, int64_t ielement)
149
155
  {
150
156
  double stressLocal[6], tangentLocal[36], history1[13];
151
157
 
@@ -166,14 +172,16 @@ ffibuilder.set_source("_j2_cffi", """
166
172
 
167
173
  energyDensity[0] = ((1.0 + nu) * inner - nu * trace * trace) / (2.0 * E);
168
174
  }
175
+
176
+ return 0;
169
177
  }
170
178
 
171
179
  // History update callback: commits the return mapping result once per
172
180
  // converged load step. Receives total strains of both states.
173
- static void update(double* history, double** gradients, double** strains,
174
- double* xyz, double* rst, double** userFields, double** userData,
175
- double* tmp, int64_t* sizes, int64_t* userFieldSizes,
176
- int64_t ielement)
181
+ static int64_t update(double* history, double** gradients, double** strains,
182
+ double* xyz, double* rst, double** userFields, double** userData,
183
+ double* tmp, int64_t* sizes, int64_t* userFieldSizes,
184
+ int64_t ielement)
177
185
  {
178
186
  double dstrain[6], stress[6], tangent[36], history1[13];
179
187
 
@@ -185,6 +193,8 @@ ffibuilder.set_source("_j2_cffi", """
185
193
  j2(userData[0], history, dstrain, stress, tangent, history1);
186
194
 
187
195
  memcpy(history, history1, 13 * sizeof(double));
196
+
197
+ return 0;
188
198
  }
189
199
 
190
200
  const unsigned long long material_address = (unsigned long long)&material;
@@ -262,7 +272,7 @@ for istep in range(nsteps):
262
272
 
263
273
  material = mlhp.constitutiveEquation(
264
274
  D, lib.material_address, fields=[history], symmetric=True,
265
- incremental=True, data=[params], abi=1)
275
+ incremental=True, data=[params], abi=cabi_version)
266
276
 
267
277
  dofs1 = dofs0.copy()
268
278
  norm0 = 1.0
@@ -279,8 +289,8 @@ for istep in range(nsteps):
279
289
  # keeps the solve definite. It acts on the total dofs to prevent
280
290
  # fictitious dof drift.
281
291
  increment = mlhp.add(dofs1, dofs0, -1.0)
282
- plastic = mlhp.staticDomainIntegrand(kinematics, material, increment)
283
- fictitious = mlhp.staticDomainIntegrand(kinematics, elastic, dofs1)
292
+ plastic = mlhp.staticDomainIntegrand(kinematics, material, dofs=increment)
293
+ fictitious = mlhp.staticDomainIntegrand(kinematics, elastic, dofs=dofs1)
284
294
  integrand = mlhp.selectIntegrand(domain, plastic, default=fictitious)
285
295
 
286
296
  mlhp.integrateOnDomain(
@@ -306,10 +316,10 @@ for istep in range(nsteps):
306
316
  # Create return mapping update and project it onto local polynomials
307
317
  updated = mlhp.meshFunctionStrainUpdate(
308
318
  history, basis, basis, dofs0, dofs1, lib.update_address,
309
- kinematics=kinematics, data=[params], abi=1)
310
-
311
- history = mlhp.localL2Projection(updated, mesh, degree, quadrature=quadrature)
319
+ kinematics=kinematics, data=[params], abi=cabi_version)
312
320
 
321
+ history = mlhp.localL2Projection(mesh, updated, degree, quadrature=quadrature)
322
+
313
323
  # Write fields at the converged state. The material evaluates stress from
314
324
  # the history at the beginning of the step plus the converged increment.
315
325
  increment = mlhp.add(dofs1, dofs0, -1.0)
@@ -320,8 +330,25 @@ for istep in range(nsteps):
320
330
  mlhp.stressProcessor(increment, kinematics, material),
321
331
  mlhp.vonMisesProcessor(increment, kinematics, material),
322
332
  mlhp.strainEnergyProcessor(increment, kinematics, material),
323
- mlhp.functionProcessor(history, "ProjectedHistory")]
333
+ mlhp.functionProcessor(history, "History")]
334
+
335
+ # Showcase the global L2 projection here, although it's not required (since we
336
+ # are using local L2 to interpolate history variables). One could use global L2
337
+ # for smooth postprocessing like we do here or even use it for the analysis.
338
+ zeroDofs = mlhp.DoubleVector(dofs1.size, 0.0)
339
+ historyBasis = mlhp.makeHpTrunkSpace(basis.mesh(), degree=1, nfields=1)
340
+ historyGlobal = mlhp.globalL2Projection(historyBasis, updated, quadrature=quadrature)
341
+
342
+ materialGlobal = mlhp.constitutiveEquation(
343
+ D, lib.material_address, fields=[historyGlobal],
344
+ symmetric=True, incremental=True, data=[params], abi=cabi_version)
345
+
346
+ processors += [
347
+ mlhp.stressProcessor(zeroDofs, kinematics, materialGlobal, "StressGlobalL2"),
348
+ mlhp.vonMisesProcessor(zeroDofs, kinematics, materialGlobal, "VonMisesStressGlobalL2"),
349
+ mlhp.functionProcessor(historyGlobal, "HistoryGlobalL2")]
324
350
 
351
+ # Write output files
325
352
  surfmesh = mlhp.boundaryCellMesh(domain, [degree + 2] * D)
326
353
  output = mlhp.PVtuOutput(filename=f"outputs/j2_plasticity_compiled_{istep + 1}")
327
354
 
@@ -331,7 +358,7 @@ for istep in range(nsteps):
331
358
  dofs0 = dofs1
332
359
 
333
360
 
334
- # Backwards consistency check
361
+ # Guards the result against unintended change; fails by design if example is modified.
335
362
  assert abs(mlhp.norm(dofs0) - 4.5844435603322350e-03) < 1e-8, mlhp.norm(dofs0)
336
363
 
337
364
  print("Done.")