ngstrefftz 0.3.2405.dev6__tar.gz → 0.3.2406.dev89__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.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/build.yml +134 -50
- ngstrefftz-0.3.2406.dev89/.gitignore +15 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.gitmodules +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/CMakeLists.txt +105 -36
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/Dockerfile +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/PKG-INFO +23 -6
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/README.md +20 -2
- ngstrefftz-0.3.2406.dev89/_version.py +21 -0
- ngstrefftz-0.3.2406.dev89/docs/Doxyfile.in +4 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/conf.py +1 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/docu.rst +5 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-adv.ipynb +5 -3
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-helm.ipynb +3 -3
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-poi.ipynb +81 -5
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-stokes.ipynb +4 -4
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-wave.ipynb +3 -3
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz.ipynb +38 -31
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/index.ipynb +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/laplace.ipynb +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/requirements.txt +3 -3
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/.github/workflows/build.yml +109 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/.gitignore +1 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/README.md +129 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +79 -34
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/INDEX.ipynb +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/StartPitching.ipynb +47 -34
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/_config.yml +49 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/_toc.yml +13 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/conf.py +1 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/intro.md +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/requirements.txt +1 -4
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/__init__.py +1 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/pyproject.toml +47 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/CMakeLists.txt +45 -0
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/ngsolve_addon.cmake +97 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/paralleldepend.hpp +1 -1
- ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/python_tents.cpp +141 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tents.cpp +27 -31
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tents.hpp +3 -3
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/pyproject.toml +17 -11
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/__init__.py +5 -1
- ngstrefftz-0.3.2406.dev89/src/boxintegral.cpp +1288 -0
- ngstrefftz-0.3.2406.dev89/src/boxintegral.hpp +212 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/condensedg.cpp +4 -6
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/diffopmapped.hpp +21 -21
- ngstrefftz-0.3.2406.dev89/src/embtrefftz.cpp +1424 -0
- ngstrefftz-0.3.2406.dev89/src/embtrefftz.hpp +182 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/mesh1dtents.cpp +1 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/monomialfespace.cpp +10 -11
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/monomialfespace.hpp +4 -5
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/planewavefe.cpp +30 -17
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/planewavefe.hpp +36 -37
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufe.cpp +18 -19
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufespace.cpp +2 -2
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufespace.hpp +3 -2
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/python_trefftz.cpp +3 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/scalarmappedfe.cpp +68 -71
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/scalarmappedfe.hpp +9 -9
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialcoefficientfunction.cpp +31 -4
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialcoefficientfunction.hpp +26 -1
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialintegrator.cpp +24 -29
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialintegrator.hpp +30 -30
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/trefftzfespace.cpp +297 -359
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/trefftzfespace.hpp +59 -15
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/twavetents.cpp +7 -7
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/twavetents.hpp +10 -10
- ngstrefftz-0.3.2406.dev89/test/boxint.py +78 -0
- ngstrefftz-0.3.2406.dev89/test/conforming_trefftz.py +580 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/test/dg.py +82 -2
- ngstrefftz-0.3.2406.dev89/test/embt.py +480 -0
- ngstrefftz-0.3.2406.dev89/test/embtrefftz_gtest.cpp +152 -0
- ngstrefftz-0.3.2405.dev6/_version.py +0 -16
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.git +0 -1
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build.yml +0 -216
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -24
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -32
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -19
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -41
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -1
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/README.md +0 -83
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/setup.py +0 -27
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/src/CMakeLists.txt +0 -97
- ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/src/python_tents.cpp +0 -139
- ngstrefftz-0.3.2405.dev6/src/embtrefftz.cpp +0 -775
- ngstrefftz-0.3.2405.dev6/src/embtrefftz.hpp +0 -80
- ngstrefftz-0.3.2405.dev6/test/embt.py +0 -285
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.clang-format +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/Dockerfile +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/build_in_docker.sh +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/merge.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/requirements.txt +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/CONTRIBUTING.md +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/LICENSE +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/_static/breadcrumbs.html +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/_static/css/mytheme.css +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/contrib.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/index.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/intro.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/helmholtz.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/qtelliptic.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/qtwave.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/tunfitted.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/twave.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/twavetents.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/codemeta.json +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/paper.bib +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/paper.md +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/map.png +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/index.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/advection.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/burgers.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/euler.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/wave.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/airy.cpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/condensedg.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/mesh1dtents.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/ngsttd.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufe.hpp +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/test/tents.py +0 -0
- {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/test/trefftz.py +0 -0
|
@@ -1,71 +1,145 @@
|
|
|
1
1
|
name: build
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
level:
|
|
7
|
+
description: 'build level'
|
|
8
|
+
required: true
|
|
9
|
+
default: 'full'
|
|
10
|
+
type: choice
|
|
11
|
+
options:
|
|
12
|
+
- test_only
|
|
13
|
+
- quick
|
|
14
|
+
- full
|
|
4
15
|
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: ['main**']
|
|
16
|
+
branches: ["main**"]
|
|
8
17
|
release:
|
|
9
18
|
types: [created]
|
|
10
|
-
|
|
11
|
-
env:
|
|
12
|
-
BUILD_TYPE: Debug
|
|
19
|
+
|
|
13
20
|
|
|
14
21
|
jobs:
|
|
22
|
+
check_formatting:
|
|
23
|
+
name: Check Formatting with Clang Format
|
|
24
|
+
runs-on: ubuntu-24.04
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
submodules: true
|
|
29
|
+
path: "NGSTrefftz"
|
|
30
|
+
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
|
|
31
|
+
- uses: RafikFarhad/clang-format-github-action@v4
|
|
32
|
+
with:
|
|
33
|
+
sources: "src/**/*.hpp,src/**/*.cpp,test/**/*.cpp"
|
|
34
|
+
style: file
|
|
15
35
|
|
|
16
36
|
test_linux:
|
|
17
37
|
name: Test on Linux
|
|
18
38
|
runs-on: ubuntu-latest
|
|
39
|
+
container: archlinux:latest
|
|
19
40
|
steps:
|
|
41
|
+
- name: setup
|
|
42
|
+
run: pacman -Syu --noconfirm && pacman -S --noconfirm python python-pip python-setuptools git gcc make cmake python-numpy python-scipy
|
|
20
43
|
- uses: actions/checkout@v4
|
|
21
44
|
with:
|
|
22
|
-
submodules:
|
|
23
|
-
path:
|
|
45
|
+
submodules: true
|
|
46
|
+
path: "NGSTrefftz"
|
|
24
47
|
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
#- uses: actions/setup-python@v5
|
|
49
|
+
#with:
|
|
50
|
+
#python-version: "3.12"
|
|
28
51
|
- name: install ngstrefftz
|
|
29
|
-
|
|
52
|
+
#env:
|
|
53
|
+
#NGSTREFFTZ_USE_GTEST: 'ON'
|
|
54
|
+
run: cd NGSTrefftz && pip install --break-system-packages . -v
|
|
30
55
|
- name: run test
|
|
31
56
|
run: cd $GITHUB_WORKSPACE/NGSTrefftz/test && python3 -m doctest -v *.py
|
|
32
57
|
|
|
58
|
+
gtest_linux:
|
|
59
|
+
name: Test GTest on Linux
|
|
60
|
+
runs-on: ubuntu-24.04
|
|
61
|
+
steps:
|
|
62
|
+
- uses: actions/checkout@v4
|
|
63
|
+
with:
|
|
64
|
+
submodules: true
|
|
65
|
+
path: "NGSTrefftz"
|
|
66
|
+
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
|
|
67
|
+
- uses: actions/setup-python@v5
|
|
68
|
+
with:
|
|
69
|
+
python-version: "3.12"
|
|
70
|
+
- uses: Bacondish2023/setup-googletest@v1
|
|
71
|
+
with:
|
|
72
|
+
tag: v1.15.2
|
|
73
|
+
- name: install ngsolve
|
|
74
|
+
run: |
|
|
75
|
+
cd NGSTrefftz
|
|
76
|
+
pip install numpy scipy mkl-devel==2025.* mkl==2025.*
|
|
77
|
+
pip install ngsolve
|
|
78
|
+
- name: build ngstrefftz gtest
|
|
79
|
+
run: |
|
|
80
|
+
mkdir $GITHUB_WORKSPACE/NGSTrefftz/make
|
|
81
|
+
cd $GITHUB_WORKSPACE/NGSTrefftz/make
|
|
82
|
+
cmake .. -DNGSTREFFTZ_USE_GTEST=ON
|
|
83
|
+
make
|
|
84
|
+
- name: run gtest
|
|
85
|
+
run: $GITHUB_WORKSPACE/NGSTrefftz/make/trefftz_gtest
|
|
86
|
+
|
|
33
87
|
build_wheels:
|
|
88
|
+
if: ${{ inputs.level != 'test_only' }}
|
|
34
89
|
name: Build wheels on ${{ matrix.os }}
|
|
35
|
-
needs: [
|
|
90
|
+
needs: [test_linux, gtest_linux]
|
|
36
91
|
runs-on: ${{ matrix.os }}
|
|
37
92
|
strategy:
|
|
38
93
|
matrix:
|
|
39
|
-
os: [
|
|
94
|
+
os: [macos-13, ubuntu-latest]
|
|
95
|
+
doit:
|
|
96
|
+
- ${{ inputs.level != 'quick' }}
|
|
97
|
+
cibw_build:
|
|
98
|
+
- cp39-* cp310-* cp311-* cp312-* cp313-*
|
|
40
99
|
include:
|
|
100
|
+
- os: ubuntu-latest
|
|
101
|
+
doit: ${{ inputs.level == 'quick' }}
|
|
102
|
+
cibw_build: cp313-*
|
|
41
103
|
- os: windows-2019
|
|
42
104
|
cibw-arch: AMD64
|
|
43
105
|
cmake-generator: "Visual Studio 16 2019"
|
|
44
106
|
cmake_generator_platform: "x64"
|
|
107
|
+
doit: ${{ inputs.level != 'quick' }}
|
|
108
|
+
cibw_build: cp39-* cp310-* cp311-* cp312-* cp313-*
|
|
109
|
+
env:
|
|
110
|
+
CIBW_BUILD: ${{ matrix.cibw_build }}
|
|
45
111
|
steps:
|
|
46
112
|
- uses: actions/checkout@v4
|
|
113
|
+
if: ${{ matrix.doit }}
|
|
47
114
|
with:
|
|
48
|
-
submodules:
|
|
49
|
-
fetch-tags:
|
|
115
|
+
submodules: true
|
|
116
|
+
fetch-tags: true
|
|
50
117
|
fetch-depth: 0
|
|
51
118
|
- name: Build wheels
|
|
52
|
-
|
|
119
|
+
if: ${{ matrix.doit }}
|
|
120
|
+
uses: pypa/cibuildwheel@v2.23.2
|
|
53
121
|
env:
|
|
54
122
|
CIBW_BUILD_VERBOSITY: 1
|
|
123
|
+
- name: Setup tmate session
|
|
124
|
+
if: ${{ failure() }}
|
|
125
|
+
uses: mxschmitt/action-tmate@v3
|
|
55
126
|
- uses: actions/upload-artifact@v4
|
|
127
|
+
if: ${{ matrix.doit }}
|
|
56
128
|
with:
|
|
57
129
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
58
130
|
path: ./wheelhouse/*.whl
|
|
59
131
|
|
|
60
132
|
build_sdist:
|
|
61
133
|
name: Build source distribution
|
|
62
|
-
|
|
134
|
+
if: ${{ inputs.level != 'quick' }}
|
|
135
|
+
needs: [test_linux, gtest_linux]
|
|
63
136
|
runs-on: ubuntu-latest
|
|
137
|
+
container: quay.io/pypa/manylinux_2_28_x86_64
|
|
64
138
|
steps:
|
|
65
139
|
- uses: actions/checkout@v4
|
|
66
140
|
with:
|
|
67
|
-
submodules:
|
|
68
|
-
fetch-tags:
|
|
141
|
+
submodules: true
|
|
142
|
+
fetch-tags: true
|
|
69
143
|
fetch-depth: 0
|
|
70
144
|
- name: Build sdist
|
|
71
145
|
run: pipx run build --sdist
|
|
@@ -91,7 +165,12 @@ jobs:
|
|
|
91
165
|
with:
|
|
92
166
|
skip-existing: true
|
|
93
167
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
94
|
-
|
|
168
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
169
|
+
if: github.ref == 'refs/heads/main-dev'
|
|
170
|
+
with:
|
|
171
|
+
skip-existing: true
|
|
172
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
173
|
+
repository-url: https://test.pypi.org/legacy/
|
|
95
174
|
|
|
96
175
|
docker:
|
|
97
176
|
needs: [upload_pypi]
|
|
@@ -103,16 +182,16 @@ jobs:
|
|
|
103
182
|
uses: actions/checkout@v4
|
|
104
183
|
- name: Docker meta
|
|
105
184
|
id: meta
|
|
106
|
-
uses: docker/metadata-action@
|
|
185
|
+
uses: docker/metadata-action@v5
|
|
107
186
|
with:
|
|
108
187
|
# list of Docker images to use as base name for tags
|
|
109
188
|
images: paulstdocker/ngstrefftz
|
|
110
189
|
# generate Docker tags based on the following events/attributes
|
|
111
|
-
tags:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
190
|
+
tags: |
|
|
191
|
+
type=ref,event=branch
|
|
192
|
+
type=ref,event=pr
|
|
193
|
+
type=semver,pattern={{version}}
|
|
194
|
+
type=semver,pattern={{major}}.{{minor}}
|
|
116
195
|
- name: Login to DockerHub
|
|
117
196
|
uses: docker/login-action@v3
|
|
118
197
|
if: github.event_name == 'release' && github.event.action == 'created'
|
|
@@ -120,7 +199,7 @@ jobs:
|
|
|
120
199
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
121
200
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
122
201
|
- name: Build and push
|
|
123
|
-
uses: docker/build-push-action@
|
|
202
|
+
uses: docker/build-push-action@v6
|
|
124
203
|
with:
|
|
125
204
|
context: .
|
|
126
205
|
file: "Dockerfile"
|
|
@@ -138,8 +217,8 @@ jobs:
|
|
|
138
217
|
- uses: actions/checkout@v4
|
|
139
218
|
with:
|
|
140
219
|
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
|
|
141
|
-
submodules:
|
|
142
|
-
path:
|
|
220
|
+
submodules: true
|
|
221
|
+
path: "NGSTrefftz"
|
|
143
222
|
- name: install pkgs
|
|
144
223
|
run: sudo apt-get update && DEBIAN_FRONTEND="noninteractive" sudo apt-get -y install docker
|
|
145
224
|
- name: build docker
|
|
@@ -148,13 +227,13 @@ jobs:
|
|
|
148
227
|
run: id=$(docker create ngstpyodide) && docker cp $id:/root/output/ngstrefftz_pyodide.tar.bz2 $GITHUB_WORKSPACE/
|
|
149
228
|
- uses: actions/setup-python@v5
|
|
150
229
|
with:
|
|
151
|
-
python-version:
|
|
230
|
+
python-version: "3.11"
|
|
152
231
|
- name: Build the JupyterLite site
|
|
153
232
|
run: |
|
|
154
233
|
cd $GITHUB_WORKSPACE/NGSTrefftz/.github/workflows/pyodide && python -m pip install -r requirements.txt
|
|
155
234
|
cd $GITHUB_WORKSPACE && jupyter lite build --pyodide ngstrefftz_pyodide.tar.bz2 --contents ./NGSTrefftz/docs/notebooks/ --output-dir ngst-pyodide
|
|
156
|
-
#- name: upload
|
|
157
235
|
#uses: actions/upload-pages-artifact@v3
|
|
236
|
+
#- name: upload
|
|
158
237
|
- name: Store the sdist
|
|
159
238
|
uses: actions/upload-artifact@v4
|
|
160
239
|
with:
|
|
@@ -162,29 +241,33 @@ jobs:
|
|
|
162
241
|
path: ./ngst-pyodide
|
|
163
242
|
|
|
164
243
|
docs:
|
|
165
|
-
needs: [
|
|
244
|
+
needs: [build_wheels]
|
|
166
245
|
runs-on: ubuntu-latest
|
|
246
|
+
container: python:3.13
|
|
167
247
|
steps:
|
|
168
248
|
- uses: actions/checkout@v4
|
|
169
249
|
with:
|
|
170
250
|
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
|
|
171
|
-
submodules:
|
|
172
|
-
path:
|
|
173
|
-
- name: install pkgs
|
|
174
|
-
run: sudo apt-get update && DEBIAN_FRONTEND="noninteractive" sudo apt-get -y install libxmu-dev tk-dev tcl-dev git libglu1-mesa-dev libblas-dev liblapack-dev python3 python3-pip python3-distutils python3-tk libpython3-dev python3-testresources npm nodejs pandoc -y
|
|
175
|
-
#- name: pip pkgs
|
|
176
|
-
#run: python3 -m pip list
|
|
251
|
+
submodules: true
|
|
252
|
+
path: "NGSTrefftz"
|
|
177
253
|
- name: pip install requirements
|
|
178
|
-
run: pip install --user -r $GITHUB_WORKSPACE/NGSTrefftz/docs/requirements.txt
|
|
179
|
-
- name: set path
|
|
180
254
|
run: |
|
|
181
|
-
|
|
182
|
-
|
|
255
|
+
apt update -y && DEBIAN_FRONTEND="noninteractive" apt install -y git pandoc
|
|
256
|
+
pip install -r $GITHUB_WORKSPACE/NGSTrefftz/docs/requirements.txt
|
|
257
|
+
# cd $GITHUB_WORKSPACE/NGSTrefftz && pip install .
|
|
258
|
+
- uses: actions/download-artifact@v4
|
|
259
|
+
with:
|
|
260
|
+
pattern: cibw-wheels-ubuntu*
|
|
261
|
+
path: wheels
|
|
262
|
+
merge-multiple: true
|
|
263
|
+
- name: Display structure of downloaded files
|
|
264
|
+
run: ls -R $GITHUB_WORKSPACE/wheels
|
|
265
|
+
- name: install ngstrefftz
|
|
266
|
+
run: pip install $GITHUB_WORKSPACE/wheels/*-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
|
|
183
267
|
- name: Build and Commit
|
|
184
268
|
uses: sphinx-notes/pages@v2
|
|
185
269
|
with:
|
|
186
|
-
repository_path:
|
|
187
|
-
publish: false
|
|
270
|
+
repository_path: "NGSTrefftz"
|
|
188
271
|
#requirements_path: ./docs/requirements.txt
|
|
189
272
|
- name: Download pyodide stuff
|
|
190
273
|
if: false
|
|
@@ -192,17 +275,17 @@ jobs:
|
|
|
192
275
|
with:
|
|
193
276
|
name: ngst-pyodide
|
|
194
277
|
path: NGSTrefftz/ngst-pyodide
|
|
195
|
-
|
|
278
|
+
#- run: tree -d .
|
|
196
279
|
- name: Upload
|
|
197
280
|
uses: actions/upload-pages-artifact@v3
|
|
198
281
|
with:
|
|
199
|
-
path:
|
|
200
|
-
|
|
282
|
+
path: "NGSTrefftz/"
|
|
283
|
+
|
|
201
284
|
deploy-docs:
|
|
202
285
|
needs: docs
|
|
203
286
|
permissions:
|
|
204
|
-
pages: write
|
|
205
|
-
id-token: write
|
|
287
|
+
pages: write # to deploy to Pages
|
|
288
|
+
id-token: write # to verify the deployment originates from an appropriate source
|
|
206
289
|
environment:
|
|
207
290
|
name: github-pages
|
|
208
291
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
@@ -216,6 +299,7 @@ jobs:
|
|
|
216
299
|
|
|
217
300
|
paper:
|
|
218
301
|
runs-on: ubuntu-latest
|
|
302
|
+
if: ${{ inputs.level != 'quick' || inputs.level != 'test_only' }}
|
|
219
303
|
name: Paper Draft
|
|
220
304
|
steps:
|
|
221
305
|
- name: Checkout
|
|
@@ -10,16 +10,17 @@ if(NOT WIN32)
|
|
|
10
10
|
set(BoldWhite "${Esc}[1;37m")
|
|
11
11
|
endif()
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
set(
|
|
13
|
+
set(ngsolve_addon_commit_hash refs/heads/main)
|
|
14
|
+
file(DOWNLOAD https://raw.githubusercontent.com/NGSolve/ngsolve-addon-template/${ngsolve_addon_commit_hash}/ngsolve_addon.cmake ${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
|
|
15
|
+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR}/cmake_modules)
|
|
16
16
|
|
|
17
17
|
### ngstrefftz
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
|
|
19
|
+
set(addon_name ngstrefftz)
|
|
20
|
+
project(ngstrefftz)
|
|
20
21
|
include_directories(${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src)
|
|
21
22
|
include(${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
|
|
22
|
-
add_ngsolve_addon(
|
|
23
|
+
add_ngsolve_addon(ngstrefftz
|
|
23
24
|
${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src/tents.cpp
|
|
24
25
|
src/python_trefftz.cpp
|
|
25
26
|
src/diffopmapped.hpp
|
|
@@ -30,31 +31,53 @@ add_ngsolve_addon( _trefftz
|
|
|
30
31
|
src/specialintegrator.cpp
|
|
31
32
|
src/twavetents.cpp
|
|
32
33
|
src/embtrefftz.cpp
|
|
33
|
-
src/monomialfespace.cpp
|
|
34
|
+
src/monomialfespace.cpp
|
|
34
35
|
src/mesh1dtents.cpp
|
|
35
36
|
src/condensedg.cpp
|
|
36
37
|
src/pufe.cpp
|
|
37
38
|
src/pufespace.cpp
|
|
39
|
+
src/boxintegral.cpp
|
|
38
40
|
#src/airy.cpp #for testing, requires boost
|
|
39
41
|
)
|
|
40
|
-
target_compile_definitions(
|
|
41
|
-
target_compile_definitions(
|
|
42
|
+
target_compile_definitions(ngstrefftz PRIVATE NGSTREFFTZ_EXPORTS)
|
|
43
|
+
target_compile_definitions(ngstrefftz PRIVATE NGSTENT_EXPORTS)
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
# enable compiler warinigs, when building with g++ or clang++
|
|
46
|
+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
47
|
+
target_compile_options(ngstrefftz PRIVATE
|
|
48
|
+
-Wall
|
|
49
|
+
-Wextra
|
|
50
|
+
-Wpedantic
|
|
51
|
+
-Wno-vla # ngsolve uses VLAs anyway
|
|
52
|
+
)
|
|
53
|
+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
54
|
+
target_compile_options(ngstrefftz PRIVATE
|
|
55
|
+
-Wall
|
|
56
|
+
-Wextra
|
|
57
|
+
-pedantic
|
|
58
|
+
-Wtype-limits
|
|
59
|
+
-Wuninitialized
|
|
60
|
+
)
|
|
61
|
+
endif()
|
|
62
|
+
|
|
63
|
+
### user options
|
|
64
|
+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} CACHE PATH "build dir")
|
|
65
|
+
set(NGSTREFFTZ_USE_GTEST OFF CACHE BOOL "Try to use gtest")
|
|
44
66
|
set(NGSTREFFTZ_USE_MKL ${NGSOLVE_USE_MKL} CACHE BOOL "Try to use mkl")
|
|
45
67
|
set(NGSTREFFTZ_USE_LAPACK ${NGSOLVE_USE_LAPACK} CACHE BOOL "Try to use lapack from ngsolve")
|
|
68
|
+
|
|
69
|
+
### link LAPACK or MKL if possible
|
|
46
70
|
if (NGSTREFFTZ_USE_MKL)
|
|
47
|
-
file(DOWNLOAD
|
|
48
|
-
https://raw.githubusercontent.com/NGSolve/ngsolve/master/cmake/cmake_modules/FindMKL.cmake
|
|
49
|
-
|
|
71
|
+
file(DOWNLOAD
|
|
72
|
+
https://raw.githubusercontent.com/NGSolve/ngsolve/master/cmake/cmake_modules/FindMKL.cmake
|
|
73
|
+
${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake)
|
|
50
74
|
|
|
51
|
-
#file(COPY ${CMAKE_SOURCE_DIR}/FindMKL.cmake DESTINATION
|
|
75
|
+
#file(COPY ${CMAKE_SOURCE_DIR}/FindMKL.cmake DESTINATION
|
|
52
76
|
#"${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
|
|
53
77
|
|
|
54
78
|
#message(STATUS "MKL_ROOT=${MKL_ROOT}")
|
|
55
79
|
#message(STATUS "NGSOLVED=${NGSolve_DIR}")
|
|
56
80
|
|
|
57
|
-
|
|
58
81
|
#set(PIP_MKL_ROOT FALSE CACHE BOOL "Set to true if MKL_ROOT is set by pip")
|
|
59
82
|
#message(STATUS "PIP_MKL_ROOT=${PIP_MKL_ROOT}")
|
|
60
83
|
#if(PIP_MKL_ROOT AND LINUX)
|
|
@@ -88,18 +111,14 @@ if (NGSTREFFTZ_USE_MKL)
|
|
|
88
111
|
endif()
|
|
89
112
|
endif()
|
|
90
113
|
|
|
91
|
-
file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/findmklconf.py
|
|
92
|
-
|
|
93
|
-
[print( f.locate().parent.resolve().absolute().as_posix()) \
|
|
94
|
-
if f.match('MKLConfig.cmake') else 0 for f in importlib.metadata.files('mkl-devel')]")
|
|
95
|
-
execute_process(COMMAND ${Python3_EXECUTABLE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/findmklconf.py
|
|
96
|
-
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE MKL_CONF_FROM_PY)
|
|
114
|
+
file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/findmklconf.py "from contextlib import suppress;import importlib.metadata; [print( f.locate().parent.resolve().absolute().as_posix()) if f.match('MKLConfig.cmake') else 0 for f in importlib.metadata.files('mkl-devel')]")
|
|
115
|
+
execute_process(COMMAND ${Python3_EXECUTABLE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/findmklconf.py ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE MKL_CONF_FROM_PY)
|
|
97
116
|
if(MKL_CONF_FROM_PY)
|
|
98
117
|
message(STATUS "MKL_CONF_FROM_PY=${MKL_CONF_FROM_PY}")
|
|
99
118
|
message(STATUS "pylibdir=${python3_library_dir}")
|
|
100
|
-
set(MKL_ROOT
|
|
101
|
-
set(MKL_LIBRARY
|
|
102
|
-
set(MKL_INCLUDE_DIR
|
|
119
|
+
set(MKL_ROOT ${MKL_CONF_FROM_PY}/../../.. CACHE PATH "MKL root directory" )
|
|
120
|
+
set(MKL_LIBRARY ${MKL_ROOT}/lib/libmkl_rt.so.2 CACHE PATH "MKL library" )
|
|
121
|
+
set(MKL_INCLUDE_DIR ${MKL_ROOT}/include CACHE PATH "MKL include directory" )
|
|
103
122
|
endif()
|
|
104
123
|
#set(MKL_VERSION_H "${MKL_ROOT}/include/mkl_version.h")
|
|
105
124
|
|
|
@@ -129,21 +148,35 @@ if(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
|
|
|
129
148
|
find_package(LAPACK)
|
|
130
149
|
endif(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
|
|
131
150
|
if(LAPACK_LIBRARIES)
|
|
132
|
-
#target_link_libraries(
|
|
151
|
+
#target_link_libraries(ngstrefftz PRIVATE $<BUILD_INTERFACE:ngs_lapack>)
|
|
133
152
|
message(STATUS "Linking with LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
|
|
134
|
-
target_link_libraries(
|
|
135
|
-
target_compile_definitions(
|
|
153
|
+
target_link_libraries(ngstrefftz PRIVATE ${LAPACK_LIBRARIES})
|
|
154
|
+
target_compile_definitions(ngstrefftz PRIVATE NGSTREFFTZ_USE_LAPACK)
|
|
136
155
|
else(LAPACK_LIBRARIES)
|
|
137
156
|
message("${Red}LAPACK not found, restricted usage${ColourReset}")
|
|
138
157
|
endif(LAPACK_LIBRARIES)
|
|
139
158
|
|
|
159
|
+
### doc
|
|
160
|
+
option(NGSTREFFTZ_BUILD_DOC "Build documentation" OFF)
|
|
161
|
+
if (NGSTREFFTZ_BUILD_DOC)
|
|
162
|
+
find_package(Doxygen REQUIRED)
|
|
163
|
+
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in)
|
|
164
|
+
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
|
165
|
+
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
|
166
|
+
add_custom_target( doxygen
|
|
167
|
+
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
|
168
|
+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
169
|
+
COMMENT "Generating API documentation with Doxygen"
|
|
170
|
+
VERBATIM )
|
|
171
|
+
endif (NGSTREFFTZ_BUILD_DOC)
|
|
172
|
+
|
|
140
173
|
### install
|
|
141
|
-
set_target_properties(
|
|
174
|
+
set_target_properties(ngstrefftz PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz)
|
|
142
175
|
file(COPY ${CMAKE_SOURCE_DIR}/src/__init__.py DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz)
|
|
143
176
|
set(install_dir ${ADDON_INSTALL_DIR_PYTHON}/ngstrefftz)
|
|
144
|
-
install(TARGETS
|
|
177
|
+
install(TARGETS ngstrefftz DESTINATION ${install_dir})
|
|
145
178
|
install(FILES src/__init__.py DESTINATION ${install_dir})
|
|
146
|
-
|
|
179
|
+
ngsolve_generate_stub_files(${addon_name})
|
|
147
180
|
|
|
148
181
|
message("${BoldCyan}
|
|
149
182
|
------------------------------------------------------------------------
|
|
@@ -152,29 +185,65 @@ message("${BoldCyan}
|
|
|
152
185
|
Flags: ${flags}
|
|
153
186
|
|
|
154
187
|
Enabled functionality:
|
|
155
|
-
LAPACK: ............ ${NGSTREFFTZ_USE_LAPACK}
|
|
188
|
+
LAPACK: ............ ${NGSTREFFTZ_USE_LAPACK}
|
|
156
189
|
MKL: ............... ${NGSTREFFTZ_USE_MKL}
|
|
190
|
+
Doxygen: ........... ${NGSTREFFTZ_BUILD_DOC}
|
|
191
|
+
GTest: ............. ${NGSTREFFTZ_USE_GTEST}
|
|
157
192
|
|
|
158
193
|
With 'make install' the package will be installed to: ${CMAKE_INSTALL_PREFIX}
|
|
159
|
-
Make sure to add it to the python path:
|
|
194
|
+
Make sure to add it to the python path:
|
|
160
195
|
--> export PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${python3_library_dir}:$PYTHONPATH
|
|
161
196
|
------------------------------------------------------------------------
|
|
162
197
|
\n${ColourReset}")
|
|
163
198
|
|
|
164
|
-
### tests
|
|
165
|
-
|
|
166
|
-
|
|
199
|
+
### tests
|
|
200
|
+
enable_testing()
|
|
201
|
+
# set up python integration tests
|
|
202
|
+
file(COPY
|
|
167
203
|
${CMAKE_SOURCE_DIR}/test/dg.py
|
|
168
204
|
${CMAKE_SOURCE_DIR}/test/embt.py
|
|
169
205
|
${CMAKE_SOURCE_DIR}/test/trefftz.py
|
|
170
206
|
${CMAKE_SOURCE_DIR}/test/tents.py
|
|
207
|
+
${CMAKE_SOURCE_DIR}/test/conforming_trefftz.py
|
|
208
|
+
${CMAKE_SOURCE_DIR}/test/boxint.py
|
|
171
209
|
DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing)
|
|
172
210
|
add_test(NAME embtrefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/embt.py)
|
|
211
|
+
add_test(NAME conforming_trefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/conforming_trefftz.py)
|
|
173
212
|
add_test(NAME trefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/trefftz.py)
|
|
174
213
|
add_test(NAME tents COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/tents.py)
|
|
214
|
+
add_test(NAME box COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/boxint.py)
|
|
175
215
|
#WORKING_DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR }
|
|
176
216
|
set_tests_properties(embtrefftz trefftz tents
|
|
177
|
-
PROPERTIES ENVIRONMENT
|
|
217
|
+
PROPERTIES ENVIRONMENT PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:${NGSOLVE_INSTALL_DIR}/${NGSOLVE_INSTALL_DIR_PYTHON}:$ENV{PYTHONPATH})
|
|
218
|
+
|
|
219
|
+
if(NGSTREFFTZ_USE_GTEST)
|
|
220
|
+
#target_compile_options(_trefftz PRIVATE -Wall)# -Wextra -Wpedantic)
|
|
221
|
+
find_package(GTest REQUIRED)
|
|
222
|
+
include(GoogleTest)
|
|
223
|
+
add_executable( trefftz_gtest
|
|
224
|
+
${CMAKE_SOURCE_DIR}/test/embtrefftz_gtest.cpp
|
|
225
|
+
)
|
|
226
|
+
target_include_directories( trefftz_gtest BEFORE PRIVATE
|
|
227
|
+
$<TARGET_PROPERTY:ngsolve,INTERFACE_INCLUDE_DIRECTORIES>
|
|
228
|
+
${CMAKE_SOURCE_DIR}/src
|
|
229
|
+
)
|
|
230
|
+
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
|
231
|
+
find_package(Python3 REQUIRED COMPONENTS Development.Embed)
|
|
232
|
+
endif()
|
|
233
|
+
target_link_libraries( trefftz_gtest PUBLIC
|
|
234
|
+
GTest::gtest
|
|
235
|
+
GTest::gtest_main
|
|
236
|
+
Python3::Python
|
|
237
|
+
${LAPACK_LIBRARIES}
|
|
238
|
+
ngsolve
|
|
239
|
+
ngstrefftz
|
|
240
|
+
GTest::gtest_main
|
|
241
|
+
)
|
|
242
|
+
target_compile_definitions(trefftz_gtest PRIVATE NGSTREFFTZ_USE_LAPACK)
|
|
243
|
+
set_target_properties(trefftz_gtest PROPERTIES PREFIX "" CXX_STANDARD 17)
|
|
244
|
+
set(GTEST_DISABLE_AUTO_DISCOVER 1)
|
|
245
|
+
gtest_discover_tests(trefftz_gtest)
|
|
246
|
+
endif(NGSTREFFTZ_USE_GTEST)
|
|
178
247
|
|
|
179
248
|
# make uninstall
|
|
180
249
|
add_custom_target("uninstall" COMMENT "Uninstall installed files")
|
|
@@ -7,7 +7,7 @@ WORKDIR /home/app
|
|
|
7
7
|
#RUN cd /home/app/ngstrefftz/docs && pip install -r requirements.txt
|
|
8
8
|
#RUN cd /home/app/ngstrefftz/docs && sphinx-build -M html . _build -vvv
|
|
9
9
|
|
|
10
|
-
RUN pip install ngstrefftz
|
|
10
|
+
RUN pip install ngstrefftz --pre
|
|
11
11
|
ENV PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.10/site-packages/
|
|
12
12
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
|
|
13
13
|
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: ngstrefftz
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2406.dev89
|
|
4
4
|
Summary: NGSTrefftz is an add-on to NGSolve for Trefftz methods.
|
|
5
5
|
Author-Email: Paul Stocker <paul.stocker@univie.ac.at>
|
|
6
6
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
|
|
7
7
|
Project-URL: Documentation, https://paulst.github.io/NGSTrefftz
|
|
8
8
|
Project-URL: Repository, https://github.com/PaulSt/ngstrefftz
|
|
9
9
|
Requires-Python: >=3.8
|
|
10
|
-
Requires-Dist:
|
|
11
|
-
Requires-Dist: ngsolve>=6.2.2404.post22.dev0
|
|
10
|
+
Requires-Dist: ngsolve==6.2.2501
|
|
12
11
|
Description-Content-Type: text/markdown
|
|
13
12
|
|
|
14
13
|
# NGSTrefftz
|
|
@@ -48,7 +47,7 @@ pip install ngstrefftz
|
|
|
48
47
|
```bash
|
|
49
48
|
git clone --recursive https://github.com/PaulSt/NGSTrefftz
|
|
50
49
|
mkdir ./NGSTrefftz/make && cd ./NGSTrefftz/make
|
|
51
|
-
cmake ../
|
|
50
|
+
cmake ../ && make install
|
|
52
51
|
```
|
|
53
52
|
|
|
54
53
|
### Dependencies
|
|
@@ -63,6 +62,10 @@ pip install ngsolve --pre
|
|
|
63
62
|
* [ngsolve](https://www.ngsolve.org) >= 6.2 (to access the newest features the nightly version of NGSolve works best)
|
|
64
63
|
|
|
65
64
|
## News
|
|
65
|
+
⚠️ Apr, 2025: `TrefftzEmbedding` has a new interface, please check the documentation for details.
|
|
66
|
+
|
|
67
|
+
🚀 Jul, 2024: Conforming Trefftz embedding implementation by [@johann-cm](https://github.com/johann-cm)
|
|
68
|
+
|
|
66
69
|
⚠️ Oct, 2022: With v0.2.0 the git history has undergone a major cleanup, please make sure to clone the repo anew.
|
|
67
70
|
|
|
68
71
|
🚀 Oct, 2022: New and improved implementation of the embedded Trefftz method via `EmbeddedTrefftzFES`!
|
|
@@ -77,7 +80,16 @@ pip install ngsolve --pre
|
|
|
77
80
|
|
|
78
81
|
🚀 Nov, 2021: NGSTrefftz now comes in a docker and with binder notebooks!
|
|
79
82
|
|
|
80
|
-
##
|
|
83
|
+
## Publications using the code
|
|
84
|
+
* *A unified framework for Trefftz-like discretization methods*
|
|
85
|
+
Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker, Igor Voulis
|
|
86
|
+
[](https://arxiv.org/abs/2412.00806)
|
|
87
|
+
* *Inf-sup stable space-time Local Discontinuous Galerkin method for the heat equation*
|
|
88
|
+
Sergio Gómez, Chiara Perinati, Paul Stocker
|
|
89
|
+
[](https://arxiv.org/abs/2411.14819)
|
|
90
|
+
* *Polynomial quasi-Trefftz DG for PDEs with smooth coefficients: elliptic problems*
|
|
91
|
+
Lise-Marie Imbert-Gérard, Andrea Moiola, Chiara Perinati, Paul Stocker
|
|
92
|
+
[](https://arxiv.org/abs/2408.00392)
|
|
81
93
|
* *Trefftz Discontinuous Galerkin discretization for the Stokes problem*
|
|
82
94
|
Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker
|
|
83
95
|
[](https://arxiv.org/abs/2306.14600)
|
|
@@ -93,6 +105,11 @@ Lise-Marie Imbert-Gérard, Andrea Moiola, Paul Stocker
|
|
|
93
105
|
* *Tent pitching and Trefftz-DG method for the acoustic wave equation*
|
|
94
106
|
Ilaria Perugia, Joachim Schöberl, Paul Stocker, Christoph Wintersteiger
|
|
95
107
|
[](https://arxiv.org/abs/1907.02367)
|
|
108
|
+
* *Space-time Trefftz DG methods for parabolic PDEs*
|
|
109
|
+
Constanze Heil, [Master's thesis](https://doi.org/10.25625/ZSA8UU/2L4C1E)
|
|
110
|
+
* *Embedded Trefftz Trace DG Methods for PDEs on unfitted Surfaces*
|
|
111
|
+
Erik Schlesinger, [Master's thesis](https://doi.org/10.25625/QTOPWD/93ZYRQ)
|
|
112
|
+
|
|
96
113
|
|
|
97
114
|
If you are using `ngstrefftz` in your academic work, please consider citing
|
|
98
115
|
```
|