ngstrefftz 0.3.2403.dev10__tar.gz → 0.3.2403.dev14__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.
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/build.yml +53 -104
- {ngstrefftz-0.3.2403.dev10/src → ngstrefftz-0.3.2403.dev14}/CMakeLists.txt +65 -110
- ngstrefftz-0.3.2403.dev14/PKG-INFO +102 -0
- ngstrefftz-0.3.2403.dev14/_version.py +16 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/intro.rst +1 -1
- ngstrefftz-0.3.2403.dev14/docs/requirements.txt +25 -0
- ngstrefftz-0.3.2403.dev14/external_dependencies/ngstents/.git +1 -0
- ngstrefftz-0.3.2403.dev14/pyproject.toml +57 -0
- ngstrefftz-0.3.2403.dev10/.github/workflows/build_linux_test.sh +0 -19
- ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip.ps1 +0 -58
- ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip.sh +0 -52
- ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip_mac.sh +0 -35
- ngstrefftz-0.3.2403.dev10/PKG-INFO +0 -14
- ngstrefftz-0.3.2403.dev10/docs/requirements.txt +0 -25
- ngstrefftz-0.3.2403.dev10/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -1
- ngstrefftz-0.3.2403.dev10/setup.cfg +0 -4
- ngstrefftz-0.3.2403.dev10/setup.py +0 -60
- ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/PKG-INFO +0 -14
- ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/SOURCES.txt +0 -149
- ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/dependency_links.txt +0 -1
- ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/requires.txt +0 -3
- ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/top_level.txt +0 -1
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.clang-format +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/pyodide/Dockerfile +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/pyodide/build_in_docker.sh +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/pyodide/merge.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.github/workflows/pyodide/requirements.txt +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/.gitmodules +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/CONTRIBUTING.md +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/Dockerfile +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/LICENSE +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/README.md +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/_static/breadcrumbs.html +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/_static/css/mytheme.css +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/conf.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/contrib.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/docu.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/index.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz-helm.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz-wave.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/embTrefftz.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/helmholtz.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/index.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/laplace.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/qtelliptic.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/qtwave.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/tunfitted.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/twave.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/notebooks/twavetents.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/paper/codemeta.json +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/paper/paper.bib +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/paper/paper.md +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14/external_dependencies/ngstents}/.github/workflows/ngsolve_version.txt +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/README.md +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/conf.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/figs/map.png +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/index.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/py/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/setup.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/advection.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/burgers.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/euler.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/tents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/tents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/src/wave.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/airy.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/condensedg.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/condensedg.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/diffopmapped.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/embtrefftz.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/embtrefftz.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/mesh1dtents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/mesh1dtents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/monomialfespace.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/monomialfespace.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/ngsttd.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/planewavefe.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/planewavefe.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/python_trefftz.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/scalarmappedfe.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/scalarmappedfe.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/specialcoefficientfunction.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/specialcoefficientfunction.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/specialintegrator.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/specialintegrator.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/trefftzfespace.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/trefftzfespace.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/twavetents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/src/twavetents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/test/dg.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/test/embt.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/test/tents.py +0 -0
- {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev14}/test/trefftz.py +0 -0
|
@@ -13,135 +13,86 @@ env:
|
|
|
13
13
|
|
|
14
14
|
jobs:
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
name:
|
|
16
|
+
test_linux:
|
|
17
|
+
name: Test on Linux
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
|
-
#container:
|
|
20
|
-
#image: quay.io/pypa/manylinux2014_x86_64:latest
|
|
21
|
-
#image: sameli/manylinux2014_x86_64_cuda_11
|
|
22
19
|
steps:
|
|
23
|
-
- name: clear cache
|
|
24
|
-
run: rm -rf /opt/hostedtoolcache
|
|
25
20
|
- uses: actions/checkout@v4
|
|
26
21
|
with:
|
|
27
22
|
submodules: 'True'
|
|
28
23
|
path: 'NGSTrefftz'
|
|
29
24
|
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
|
|
30
|
-
-
|
|
31
|
-
run: docker pull sameli/manylinux2014_x86_64_cuda_11.7
|
|
32
|
-
- name: run test
|
|
33
|
-
run: docker run -v $GITHUB_WORKSPACE:/workspace sameli/manylinux2014_x86_64_cuda_11.7 /bin/sh /workspace/NGSTrefftz/.github/workflows/build_linux_test.sh
|
|
34
|
-
- name: build pip
|
|
35
|
-
run: docker run -v $GITHUB_WORKSPACE:/workspace sameli/manylinux2014_x86_64_cuda_11.7 /bin/sh /workspace/NGSTrefftz/.github/workflows/build_pip.sh
|
|
36
|
-
- name: Store the binary wheel
|
|
37
|
-
uses: actions/upload-artifact@v4
|
|
38
|
-
with:
|
|
39
|
-
name: python-package-distributions-linux
|
|
40
|
-
path: NGSTrefftz/wheelhouse
|
|
41
|
-
|
|
42
|
-
pypi-mac:
|
|
43
|
-
name: Build wheels for macOS
|
|
44
|
-
strategy:
|
|
45
|
-
matrix:
|
|
46
|
-
py: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
47
|
-
runs-on: macos-11
|
|
48
|
-
env:
|
|
49
|
-
MACOSX_DEPLOYMENT_TARGET: '10.15'
|
|
50
|
-
steps:
|
|
51
|
-
- name: Checkout
|
|
52
|
-
uses: actions/checkout@v4
|
|
53
|
-
with:
|
|
54
|
-
fetch-depth: 0
|
|
55
|
-
submodules: recursive
|
|
56
|
-
path: 'NGSTrefftz'
|
|
57
|
-
- name: Get Python ${{ matrix.py }}
|
|
58
|
-
uses: actions/setup-python@v5
|
|
59
|
-
with:
|
|
60
|
-
python-version: ${{ matrix.py }}
|
|
61
|
-
- name: Run build script
|
|
62
|
-
run: cd NGSTrefftz/.github/workflows && bash build_pip_mac.sh ${{ matrix.py }}
|
|
63
|
-
- name: Store the binary wheel
|
|
64
|
-
uses: actions/upload-artifact@v4
|
|
25
|
+
- uses: actions/setup-python@v5
|
|
65
26
|
with:
|
|
66
|
-
|
|
67
|
-
|
|
27
|
+
python-version: '3.12'
|
|
28
|
+
- name: install ngstrefftz
|
|
29
|
+
run: cd NGSTrefftz && pip install . && pip install numpy
|
|
30
|
+
- name: run test
|
|
31
|
+
run: cd $GITHUB_WORKSPACE/NGSTrefftz/test && python3 -m doctest -v *.py
|
|
68
32
|
|
|
69
|
-
|
|
70
|
-
name: Build wheels
|
|
33
|
+
build_wheels:
|
|
34
|
+
name: Build wheels on ${{ matrix.os }}
|
|
35
|
+
needs: [ test_linux ]
|
|
36
|
+
runs-on: ${{ matrix.os }}
|
|
71
37
|
strategy:
|
|
72
38
|
matrix:
|
|
73
|
-
|
|
74
|
-
|
|
39
|
+
os: [ubuntu-latest, macos-13]
|
|
40
|
+
include:
|
|
41
|
+
- os: windows-2019
|
|
42
|
+
cibw-arch: AMD64
|
|
43
|
+
cmake-generator: "Visual Studio 16 2019"
|
|
44
|
+
cmake_generator_platform: "x64"
|
|
75
45
|
steps:
|
|
76
|
-
-
|
|
77
|
-
uses: actions/checkout@v4
|
|
46
|
+
- uses: actions/checkout@v4
|
|
78
47
|
with:
|
|
79
|
-
submodules:
|
|
48
|
+
submodules: 'True'
|
|
49
|
+
fetch-tags: 'true'
|
|
80
50
|
fetch-depth: 0
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
uses: actions/setup-python@v5
|
|
51
|
+
- name: Build wheels
|
|
52
|
+
uses: pypa/cibuildwheel@v2.19.0
|
|
53
|
+
- uses: actions/upload-artifact@v4
|
|
85
54
|
with:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
run: Set-Location NGSTrefftz/.github/workflows; ./build_pip.ps1 ${{ env.pythonLocation }}
|
|
89
|
-
- name: Store the binary wheel
|
|
90
|
-
uses: actions/upload-artifact@v4
|
|
91
|
-
with:
|
|
92
|
-
name: python-package-distributions-win-${{ matrix.py }}
|
|
93
|
-
path: NGSTrefftz/wheelhouse
|
|
55
|
+
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
56
|
+
path: ./wheelhouse/*.whl
|
|
94
57
|
|
|
95
|
-
|
|
96
|
-
name:
|
|
58
|
+
build_sdist:
|
|
59
|
+
name: Build source distribution
|
|
60
|
+
needs: [ test_linux ]
|
|
97
61
|
runs-on: ubuntu-latest
|
|
98
62
|
steps:
|
|
99
63
|
- uses: actions/checkout@v4
|
|
100
64
|
with:
|
|
101
65
|
submodules: 'True'
|
|
66
|
+
fetch-tags: 'true'
|
|
102
67
|
fetch-depth: 0
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
sudo apt-get update && DEBIAN_FRONTEND="noninteractive" sudo apt-get -y install vim python3 python3-pip python3-distutils python3-tk libpython3-dev libxmu-dev tk-dev tcl-dev cmake git g++ libglu1-mesa-dev libblas-dev liblapack-dev
|
|
107
|
-
- name: Update pip and Install setuptools
|
|
108
|
-
run: |
|
|
109
|
-
python3 -m pip install --upgrade pip
|
|
110
|
-
python3 -m pip install -U pytest-check numpy wheel scikit-build mkl==2023.* mkl-devel==2023.* setuptools setuptools_scm
|
|
111
|
-
python3 -m pip install ngsolve --pre
|
|
112
|
-
- name: Package ngstrefftz sources for PyPI
|
|
113
|
-
run: cd NGSTrefftz && python3 setup.py sdist -d wheelhouse
|
|
114
|
-
#- name: pip install ngstrefftz
|
|
115
|
-
#run: pip install dist/*
|
|
116
|
-
- name: Store the sdist
|
|
117
|
-
uses: actions/upload-artifact@v4
|
|
68
|
+
- name: Build sdist
|
|
69
|
+
run: pipx run build --sdist
|
|
70
|
+
- uses: actions/upload-artifact@v4
|
|
118
71
|
with:
|
|
119
|
-
name:
|
|
120
|
-
path:
|
|
72
|
+
name: cibw-sdist
|
|
73
|
+
path: dist/*.tar.gz
|
|
121
74
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
#if: github.event_name == 'release' && github.event.action == 'created'
|
|
125
|
-
needs: [pypi-linux, pypi-mac, pypi-win, pypi-src]
|
|
75
|
+
upload_pypi:
|
|
76
|
+
needs: [build_wheels, build_sdist]
|
|
126
77
|
runs-on: ubuntu-latest
|
|
78
|
+
environment: pypi
|
|
79
|
+
permissions:
|
|
80
|
+
id-token: write
|
|
127
81
|
steps:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
140
|
-
packages-dir: NGSTrefftz/wheelhouse/
|
|
141
|
-
#repository-url: https://test.pypi.org/legacy/
|
|
82
|
+
- uses: actions/download-artifact@v4
|
|
83
|
+
with:
|
|
84
|
+
pattern: cibw-*
|
|
85
|
+
path: dist
|
|
86
|
+
merge-multiple: true
|
|
87
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
88
|
+
if: github.ref == 'refs/heads/main' || github.event_name == 'release'
|
|
89
|
+
with:
|
|
90
|
+
skip-existing: true
|
|
91
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
92
|
+
# To test: repository-url: https://test.pypi.org/legacy/
|
|
142
93
|
|
|
143
94
|
docker:
|
|
144
|
-
needs: [
|
|
95
|
+
needs: [upload_pypi]
|
|
145
96
|
runs-on: ubuntu-latest
|
|
146
97
|
steps:
|
|
147
98
|
- name: clear cache
|
|
@@ -208,10 +159,8 @@ jobs:
|
|
|
208
159
|
name: ngst-pyodide
|
|
209
160
|
path: ./ngst-pyodide
|
|
210
161
|
|
|
211
|
-
|
|
212
|
-
|
|
213
162
|
docs:
|
|
214
|
-
needs: [
|
|
163
|
+
needs: [upload_pypi]
|
|
215
164
|
runs-on: ubuntu-latest
|
|
216
165
|
steps:
|
|
217
166
|
- uses: actions/checkout@v4
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
cmake_minimum_required(VERSION 3.
|
|
1
|
+
cmake_minimum_required(VERSION 3.16)
|
|
2
2
|
########################################################
|
|
3
3
|
project(ngstrefftz)
|
|
4
4
|
########################################################
|
|
@@ -10,120 +10,57 @@ if(NOT WIN32)
|
|
|
10
10
|
set(BoldWhite "${Esc}[1;37m")
|
|
11
11
|
endif()
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if(EXISTS "${LOC_PATH}")
|
|
16
|
-
message(FATAL_ERROR "You cannot build in a source directory (or any directory with a CMakeLists.txt file). Please make a build subdirectory. Feel free to remove CMakeCache.txt and CMakeFiles.")
|
|
17
|
-
endif()
|
|
18
|
-
set(CMAKE_CXX_STANDARD 17)
|
|
19
|
-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
20
|
-
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
21
|
-
|
|
22
|
-
# Find NGSolve and Netgen using python
|
|
23
|
-
if(CMAKE_VERSION VERSION_LESS "3.18")
|
|
24
|
-
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
|
|
25
|
-
else()
|
|
26
|
-
find_package(Python3 REQUIRED COMPONENTS Interpreter Development.Module)
|
|
27
|
-
endif()
|
|
28
|
-
set(Netgen_DIR "" CACHE PATH "Path to directory containing NetgenConfig.cmake")
|
|
29
|
-
set(NGSolve_DIR "" CACHE PATH "Path to directory containing NGSolveConfig.cmake")
|
|
30
|
-
execute_process(COMMAND ${Python3_EXECUTABLE} -m netgen.config OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE Netgen_DIR)
|
|
31
|
-
execute_process(COMMAND ${Python3_EXECUTABLE} -m ngsolve.config OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE NGSolve_DIR)
|
|
32
|
-
find_package(NGSolve CONFIG REQUIRED)
|
|
33
|
-
|
|
34
|
-
### check if CMAKE_INSTALL_PREFIX is set by user, if not install in NGSolve python dir
|
|
35
|
-
|
|
36
|
-
#set(INSTDIR_FROM_NGSOLVE ${CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT} CACHE BOOL "Try to get install dir from NGSolve")
|
|
37
|
-
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
38
|
-
execute_process(COMMAND ${Python3_EXECUTABLE} -m site --user-site OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE install_dir RESULT_VARIABLE ret)
|
|
39
|
-
if (NOT ret EQUAL 0)
|
|
40
|
-
# user site directory is disabled (are we in a virtual environment?)
|
|
41
|
-
set(install_dir ${Python3_SITEARCH})
|
|
42
|
-
endif()
|
|
43
|
-
message("Install dir from NGSolve: ${install_dir}")
|
|
44
|
-
set(CMAKE_INSTALL_PREFIX ${install_dir} CACHE PATH "Install dir" FORCE)
|
|
45
|
-
else(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
46
|
-
#set(PY_INSTALL_DIR ${NGSOLVE_INSTALL_DIR_PYTHON} CACHE STRING "subdir of install dir for python modules")
|
|
47
|
-
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import os.path, sysconfig;print(os.path.relpath(sysconfig.get_path('platlib'), sysconfig.get_path('data')))" OUTPUT_VARIABLE PY_INSTALL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
48
|
-
message("python packages install dir: ${PY_INSTALL_DIR}")
|
|
49
|
-
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
13
|
+
file(DOWNLOAD https://raw.githubusercontent.com/NGSolve/ngsolve-addon-template/main/ngsolve_addon.cmake ${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
|
|
14
|
+
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_BINARY_DIR}/cmake_modules")
|
|
50
15
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} CACHE PATH "build dir")
|
|
51
16
|
|
|
52
|
-
### install message
|
|
53
|
-
set(NGSTREFFTZ_USE_MKL ${NGSOLVE_USE_MKL} CACHE BOOL "Try to use mkl")
|
|
54
|
-
set(NGSTREFFTZ_USE_LAPACK ${NGSOLVE_USE_LAPACK} CACHE BOOL "Try to use lapack from ngsolve")
|
|
55
|
-
set(INSTALL_TENTS ON CACHE BOOL "Install ngstents")
|
|
56
|
-
message("${BoldCyan}
|
|
57
|
-
------------------------------------------------------------------------
|
|
58
|
-
Build type: ${CMAKE_BUILD_TYPE}
|
|
59
|
-
Compiler: ${CMAKE_CXX_COMPILER}
|
|
60
|
-
Flags: ${flags}
|
|
61
|
-
|
|
62
|
-
Enabled functionality:
|
|
63
|
-
LAPACK: ............ ${NGSTREFFTZ_USE_LAPACK}
|
|
64
|
-
MKL: ............... ${NGSTREFFTZ_USE_MKL}
|
|
65
|
-
ngstents: .......... ${INSTALL_TENTS}
|
|
66
|
-
|
|
67
|
-
With 'make install' the package will be installed to: ${CMAKE_INSTALL_PREFIX}
|
|
68
|
-
Make sure to add it to the python path:
|
|
69
|
-
--> export PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${PY_INSTALL_DIR}:$PYTHONPATH
|
|
70
|
-
------------------------------------------------------------------------
|
|
71
|
-
\n${ColourReset}")
|
|
72
|
-
|
|
73
17
|
### add ngstents dependency if needed
|
|
18
|
+
set(INSTALL_TENTS ON CACHE BOOL "Install ngstents")
|
|
74
19
|
if (INSTALL_TENTS)# AND NOT TARGET _pytents)
|
|
75
|
-
include_directories(${CMAKE_SOURCE_DIR}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
20
|
+
include_directories(${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src)
|
|
21
|
+
set(addon_name _pytents)
|
|
22
|
+
project(_pytents)
|
|
23
|
+
include(${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
|
|
24
|
+
add_ngsolve_addon( _pytents
|
|
25
|
+
${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src/python_tents.cpp
|
|
26
|
+
${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src/tents.cpp
|
|
79
27
|
)
|
|
80
|
-
target_link_libraries(_pytents PUBLIC ngsolve Python3::Module)
|
|
81
|
-
set_target_properties(_pytents PROPERTIES PREFIX "" CXX_STANDARD 17)
|
|
82
|
-
if(WIN32)
|
|
83
|
-
set_target_properties(_pytents PROPERTIES SUFFIX ".pyd" )
|
|
84
|
-
else(WIN32)
|
|
85
|
-
set_target_properties(_pytents PROPERTIES SUFFIX ".so")
|
|
86
|
-
endif(WIN32)
|
|
87
28
|
target_compile_definitions(_pytents PRIVATE NGSTENT_EXPORTS)
|
|
88
29
|
set_target_properties(_pytents PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstents")
|
|
89
30
|
file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstents/__init__.py "from ._pytents import TentSlab, Tent")
|
|
90
|
-
|
|
91
|
-
install(
|
|
31
|
+
set(install_dir ${ADDON_INSTALL_DIR_PYTHON}/ngstents)
|
|
32
|
+
install(TARGETS _pytents DESTINATION ${install_dir})
|
|
33
|
+
install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstents/__init__.py DESTINATION ${install_dir})
|
|
92
34
|
endif(INSTALL_TENTS)
|
|
93
35
|
|
|
94
36
|
### ngstrefftz
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
37
|
+
set(addon_name _trefftz)
|
|
38
|
+
project(_trefftz)
|
|
39
|
+
include(${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
|
|
40
|
+
add_ngsolve_addon( _trefftz
|
|
41
|
+
src/python_trefftz.cpp
|
|
42
|
+
src/diffopmapped.hpp
|
|
43
|
+
src/scalarmappedfe.cpp
|
|
44
|
+
src/planewavefe.cpp
|
|
45
|
+
src/trefftzfespace.cpp
|
|
46
|
+
src/specialcoefficientfunction.cpp
|
|
47
|
+
src/specialintegrator.cpp
|
|
48
|
+
src/twavetents.cpp
|
|
49
|
+
src/embtrefftz.cpp
|
|
50
|
+
src/monomialfespace.cpp
|
|
51
|
+
src/mesh1dtents.cpp
|
|
52
|
+
src/condensedg.cpp
|
|
53
|
+
#src/airy.cpp #for testing, requires boost
|
|
109
54
|
)
|
|
110
|
-
target_link_libraries(_trefftz PUBLIC ngsolve Python3::Module)
|
|
111
55
|
target_link_libraries(_trefftz PRIVATE _pytents)
|
|
112
|
-
set_target_properties(_trefftz PROPERTIES PREFIX "" CXX_STANDARD 17)
|
|
113
|
-
if(WIN32)
|
|
114
|
-
set_target_properties(_trefftz PROPERTIES SUFFIX ".pyd" )
|
|
115
|
-
else(WIN32)
|
|
116
|
-
set_target_properties(_trefftz PROPERTIES SUFFIX ".so")
|
|
117
|
-
endif(WIN32)
|
|
118
56
|
target_compile_definitions(_trefftz PRIVATE NGSTREFFTZ_EXPORTS)
|
|
119
|
-
#target_compile_options(_trefftz PRIVATE "$<$<CONFIG:DEBUG>:-W;-Wall;-Wextra;-Wpedantic;-Wno-unused-parameter;-g;>")
|
|
120
|
-
#set_target_properties(_trefftz PROPERTIES COMPILE_DEFINITIONS "NGSTREFFTZ_EXPORTS")
|
|
121
57
|
|
|
122
58
|
### link LAPACK or MKL if possible
|
|
59
|
+
set(NGSTREFFTZ_USE_MKL ${NGSOLVE_USE_MKL} CACHE BOOL "Try to use mkl")
|
|
60
|
+
set(NGSTREFFTZ_USE_LAPACK ${NGSOLVE_USE_LAPACK} CACHE BOOL "Try to use lapack from ngsolve")
|
|
123
61
|
if (NGSTREFFTZ_USE_MKL)
|
|
124
62
|
#list(GET NGSOLVE_INCLUDE_DIRS 0 NGSOLVE_MKL_INCLUDE_DIRS)
|
|
125
63
|
file(DOWNLOAD https://raw.githubusercontent.com/NGSolve/ngsolve/master/cmake/cmake_modules/FindMKL.cmake ${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake)
|
|
126
|
-
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_BINARY_DIR}/cmake_modules")
|
|
127
64
|
|
|
128
65
|
set(MKL_MULTI_THREADED ON CACHE BOOL "Use threaded MKL libs")
|
|
129
66
|
if(NOT MKL_MULTI_THREADED)
|
|
@@ -132,7 +69,6 @@ if (NGSTREFFTZ_USE_MKL)
|
|
|
132
69
|
set(MKL_STATIC OFF CACHE BOOL "Link static MKL")
|
|
133
70
|
set(MKL_SDL ON CACHE BOOL "Link single dynamic MKL lib")
|
|
134
71
|
set(MKL_ARCH "intel64")
|
|
135
|
-
message("MKL_ARCH=${MKL_ARCH}")
|
|
136
72
|
if(NOT MKL_LINK)
|
|
137
73
|
if(MKL_STATIC)
|
|
138
74
|
set(MKL_LINK static)
|
|
@@ -150,11 +86,11 @@ if (NGSTREFFTZ_USE_MKL)
|
|
|
150
86
|
#if(MKL_FOUND)
|
|
151
87
|
if(MKL_MINIMAL_LIBRARIES)
|
|
152
88
|
set(LAPACK_LIBRARIES "${MKL_LIBRARIES}")
|
|
153
|
-
message("Setting LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
89
|
+
message(STATUS "Setting LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
154
90
|
target_include_directories(_trefftz PRIVATE "${MKL_INCLUDE_DIRS}")
|
|
155
91
|
endif()
|
|
156
92
|
if(MKL_LIBRARY)
|
|
157
|
-
message("MKL_LIBRARY=${MKL_LIBRARY}")
|
|
93
|
+
message(STATUS "MKL_LIBRARY=${MKL_LIBRARY}")
|
|
158
94
|
#if(WIN32)
|
|
159
95
|
#set(LAPACK_LIBRARIES "${MKL_MINIMAL_LIBRARIES}")
|
|
160
96
|
#else()
|
|
@@ -167,12 +103,12 @@ if (NGSTREFFTZ_USE_MKL)
|
|
|
167
103
|
#set(MKL_RT_NAME libmkl_rt.so.2)
|
|
168
104
|
#endif()
|
|
169
105
|
get_filename_component(MKL_RT_NAME ${MKL_LIBRARY} NAME)
|
|
170
|
-
message("MKL_RT_NAME=${MKL_RT_NAME}")
|
|
106
|
+
message(STATUS "MKL_RT_NAME=${MKL_RT_NAME}")
|
|
171
107
|
find_library(MKLRT ${MKL_RT_NAME} HINTS ${MKL_ROOT}/lib ${MKL_LIBRARY})
|
|
172
|
-
message("MKLRT=${MKLRT}")
|
|
108
|
+
message(STATUS "MKLRT=${MKLRT}")
|
|
173
109
|
if(MKLRT)
|
|
174
110
|
set(LAPACK_LIBRARIES ${MKLRT})
|
|
175
|
-
message("MKLRT setting LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
111
|
+
message(STATUS "MKLRT setting LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
176
112
|
endif()
|
|
177
113
|
#else()
|
|
178
114
|
#message("${Red}MKL not found, switching off NGSTREFFTZ_USE_LAPACK!${ColourReset}")
|
|
@@ -184,7 +120,7 @@ if(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
|
|
|
184
120
|
endif(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
|
|
185
121
|
if(LAPACK_LIBRARIES)
|
|
186
122
|
#target_link_libraries(_trefftz PRIVATE $<BUILD_INTERFACE:ngs_lapack>)
|
|
187
|
-
message("Linking with LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
123
|
+
message(STATUS "Linking with LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
188
124
|
target_link_libraries(_trefftz PRIVATE ${LAPACK_LIBRARIES})
|
|
189
125
|
target_compile_definitions(_trefftz PRIVATE NGSTREFFTZ_USE_LAPACK)
|
|
190
126
|
else(LAPACK_LIBRARIES)
|
|
@@ -193,17 +129,36 @@ endif(LAPACK_LIBRARIES)
|
|
|
193
129
|
|
|
194
130
|
### install
|
|
195
131
|
set_target_properties(_trefftz PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz")
|
|
196
|
-
file(COPY ${CMAKE_SOURCE_DIR}/__init__.py DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz)
|
|
197
|
-
|
|
198
|
-
install(
|
|
132
|
+
file(COPY ${CMAKE_SOURCE_DIR}/src/__init__.py DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz)
|
|
133
|
+
set(install_dir ${ADDON_INSTALL_DIR_PYTHON}/ngstrefftz)
|
|
134
|
+
install(TARGETS _trefftz DESTINATION ${install_dir})
|
|
135
|
+
install(FILES src/__init__.py DESTINATION ${install_dir})
|
|
136
|
+
#ngsolve_generate_stub_files(${addon_name})
|
|
137
|
+
|
|
138
|
+
message("${BoldCyan}
|
|
139
|
+
------------------------------------------------------------------------
|
|
140
|
+
Build type: ${CMAKE_BUILD_TYPE}
|
|
141
|
+
Compiler: ${CMAKE_CXX_COMPILER}
|
|
142
|
+
Flags: ${flags}
|
|
143
|
+
|
|
144
|
+
Enabled functionality:
|
|
145
|
+
LAPACK: ............ ${NGSTREFFTZ_USE_LAPACK}
|
|
146
|
+
MKL: ............... ${NGSTREFFTZ_USE_MKL}
|
|
147
|
+
ngstents: .......... ${INSTALL_TENTS}
|
|
148
|
+
|
|
149
|
+
With 'make install' the package will be installed to: ${CMAKE_INSTALL_PREFIX}
|
|
150
|
+
Make sure to add it to the python path:
|
|
151
|
+
--> export PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${ADDON_INSTALL_DIR_PYTHON}:$PYTHONPATH
|
|
152
|
+
------------------------------------------------------------------------
|
|
153
|
+
\n${ColourReset}")
|
|
199
154
|
|
|
200
155
|
### tests
|
|
201
156
|
include(CTest)
|
|
202
157
|
file(COPY
|
|
203
|
-
${CMAKE_SOURCE_DIR}
|
|
204
|
-
${CMAKE_SOURCE_DIR}
|
|
205
|
-
${CMAKE_SOURCE_DIR}
|
|
206
|
-
${CMAKE_SOURCE_DIR}
|
|
158
|
+
${CMAKE_SOURCE_DIR}/test/dg.py
|
|
159
|
+
${CMAKE_SOURCE_DIR}/test/embt.py
|
|
160
|
+
${CMAKE_SOURCE_DIR}/test/trefftz.py
|
|
161
|
+
${CMAKE_SOURCE_DIR}/test/tents.py
|
|
207
162
|
DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing)
|
|
208
163
|
add_test(NAME embtrefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/embt.py)
|
|
209
164
|
add_test(NAME trefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/trefftz.py)
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: ngstrefftz
|
|
3
|
+
Version: 0.3.2403.dev14
|
|
4
|
+
Summary: NGSTrefftz is an add-on to NGSolve for Trefftz methods.
|
|
5
|
+
Author-Email: Paul Stocker <paul.stocker@univie.ac.at>
|
|
6
|
+
License: LGPL2.1
|
|
7
|
+
Project-URL: Documentation, https://paulst.github.io/NGSTrefftz
|
|
8
|
+
Project-URL: Repository, https://github.com/PaulSt/ngstrefftz
|
|
9
|
+
Requires-Python: >=3.8
|
|
10
|
+
Requires-Dist: ngsolve==6.2.2404.post16
|
|
11
|
+
Requires-Dist: pytest; extra == "test"
|
|
12
|
+
Provides-Extra: test
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
# NGSTrefftz
|
|
16
|
+
**an add-on to NGSolve for Trefftz methods**
|
|
17
|
+
|
|
18
|
+
[](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)
|
|
19
|
+
[](https://hub.docker.com/r/paulstdocker/ngstrefftz)
|
|
20
|
+
[](https://pypi.org/project/ngstrefftz/)
|
|
21
|
+
[](https://github.com/PaulSt/NGSTrefftz/actions/workflows/build.yml)
|
|
22
|
+
[](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409)
|
|
23
|
+
[](https://paulst.github.io/NGSTrefftz/)
|
|
24
|
+
|
|
25
|
+
NGSTrefftz provides a framework to implement Trefftz finite element spaces for [NGSolve](https://www.ngsolve.org), with several Trefftz spaces already implemented. Additionally, Trefftz-DG on tent-pitched meshes for the acoustic wave equation is implemented using meshes provided by [ngstents](https://github.com/jayggg/ngstents). Furthermore, the package includes an implementation of the embedded Trefftz method.
|
|
26
|
+
|
|
27
|
+
## Try it out!
|
|
28
|
+
You can try out some jupyter notebooks:
|
|
29
|
+
* Launch the Binder here:
|
|
30
|
+
[](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)
|
|
31
|
+
* Or run the docker locally (you need to have docker installed):
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
git clone https://github.com/PaulSt/NGSTrefftz
|
|
35
|
+
cd NGSTrefftz && docker build -t ngstrefftz_jupyter .
|
|
36
|
+
docker run -p 8888:8888 ngstrefftz_jupyter
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Installing the package
|
|
40
|
+
You can either:
|
|
41
|
+
* install using pip
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install ngstrefftz
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
* or build from source
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
git clone --recursive https://github.com/PaulSt/NGSTrefftz
|
|
51
|
+
mkdir ./NGSTrefftz/make && cd ./NGSTrefftz/make
|
|
52
|
+
cmake ../src && make install
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Dependencies
|
|
56
|
+
* if you are using pip to install the package you can install the newest ngsolve and other dependencies using
|
|
57
|
+
```bash
|
|
58
|
+
pip install ngsolve --pre
|
|
59
|
+
```
|
|
60
|
+
* if you build the package from source the following software needs to be installed
|
|
61
|
+
* [cmake](https://cmake.org/) >= 3.1
|
|
62
|
+
* [gcc](https://gcc.gnu.org/) >= 9 or [clang](https://clang.llvm.org/) >= 10
|
|
63
|
+
* [lapack](http://www.netlib.org/lapack/) >= 3.9 (required to access the newest features)
|
|
64
|
+
* [ngsolve](https://www.ngsolve.org) >= 6.2 (to access the newest features the nightly version of NGSolve works best)
|
|
65
|
+
|
|
66
|
+
## News
|
|
67
|
+
⚠️ Oct, 2022: With v0.2.0 the git history has undergone a major cleanup, please make sure to clone the repo anew.
|
|
68
|
+
|
|
69
|
+
🚀 Oct, 2022: New and improved implementation of the embedded Trefftz method via `EmbeddedTrefftzFES`!
|
|
70
|
+
|
|
71
|
+
🚀 Aug, 2022: Three different [pip](https://pypi.org/search/?q=ngstrefftz)-installer available, now using wheels!
|
|
72
|
+
|
|
73
|
+
🚀 Mar, 2022: NGSTrefftz now has a [website](https://paulst.github.io/NGSTrefftz/)!
|
|
74
|
+
|
|
75
|
+
⚠️ Feb, 2022: If you are using NGSolve nightly releases: [NGSolve@eda758d](https://github.com/NGSolve/ngsolve/commit/eda758d99483888851913d8a5c9aff4d0cbc9cc2) breaks a dependency and [NGSolve@3d52ecd](https://github.com/NGSolve/ngsolve/commit/3d52ecd615f2b7c409219eebaba99288ea19c1bc) produces import issue. Make sure to update ngstrefftz submodules and move to newest ngsolve version, at least [NGSolve@5839a09](https://github.com/NGSolve/ngsolve/commit/5839a09810235a938bd85807d8e638d3a0b6c69d).
|
|
76
|
+
|
|
77
|
+
🚀 Jan, 2022: NGSTrefftz is now available via pip!
|
|
78
|
+
|
|
79
|
+
🚀 Nov, 2021: NGSTrefftz now comes in a docker and with binder notebooks!
|
|
80
|
+
|
|
81
|
+
## Papers using the code
|
|
82
|
+
* *Trefftz Discontinuous Galerkin discretization for the Stokes problem*
|
|
83
|
+
Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker
|
|
84
|
+
[](https://arxiv.org/abs/2306.14600)
|
|
85
|
+
* *Unfitted Trefftz discontinuous Galerkin methods for elliptic boundary value problems*
|
|
86
|
+
Fabian Heimann, Christoph Lehrenfeld, Paul Stocker, Henry von Wahl
|
|
87
|
+
[](https://arxiv.org/abs/2212.12236)
|
|
88
|
+
* *Embedded Trefftz discontinuous Galerkin methods*
|
|
89
|
+
Christoph Lehrenfeld, Paul Stocker
|
|
90
|
+
[](https://arxiv.org/abs/2201.07041)
|
|
91
|
+
* *A space-time quasi-Trefftz DG method for the wave equation with piecewise-smooth coefficients*
|
|
92
|
+
Lise-Marie Imbert-Gérard, Andrea Moiola, Paul Stocker
|
|
93
|
+
[](https://arxiv.org/abs/2011.04617)
|
|
94
|
+
* *Tent pitching and Trefftz-DG method for the acoustic wave equation*
|
|
95
|
+
Ilaria Perugia, Joachim Schöberl, Paul Stocker, Christoph Wintersteiger
|
|
96
|
+
[](https://arxiv.org/abs/1907.02367)
|
|
97
|
+
|
|
98
|
+
If you are using `ngstrefftz` in your academic work, please consider citing
|
|
99
|
+
```
|
|
100
|
+
Stocker, P., (2022). NGSTrefftz: Add-on to NGSolve for Trefftz methods.
|
|
101
|
+
Journal of Open Source Software, 7(71), 4135, https://doi.org/10.21105/joss.04135
|
|
102
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# file generated by setuptools_scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
TYPE_CHECKING = False
|
|
4
|
+
if TYPE_CHECKING:
|
|
5
|
+
from typing import Tuple, Union
|
|
6
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
|
+
else:
|
|
8
|
+
VERSION_TUPLE = object
|
|
9
|
+
|
|
10
|
+
version: str
|
|
11
|
+
__version__: str
|
|
12
|
+
__version_tuple__: VERSION_TUPLE
|
|
13
|
+
version_tuple: VERSION_TUPLE
|
|
14
|
+
|
|
15
|
+
__version__ = version = '0.3.2403.dev14'
|
|
16
|
+
__version_tuple__ = version_tuple = (0, 3, 2403, 'dev14')
|
|
@@ -75,7 +75,7 @@ where :math:`h` is the mesh size, :math:`p` is the polynomial degree and :math:`
|
|
|
75
75
|
|
|
76
76
|
from ngsolve import *
|
|
77
77
|
from ngstrefftz import *
|
|
78
|
-
from netgen.
|
|
78
|
+
from netgen.occ import *
|
|
79
79
|
p=5
|
|
80
80
|
|
|
81
81
|
For a given mesh we construct the Trefftz finite element space as
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
setuptools==70
|
|
2
|
+
setuptools_scm==8
|
|
3
|
+
jupyter==1.0.0
|
|
4
|
+
|
|
5
|
+
matplotlib==3.9.0
|
|
6
|
+
matplotlib-inline==0.1.6
|
|
7
|
+
|
|
8
|
+
pandoc==2.3
|
|
9
|
+
nbconvert==7.16.4
|
|
10
|
+
nbformat==5.10.4
|
|
11
|
+
nbsphinx>=0.8.9
|
|
12
|
+
notebook==7.2.0
|
|
13
|
+
|
|
14
|
+
Sphinx==7.3.7
|
|
15
|
+
sphinx-rtd-theme==2.0.0
|
|
16
|
+
sphinxemoji==0.3.1
|
|
17
|
+
jupyter_sphinx==0.5.3
|
|
18
|
+
myst_parser==3.0.1
|
|
19
|
+
|
|
20
|
+
numpy==1.26.4
|
|
21
|
+
scipy==1.13.1
|
|
22
|
+
ngsolve>=6.2.2404
|
|
23
|
+
xfem>=2.1.2404
|
|
24
|
+
ngstrefftz>=0.2.2402
|
|
25
|
+
webgui-jupyter-widgets==0.2.33
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gitdir: ../../.git/modules/external_dependencies/ngstents
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "ngstrefftz"
|
|
3
|
+
dynamic = ["version", "dependencies"]
|
|
4
|
+
authors = [ {name = "Paul Stocker", email = "paul.stocker@univie.ac.at"} ]
|
|
5
|
+
description='NGSTrefftz is an add-on to NGSolve for Trefftz methods.'
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
license= { text = "LGPL2.1" }
|
|
8
|
+
requires-python = ">=3.8"
|
|
9
|
+
#classifiers = [
|
|
10
|
+
#"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
|
11
|
+
#]
|
|
12
|
+
|
|
13
|
+
[project.urls]
|
|
14
|
+
Documentation = "https://paulst.github.io/NGSTrefftz"
|
|
15
|
+
Repository = "https://github.com/PaulSt/ngstrefftz"
|
|
16
|
+
|
|
17
|
+
[build-system]
|
|
18
|
+
requires = ["setuptools>=45", "setuptools_scm[toml]>=8", "toml", "scikit-build-core>=0.3.3", "pybind11_stubgen", "cmake>=3.26.1", "ngsolve>=6.2.2404"]
|
|
19
|
+
build-backend = "scikit_build_core.build"
|
|
20
|
+
|
|
21
|
+
[tool.scikit-build]
|
|
22
|
+
cmake.version = ">=3.26.1"
|
|
23
|
+
ninja.version = ">=1.11"
|
|
24
|
+
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
|
|
25
|
+
sdist.include = ["_version.py"]
|
|
26
|
+
#build-dir = "./build_py/{wheel_tag}" # local build directory - for debugging
|
|
27
|
+
|
|
28
|
+
experimental = true
|
|
29
|
+
# This adds ngsolve (with exact build-time version) to the dependencies
|
|
30
|
+
metadata.dependencies.provider="ngsolve._scikit_build_core_dependencies"
|
|
31
|
+
|
|
32
|
+
[tool.setuptools_scm] # Section required
|
|
33
|
+
write_to = "_version.py"
|
|
34
|
+
local_scheme = "no-local-version"
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
test = ["pytest"]
|
|
38
|
+
|
|
39
|
+
[tool.pytest.ini_options]
|
|
40
|
+
testpaths = ["tests"]
|
|
41
|
+
|
|
42
|
+
[tool.cibuildwheel]
|
|
43
|
+
#build-verbosity = 1
|
|
44
|
+
skip = """
|
|
45
|
+
pp*
|
|
46
|
+
*_i686
|
|
47
|
+
*musllinux*
|
|
48
|
+
*win32
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
[tool.cibuildwheel.linux]
|
|
52
|
+
repair-wheel-command = "mv {wheel} {dest_dir} && rename linux_x86_64 manylinux_2_17_x86_64.manylinux2014_x86_64 {dest_dir}/*-linux_x86_64*.whl"
|
|
53
|
+
|
|
54
|
+
[tool.cibuildwheel.macos]
|
|
55
|
+
environment = {MACOSX_DEPLOYMENT_TARGET="10.15"}
|
|
56
|
+
repair-wheel-command = ""
|
|
57
|
+
archs = ["universal2"]
|