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.
- {mlhp-0.2.0 → mlhp-0.2.2}/.gitlab-ci.yml +3 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/CMakeLists.txt +3 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/PKG-INFO +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_fcm_csg.py +26 -36
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_fcm_stl.py +3 -4
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gyroid.py +1 -1
- mlhp-0.2.2/examples/elastic_mapped_thin_solid.py +159 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_wave_IMEX_SEM.py +7 -4
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/fichera_corner.cpp +1 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/hyperelastic_gyroid.py +3 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/interactive_eigenmodes.py +2 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/j2_plasticity_compiled.py +43 -16
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/j2_pressurized_sphere_fcm.cpp +65 -358
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/linear_elastic_fcm_stl.cpp +2 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/navier_stokes_vms.cpp +1 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/planestress_fcm_lshaped_adaptive.py +6 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/planestress_fcm_plate_with_hole.py +3 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/poisson_compiled.py +15 -13
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/scalar_wave_SEM.py +1 -1
- mlhp-0.2.2/examples/thermoelastic_spinodoid_fcm.py +197 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/travelling_heat_source.cpp +1 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/waveequation_matrix_free.cpp +5 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/wing_elastic_fcm.cpp +1 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/alias.hpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/assembly.hpp +2 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basisevaluation.hpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/dense.hpp +3 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/forwarddeclare.hpp +0 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/integrands.hpp +85 -60
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mapping.hpp +60 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/memory.hpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mesh.hpp +71 -5
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/mesh_impl.hpp +7 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/meshfunction.hpp +35 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/parallel.hpp +3 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/partitioning.hpp +3 -3
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/postprocessing.hpp +9 -5
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/sparse.hpp +7 -7
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/spatial.hpp +42 -9
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/spatial_impl.hpp +167 -11
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/triangulation.hpp +78 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/utilities.hpp +24 -7
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/assembly.cpp +20 -7
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/cellmesh.cpp +2 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/integrands.cpp +711 -420
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/kdtree.cpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/mesh.cpp +225 -42
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/meshfunction.cpp +221 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/parallel.cpp +2 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/polynomials.cpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/postprocessing.cpp +31 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/sparse.cpp +5 -5
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/spatial.cpp +1 -14
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/triangulation.cpp +680 -5
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/assemblybindings.cpp +95 -90
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/discretebindings.cpp +273 -68
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/meshfunctionbindings.cpp +107 -29
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/mlhp.py +354 -182
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/postprocessingbindings.cpp +20 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/pymlhpcore.hpp +90 -31
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/spatialbindings.cpp +250 -58
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/assembly_test.cpp +47 -2
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/integrands_test.cpp +165 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/mapping_test.cpp +34 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/mesh_test.cpp +259 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/meshfunction_test.cpp +52 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/spatialfunctions_test.cpp +176 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/triangulation_test.cpp +386 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/collection_test.py +195 -0
- mlhp-0.2.2/tests/system/compiled_field_test.py +107 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/elasticity_test.cpp +8 -6
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/files.cmake +3 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/immersed_beam_test.py +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/j2plasticity_test.cpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/largedeformation_test.cpp +1 -1
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/nitsche_nonlinear_test.py +2 -2
- mlhp-0.2.2/tests/system/nitsche_poisson_test.py +100 -0
- mlhp-0.2.2/tests/system/prestrain_test.py +136 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/.gitignore +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/.gitmodules +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/LICENSE +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/README.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gmsh.msh +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/examples/elastic_gmsh.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/catch2/catch.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.appveyor.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.clang-format +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.clang-tidy +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.cmake-format.yaml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.codespell-ignore-lines +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.gitattributes +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/CODEOWNERS +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/CONTRIBUTING.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/dependabot.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/labeler.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/labeler_merged.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/matchers/pylint.json +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/pull_request_template.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/ci.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/configure.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/docs-link.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/format.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/labeler.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/nightlies.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/pip.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/reusable-standard.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/tests-cibw.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.github/workflows/upstream.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.gitignore +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.pre-commit-config.yaml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/.readthedocs.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/CMakePresets.json +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/LICENSE +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/README.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/SECURITY.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/Doxyfile +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/_static/css/custom.css +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/chrono.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/custom.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/eigen.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/functional.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/index.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/overview.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/stl.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/cast/strings.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/classes.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/deadlock.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/deprecated.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/embedding.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/exceptions.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/functions.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/misc.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/index.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/numpy.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/object.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/pycpp/utilities.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/advanced/smart_ptrs.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/basics.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/benchmark.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/benchmark.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/changelog.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/classes.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/cmake/index.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/compiling.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/conf.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/faq.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/index.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/installing.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/limitations.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11-logo.png +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python1.svg +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/pybind11_vs_boost_python2.svg +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/reference.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/release.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/requirements.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/requirements.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/docs/upgrade.rst +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/attr.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/buffer_info.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/cast.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/chrono.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/common.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/complex.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/README.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/conduit/wrap_include_python_h.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/critical_section.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/class.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/common.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/cpp_conduit.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/descr.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/exception_translation.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/function_record_pyobject.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/init.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/internals.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/native_enum_data.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/pybind11_namespace_macros.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/struct_smart_holder.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/type_caster_base.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/typeid.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/using_smart_holder.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/detail/value_and_holder.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/common.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/matrix.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen/tensor.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eigen.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/embed.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/eval.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/functional.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil_safe_call_once.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/gil_simple.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/iostream.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/native_enum.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/numpy.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/operators.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/options.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/pybind11.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/pytypes.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl/filesystem.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/stl_bind.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/subinterpreter.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/trampoline_self_life_support.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/type_caster_pyobject_ptr.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/typing.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/include/pybind11/warnings.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/noxfile.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/__init__.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/__main__.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/_version.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/commands.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/py.typed +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pybind11/setup_helpers.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/pyproject.toml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/conftest.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/constructor_stats.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/cross_module_gil_utils.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/cross_module_interleaved_error_already_set.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/custom_exceptions.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/env.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/exo_planet_c_api.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/exo_planet_pybind11.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_python_package/pytest.ini +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_python_package/test_files.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_setuptools/pytest.ini +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/home_planet_very_lonely_traveler.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/local_bindings.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/mod_per_interpreter_gil.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/mod_shared_interpreter_gil.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/object.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/smart_holder_poc.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pure_cpp/smart_holder_poc_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_cross_module_tests.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_tests.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pybind11_tests.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pyproject.toml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/pytest.ini +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/requirements.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_async.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_async.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_buffers.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_buffers.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_builtin_casters.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_builtin_casters.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_call_policies.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_call_policies.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_callbacks.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_callbacks.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_chrono.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_chrono.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_basic.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_basic.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning_mi.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_disowning_mi.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_factory_constructors.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_factory_constructors.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_inheritance.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_inheritance.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_mi_thunks.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_mi_thunks.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property_non_owning.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_property_non_owning.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_shared_ptr_copy_move.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_shared_ptr_copy_move.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_basic.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_basic.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_self_life_support.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_self_life_support.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_from_this.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_from_this.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_unique_ptr.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_trampoline_unique_ptr.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_member.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_unique_ptr_member.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_virtual_py_cpp_mix.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_class_sh_virtual_py_cpp_mix.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/embed.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/main.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cmake_build/test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_const_name.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_const_name.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_constants_and_functions.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_constants_and_functions.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_copy_move.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_copy_move.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit_traveler_bindings.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cpp_conduit_traveler_types.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/bindings.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/catch.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/lib.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/lib.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_cross_module_rtti/test_cross_module_rtti.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_casters.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_casters.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_setup.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_custom_type_setup.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docs_advanced_cast_custom.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docs_advanced_cast_custom.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docstring_options.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_docstring_options.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_matrix.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_matrix.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.inl +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eigen_tensor.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/catch.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/external_module.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_interpreter.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_interpreter.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_subinterpreter.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_embed/test_trampoline.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_enum.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_enum.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_eval_call.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.h +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_exceptions.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_factory_constructors.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_factory_constructors.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_gil_scoped.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_gil_scoped.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_iostream.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_iostream.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_kwargs_and_defaults.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_kwargs_and_defaults.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_local_bindings.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_local_bindings.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_methods_and_attributes.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_methods_and_attributes.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_modules.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_modules.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_inheritance.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_inheritance.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_multiple_interpreters.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_native_enum.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_native_enum.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_array.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_array.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_dtypes.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_dtypes.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_scalars.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_scalars.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_vectorize.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_numpy_vectorize.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_opaque_types.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_opaque_types.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_operator_overloading.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_operator_overloading.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pickling.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pickling.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_potentially_slicing_weak_ptr.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_potentially_slicing_weak_ptr.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_python_multiple_inheritance.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_python_multiple_inheritance.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pytypes.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_pytypes.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_scoped_critical_section.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_scoped_critical_section.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_sequences_and_iterators.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_sequences_and_iterators.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_smart_ptr.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_smart_ptr.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl_binders.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_stl_binders.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_tagbased_polymorphic.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_tagbased_polymorphic.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_thread.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_thread.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_pyobject_ptr.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_pyobject_ptr.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_std_function_specializations.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_type_caster_std_function_specializations.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_union.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_union.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_a.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_a.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_b.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_unnamed_namespace_b.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_vector_unique_ptr_member.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_vector_unique_ptr_member.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_virtual_functions.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_virtual_functions.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_warnings.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/test_warnings.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/valgrind-numpy-scipy.supp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tests/valgrind-python.supp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindCatch.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindEigen3.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/FindPythonLibsNew.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/JoinPaths.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/check-style.sh +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/cmake_uninstall.cmake.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/codespell_ignore_lines_from_errors.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/libsize.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/make_changelog.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/make_global.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11.pc.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Common.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Config.cmake.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11NewTools.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/pybind11Tools.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/.github/workflows/build_and_test.yml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/.gitignore +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/CMakeLists.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/LICENSE +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/README.md +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/scripts/build_and_test.sh +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/scripts/single_header.sh +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/Catch.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/CatchAddTests.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/catch2/catch.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/main_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/pwrite_pyramids3D_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/ascii.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/base64.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/base64appended.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/raw.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/hexas_3D/raw_compressed.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/ascii.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/base64.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/base64appended.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/raw.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/icosahedron_3D/raw_compressed.vtu +0 -0
- {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
- {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
- {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
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/ascii/pyramids3D_parallel_test.pvtu +0 -0
- {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
- {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
- {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
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64/pyramids3D_parallel_test.pvtu +0 -0
- {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
- {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
- {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
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/base64appended/pyramids3D_parallel_test.pvtu +0 -0
- {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
- {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
- {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
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/raw/pyramids3D_parallel_test.pvtu +0 -0
- {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
- {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
- {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
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/parallel_write/pyramids_3D/tester/pyramids3D_parallel_test.pvtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/ascii.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/base64.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/base64appended.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/raw.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/pyramids_3D/raw_compressed.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/ascii.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/base64.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/base64appended.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/raw.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/testfiles/square_2D/raw_compressed.vtu +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/utilities_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/vtu11_testing.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/vtu11_testing.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_hexahedras3D_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_icosahedron3D_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_pyramids3D_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/test/write_square2D_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/utilities_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/vtu11_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/writer_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/impl/zlibWriter_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/alias.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/filesystem.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/utilities.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/writer.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/inc/zlibWriter.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/external/vtu11/vtu11/vtu11.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/algorithm.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/arrayfunctions.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/assembly_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basis.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basis_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/basisevaluation_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/boundary.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/cellmesh.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/compilermacros.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/dense_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/derivativeHelper.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/derivativeHelper_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/implicit.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/implicit_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/integrandtypes.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/kdtree.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/multilevelhpcore.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/ndarray.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/ndarray_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/numeric.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/polynomials.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/quadrature.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/refinement.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/topologycore.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core/utilities_impl.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/include/mlhp/core.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/pyproject.toml +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/algorithm.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/basis.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/basisevaluation.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/boundary.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/config.hpp.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/dense.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/files.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/implicit.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/multilevelhpcore.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/numeric.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/partitioning.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/quadrature.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/refinement.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/topologycore.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/core/utilities.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/files.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/main.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/src/python/mklwrapper.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/algorithm_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/basis_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/basisfunctions_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/boundary_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/core_test.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/dense_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/files.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/implicit_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/kdtree_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/main_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/ndarray_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/numeric_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/partitioning_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/projection_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/quadrature_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/singleBaseCell_2D.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/singleBaseCell_2D.hpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/sparse_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testCases_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/leafMask.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/levels.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/locationMapLengths.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/locationMaps.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/neighbours.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/parents.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/positionsInParent.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/FicheraCorner3D/tensorProductIndices.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/leafMask.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/levels.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/locationMapLengths.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/locationMaps.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/neighbours.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/parents.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/positionsInParent.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/HalfCircle2D/tensorProductIndices.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face0.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face1.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face2.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face3.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face4.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshBoundaryTriangulation/face5.txt +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/global.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indexMap.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indices1.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/indices2.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/otherLocal1.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/MeshIntersectionPartitioner/thisLocal1.dat +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/csg_binary.stl +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/testfiles/readStl_test.stl +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/core/utilities_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/__init__.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/eigenmodes_poisson_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/examples_test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/linear_heat.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/linear_heat_test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/main_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/planestress_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/pressurised_sphere_test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/run_systemtests.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_L2_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_L2_test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_Poisson_test.cpp +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tests/system/singular_poisson_test.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/ConfigureBuildType.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/ConfigureCompiler.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/cmake/CreateExampleDriver.cmake +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/doxygen/Doxyfile +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/benchmark.cpp.in +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/benchmark.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/printMedians.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/avxbenchmark/scheduleBenchmark.cmd +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/ci_check_release_version.py +0 -0
- {mlhp-0.2.0 → mlhp-0.2.2}/tools/scripts/ci_mint_pypi_token.py +0 -0
- {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
|
-
-
|
|
434
|
-
-
|
|
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(
|
|
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,10 +1,10 @@
|
|
|
1
1
|
"""Linear elasticity with FCM on a constructive solid geometry (CSG)
|
|
2
|
-
domain (sphere
|
|
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
|
|
6
|
-
- Traction BC on a
|
|
7
|
-
- Postprocessing on a domain boundary
|
|
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([
|
|
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
|
-
|
|
34
|
+
degree = 1
|
|
39
35
|
nelements = [50] * D
|
|
40
|
-
|
|
41
|
-
penalty =
|
|
36
|
+
alpha = 1e-8
|
|
37
|
+
penalty = 200 * youngsModulus
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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(
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
63
|
+
return face, facedata, quadrature
|
|
75
64
|
|
|
76
|
-
intersected0, celldata0, quadrature0 = createBoundaryQuadrature(
|
|
77
|
-
intersected1, celldata1, quadrature1 = createBoundaryQuadrature(
|
|
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=
|
|
87
|
+
depth=degree + 1, epsilon=alpha)
|
|
99
88
|
|
|
100
89
|
#quadrature = mlhp.momentFittingQuadrature(domain,
|
|
101
|
-
# depth=
|
|
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.
|
|
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
|
-
#
|
|
148
|
-
|
|
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 =
|
|
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;
|
|
136
|
-
|
|
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
|
-
#
|
|
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
|
-
|
|
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
|
|
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
|
-
#
|
|
288
|
-
|
|
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
|
-
#
|
|
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.
|
|
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
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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=
|
|
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=
|
|
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, "
|
|
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
|
-
#
|
|
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.")
|