ngstrefftz 0.3.2403.dev10__tar.gz → 0.3.2403.dev15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/build.yml +53 -104
  2. {ngstrefftz-0.3.2403.dev10/src → ngstrefftz-0.3.2403.dev15}/CMakeLists.txt +65 -110
  3. ngstrefftz-0.3.2403.dev15/PKG-INFO +102 -0
  4. ngstrefftz-0.3.2403.dev15/_version.py +16 -0
  5. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/intro.rst +1 -1
  6. ngstrefftz-0.3.2403.dev15/docs/requirements.txt +25 -0
  7. ngstrefftz-0.3.2403.dev15/external_dependencies/ngstents/.git +1 -0
  8. ngstrefftz-0.3.2403.dev15/pyproject.toml +57 -0
  9. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/trefftzfespace.cpp +9 -2
  10. ngstrefftz-0.3.2403.dev10/.github/workflows/build_linux_test.sh +0 -19
  11. ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip.ps1 +0 -58
  12. ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip.sh +0 -52
  13. ngstrefftz-0.3.2403.dev10/.github/workflows/build_pip_mac.sh +0 -35
  14. ngstrefftz-0.3.2403.dev10/PKG-INFO +0 -14
  15. ngstrefftz-0.3.2403.dev10/docs/requirements.txt +0 -25
  16. ngstrefftz-0.3.2403.dev10/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -1
  17. ngstrefftz-0.3.2403.dev10/setup.cfg +0 -4
  18. ngstrefftz-0.3.2403.dev10/setup.py +0 -60
  19. ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/PKG-INFO +0 -14
  20. ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/SOURCES.txt +0 -149
  21. ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/dependency_links.txt +0 -1
  22. ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/requires.txt +0 -3
  23. ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info/top_level.txt +0 -1
  24. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.clang-format +0 -0
  25. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/fix_auditwheel_policy.py +0 -0
  26. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/pyodide/Dockerfile +0 -0
  27. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/pyodide/build_in_docker.sh +0 -0
  28. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/pyodide/merge.py +0 -0
  29. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.github/workflows/pyodide/requirements.txt +0 -0
  30. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/.gitmodules +0 -0
  31. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/CONTRIBUTING.md +0 -0
  32. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/Dockerfile +0 -0
  33. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/LICENSE +0 -0
  34. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/README.md +0 -0
  35. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/_static/breadcrumbs.html +0 -0
  36. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/_static/css/mytheme.css +0 -0
  37. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/conf.py +0 -0
  38. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/contrib.rst +0 -0
  39. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/docu.rst +0 -0
  40. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/index.rst +0 -0
  41. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
  42. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz-helm.ipynb +0 -0
  43. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
  44. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
  45. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz-wave.ipynb +0 -0
  46. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/embTrefftz.ipynb +0 -0
  47. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/helmholtz.ipynb +0 -0
  48. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/index.ipynb +0 -0
  49. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/laplace.ipynb +0 -0
  50. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/qtelliptic.ipynb +0 -0
  51. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/qtwave.ipynb +0 -0
  52. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/tunfitted.ipynb +0 -0
  53. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/twave.ipynb +0 -0
  54. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/notebooks/twavetents.ipynb +0 -0
  55. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/paper/codemeta.json +0 -0
  56. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/paper/paper.bib +0 -0
  57. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/paper/paper.md +0 -0
  58. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/docs/readme.rst +0 -0
  59. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
  60. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -0
  61. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -0
  62. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -0
  63. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -0
  64. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15/external_dependencies/ngstents}/.github/workflows/ngsolve_version.txt +0 -0
  65. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/README.md +0 -0
  66. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
  67. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
  68. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
  69. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
  70. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
  71. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
  72. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
  73. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
  74. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
  75. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
  76. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
  77. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
  78. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
  79. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
  80. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
  81. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
  82. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
  83. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
  84. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
  85. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
  86. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
  87. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
  88. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
  89. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
  90. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
  91. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/conf.py +0 -0
  92. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
  93. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
  94. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/figs/map.png +0 -0
  95. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
  96. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/index.rst +0 -0
  97. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/readme.rst +0 -0
  98. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/docs/requirements.txt +0 -0
  99. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/py/__init__.py +0 -0
  100. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
  101. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
  102. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
  103. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
  104. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/setup.py +0 -0
  105. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
  106. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/advection.cpp +0 -0
  107. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/burgers.cpp +0 -0
  108. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
  109. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
  110. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/euler.cpp +0 -0
  111. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
  112. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
  113. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
  114. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
  115. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
  116. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
  117. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/tents.cpp +0 -0
  118. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/tents.hpp +0 -0
  119. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
  120. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
  121. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
  122. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
  123. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/src/wave.cpp +0 -0
  124. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
  125. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
  126. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
  127. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
  128. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
  129. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/__init__.py +0 -0
  130. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/airy.cpp +0 -0
  131. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/condensedg.cpp +0 -0
  132. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/condensedg.hpp +0 -0
  133. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/diffopmapped.hpp +0 -0
  134. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/embtrefftz.cpp +0 -0
  135. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/embtrefftz.hpp +0 -0
  136. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/mesh1dtents.cpp +0 -0
  137. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/mesh1dtents.hpp +0 -0
  138. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/monomialfespace.cpp +0 -0
  139. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/monomialfespace.hpp +0 -0
  140. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/ngsttd.hpp +0 -0
  141. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/planewavefe.cpp +0 -0
  142. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/planewavefe.hpp +0 -0
  143. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/python_trefftz.cpp +0 -0
  144. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/scalarmappedfe.cpp +0 -0
  145. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/scalarmappedfe.hpp +0 -0
  146. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/specialcoefficientfunction.cpp +0 -0
  147. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/specialcoefficientfunction.hpp +0 -0
  148. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/specialintegrator.cpp +0 -0
  149. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/specialintegrator.hpp +0 -0
  150. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/trefftzfespace.hpp +0 -0
  151. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/twavetents.cpp +0 -0
  152. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/src/twavetents.hpp +0 -0
  153. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/test/dg.py +0 -0
  154. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/test/embt.py +0 -0
  155. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/test/tents.py +0 -0
  156. {ngstrefftz-0.3.2403.dev10 → ngstrefftz-0.3.2403.dev15}/test/trefftz.py +0 -0
