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