@@ -13,135 +13,86 @@ env:
13
13
 
14
14
  jobs:
15
15
 
16
- pypi-linux:
17
- name: Build wheels for linux
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
- - name: pull manylinux
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
- name: python-package-distributions-mac-${{ matrix.py }}
67
- path: NGSTrefftz/wheelhouse
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
- pypi-win:
70
- name: Build wheels for Windows
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
- py: ['3.8', '3.9', '3.10', '3.11', '3.12']
74
- runs-on: windows-2019
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
- - name: Checkout
77
- uses: actions/checkout@v4
46
+ - uses: actions/checkout@v4
78
47
  with:
79
- submodules: recursive
48
+ submodules: 'True'
49
+ fetch-tags: 'true'
80
50
  fetch-depth: 0
81
- path: 'NGSTrefftz'
82
- - name: Get Python ${{ matrix.py }}
83
- id: python
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
- python-version: ${{ matrix.py }}
87
- - name: Run build script
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
- pypi-src:
96
- name: pypi src
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
- path: 'NGSTrefftz'
104
- - name: install pkgs
105
- run: |
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: python-package-distributions-src
120
- path: NGSTrefftz/wheelhouse
72
+ name: cibw-sdist
73
+ path: dist/*.tar.gz
121
74
 
122
- publish-pypi:
123
- name: Publish to PyPI
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
- - name: Download all the dists
129
- uses: actions/download-artifact@v4
130
- with:
131
- pattern: python-package-distributions-*
132
- merge-multiple: true
133
- path: NGSTrefftz/wheelhouse/
134
- - name: Publish binary distributions to PyPI
135
- if: github.ref == 'refs/heads/main' || github.event_name == 'release'
136
- uses: pypa/gh-action-pypi-publish@release/v1
137
- with:
138
- skip-existing: true
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: [publish-pypi]
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: [publish-pypi]
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)
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
- ### Requirements
14
- file(TO_CMAKE_PATH "${PROJECT_BINARY_DIR}/CMakeLists.txt" LOC_PATH)
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}/../external_dependencies/ngstents/src)
76
- add_library( _pytents SHARED
77
- ${CMAKE_SOURCE_DIR}/../external_dependencies/ngstents/src/python_tents.cpp
78
- ${CMAKE_SOURCE_DIR}/../external_dependencies/ngstents/src/tents.cpp
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
- install(TARGETS _pytents DESTINATION ${CMAKE_INSTALL_PREFIX}/${PY_INSTALL_DIR}/ngstents)
91
- install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstents/__init__.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${PY_INSTALL_DIR}/ngstents)
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
- add_library( _trefftz SHARED
96
- python_trefftz.cpp
97
- diffopmapped.hpp
98
- scalarmappedfe.cpp
99
- planewavefe.cpp
100
- trefftzfespace.cpp
101
- specialcoefficientfunction.cpp
102
- specialintegrator.cpp
103
- twavetents.cpp
104
- embtrefftz.cpp
105
- monomialfespace.cpp
106
- mesh1dtents.cpp
107
- condensedg.cpp
108
- #airy.cpp #for testing, requires boost
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
- install(TARGETS _trefftz DESTINATION ${CMAKE_INSTALL_PREFIX}/${PY_INSTALL_DIR}/ngstrefftz)
198
- install(FILES __init__.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${PY_INSTALL_DIR}/ngstrefftz) #COMPONENT ngstrefftz
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}/../test/dg.py
204
- ${CMAKE_SOURCE_DIR}/../test/embt.py
205
- ${CMAKE_SOURCE_DIR}/../test/trefftz.py
206
- ${CMAKE_SOURCE_DIR}/../test/tents.py
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.dev15
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
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)
19
+ [![Docker Image Version (latest semver)](https://img.shields.io/docker/v/paulstdocker/ngstrefftz?label=docker&logo=docker&sort=semver)](https://hub.docker.com/r/paulstdocker/ngstrefftz)
20
+ [![PyPI](https://img.shields.io/pypi/v/ngstrefftz?color=blue&logo=pypi)](https://pypi.org/project/ngstrefftz/)
21
+ [![GitHub Workflow Status](https://github.com/PaulSt/NGSTrefftz/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/PaulSt/NGSTrefftz/actions/workflows/build.yml)
22
+ [![status](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409/status.svg)](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409)
23
+ [![docs](https://img.shields.io/badge/docs-NGSTrefftz-blue?logo=readthedocs)](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
+ [![Binder](https://mybinder.org/badge_logo.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-2306.14600-b31b1b.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-2212.12236-b31b1b.svg)](https://arxiv.org/abs/2212.12236)
88
+ * *Embedded Trefftz discontinuous Galerkin methods*
89
+ Christoph Lehrenfeld, Paul Stocker
90
+ [![arXiv](https://img.shields.io/badge/arXiv-2201.07041-b31b1b.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-2011.04617-b31b1b.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-1907.02367-b31b1b.svg)](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.dev15'
16
+ __version_tuple__ = version_tuple = (0, 3, 2403, 'dev15')
@@ -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.geom2d import unit_square
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"]