ngstrefftz 0.3.2402.dev35__tar.gz → 0.3.2402.dev152__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 (166) hide show
  1. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/build.yml +56 -105
  2. ngstrefftz-0.3.2402.dev152/.gitignore +15 -0
  3. ngstrefftz-0.3.2402.dev152/CMakeLists.txt +204 -0
  4. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/Dockerfile +5 -0
  5. ngstrefftz-0.3.2402.dev152/PKG-INFO +101 -0
  6. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/README.md +1 -1
  7. ngstrefftz-0.3.2402.dev152/_version.py +16 -0
  8. ngstrefftz-0.3.2402.dev152/docs/Doxyfile.in +4 -0
  9. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/index.rst +3 -3
  10. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/intro.rst +1 -1
  11. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz-helm.ipynb +82 -56
  12. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz-wave.ipynb +2 -2
  13. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/helmholtz.ipynb +2 -2
  14. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/index.ipynb +14 -10
  15. ngstrefftz-0.3.2402.dev152/docs/notebooks/qtelliptic.ipynb +450 -0
  16. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/qtwave.ipynb +3 -3
  17. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/tunfitted.ipynb +3 -0
  18. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/twave.ipynb +1 -1
  19. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/twavetents.ipynb +1 -2
  20. ngstrefftz-0.3.2402.dev152/docs/requirements.txt +26 -0
  21. ngstrefftz-0.3.2402.dev152/external_dependencies/ngstents/.git +1 -0
  22. ngstrefftz-0.3.2402.dev152/pyproject.toml +54 -0
  23. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/__init__.py +0 -1
  24. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/condensedg.cpp +4 -1
  25. ngstrefftz-0.3.2402.dev152/src/embtrefftz.cpp +1376 -0
  26. ngstrefftz-0.3.2402.dev152/src/embtrefftz.hpp +114 -0
  27. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/monomialfespace.cpp +26 -8
  28. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/monomialfespace.hpp +9 -30
  29. ngstrefftz-0.3.2402.dev152/src/pufe.cpp +345 -0
  30. ngstrefftz-0.3.2402.dev152/src/pufe.hpp +176 -0
  31. ngstrefftz-0.3.2402.dev152/src/pufespace.cpp +165 -0
  32. ngstrefftz-0.3.2402.dev152/src/pufespace.hpp +95 -0
  33. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/python_trefftz.cpp +5 -1
  34. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/scalarmappedfe.cpp +1 -32
  35. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/scalarmappedfe.hpp +31 -0
  36. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/trefftzfespace.cpp +159 -32
  37. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/trefftzfespace.hpp +34 -5
  38. ngstrefftz-0.3.2402.dev152/test/constrained_trefftz.py +351 -0
  39. ngstrefftz-0.3.2402.dev35/.github/workflows/build_linux_test.sh +0 -19
  40. ngstrefftz-0.3.2402.dev35/.github/workflows/build_pip.ps1 +0 -58
  41. ngstrefftz-0.3.2402.dev35/.github/workflows/build_pip.sh +0 -52
  42. ngstrefftz-0.3.2402.dev35/.github/workflows/build_pip_mac.sh +0 -35
  43. ngstrefftz-0.3.2402.dev35/PKG-INFO +0 -14
  44. ngstrefftz-0.3.2402.dev35/docs/requirements.txt +0 -25
  45. ngstrefftz-0.3.2402.dev35/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -1
  46. ngstrefftz-0.3.2402.dev35/setup.cfg +0 -4
  47. ngstrefftz-0.3.2402.dev35/setup.py +0 -60
  48. ngstrefftz-0.3.2402.dev35/src/CMakeLists.txt +0 -223
  49. ngstrefftz-0.3.2402.dev35/src/embtrefftz.cpp +0 -730
  50. ngstrefftz-0.3.2402.dev35/src/embtrefftz.hpp +0 -67
  51. ngstrefftz-0.3.2402.dev35/src/ngstrefftz.egg-info/PKG-INFO +0 -14
  52. ngstrefftz-0.3.2402.dev35/src/ngstrefftz.egg-info/SOURCES.txt +0 -148
  53. ngstrefftz-0.3.2402.dev35/src/ngstrefftz.egg-info/dependency_links.txt +0 -1
  54. ngstrefftz-0.3.2402.dev35/src/ngstrefftz.egg-info/requires.txt +0 -3
  55. ngstrefftz-0.3.2402.dev35/src/ngstrefftz.egg-info/top_level.txt +0 -1
  56. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.clang-format +0 -0
  57. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/fix_auditwheel_policy.py +0 -0
  58. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/pyodide/Dockerfile +0 -0
  59. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/pyodide/build_in_docker.sh +0 -0
  60. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/pyodide/merge.py +0 -0
  61. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.github/workflows/pyodide/requirements.txt +0 -0
  62. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/.gitmodules +0 -0
  63. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/CONTRIBUTING.md +0 -0
  64. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/LICENSE +0 -0
  65. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/_static/breadcrumbs.html +0 -0
  66. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/_static/css/mytheme.css +0 -0
  67. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/conf.py +0 -0
  68. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/contrib.rst +0 -0
  69. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/docu.rst +0 -0
  70. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
  71. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
  72. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
  73. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/embTrefftz.ipynb +0 -0
  74. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/notebooks/laplace.ipynb +0 -0
  75. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/paper/codemeta.json +0 -0
  76. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/paper/paper.bib +0 -0
  77. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/paper/paper.md +0 -0
  78. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/docs/readme.rst +0 -0
  79. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
  80. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -0
  81. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -0
  82. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -0
  83. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -0
  84. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152/external_dependencies/ngstents}/.github/workflows/ngsolve_version.txt +0 -0
  85. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/README.md +0 -0
  86. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
  87. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
  88. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
  89. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
  90. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
  91. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
  92. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
  93. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
  94. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
  95. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
  96. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
  97. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
  98. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
  99. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
  100. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
  101. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
  102. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
  103. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
  104. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
  105. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
  106. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
  107. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
  108. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
  109. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
  110. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
  111. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/conf.py +0 -0
  112. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
  113. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
  114. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/figs/map.png +0 -0
  115. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
  116. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/index.rst +0 -0
  117. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/readme.rst +0 -0
  118. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/docs/requirements.txt +0 -0
  119. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/py/__init__.py +0 -0
  120. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
  121. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
  122. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
  123. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
  124. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/setup.py +0 -0
  125. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
  126. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/advection.cpp +0 -0
  127. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/burgers.cpp +0 -0
  128. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
  129. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
  130. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/euler.cpp +0 -0
  131. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
  132. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
  133. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
  134. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
  135. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
  136. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
  137. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/tents.cpp +0 -0
  138. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/tents.hpp +0 -0
  139. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
  140. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
  141. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
  142. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
  143. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/src/wave.cpp +0 -0
  144. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
  145. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
  146. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
  147. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
  148. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
  149. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/airy.cpp +0 -0
  150. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/condensedg.hpp +0 -0
  151. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/diffopmapped.hpp +0 -0
  152. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/mesh1dtents.cpp +0 -0
  153. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/mesh1dtents.hpp +0 -0
  154. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/ngsttd.hpp +0 -0
  155. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/planewavefe.cpp +0 -0
  156. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/planewavefe.hpp +0 -0
  157. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/specialcoefficientfunction.cpp +0 -0
  158. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/specialcoefficientfunction.hpp +0 -0
  159. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/specialintegrator.cpp +0 -0
  160. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/specialintegrator.hpp +0 -0
  161. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/twavetents.cpp +0 -0
  162. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/src/twavetents.hpp +0 -0
  163. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/test/dg.py +0 -0
  164. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/test/embt.py +0 -0
  165. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/test/tents.py +0 -0
  166. {ngstrefftz-0.3.2402.dev35 → ngstrefftz-0.3.2402.dev152}/test/trefftz.py +0 -0
@@ -13,135 +13,88 @@ 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 numpy scipy mkl-devel==2024.* mkl==2024.* && pip install . -v
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
85
- 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
51
+ - name: Build wheels
52
+ uses: pypa/cibuildwheel@v2.19.0
53
+ env:
54
+ CIBW_BUILD_VERBOSITY: 1
55
+ - uses: actions/upload-artifact@v4
56
+ with:
57
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
58
+ path: ./wheelhouse/*.whl
94
59
 
95
- pypi-src:
96
- name: pypi src
60
+ build_sdist:
61
+ name: Build source distribution
62
+ needs: [ test_linux ]
97
63
  runs-on: ubuntu-latest
98
64
  steps:
99
65
  - uses: actions/checkout@v4
100
66
  with:
101
67
  submodules: 'True'
68
+ fetch-tags: 'true'
102
69
  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
70
+ - name: Build sdist
71
+ run: pipx run build --sdist
72
+ - uses: actions/upload-artifact@v4
118
73
  with:
119
- name: python-package-distributions-src
120
- path: NGSTrefftz/wheelhouse
74
+ name: cibw-sdist
75
+ path: dist/*.tar.gz
121
76
 
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]
77
+ upload_pypi:
78
+ needs: [build_wheels, build_sdist]
126
79
  runs-on: ubuntu-latest
80
+ environment: pypi
81
+ permissions:
82
+ id-token: write
127
83
  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/
84
+ - uses: actions/download-artifact@v4
85
+ with:
86
+ pattern: cibw-*
87
+ path: dist
88
+ merge-multiple: true
89
+ - uses: pypa/gh-action-pypi-publish@release/v1
90
+ if: github.ref == 'refs/heads/main' || github.event_name == 'release'
91
+ with:
92
+ skip-existing: true
93
+ password: ${{ secrets.PYPI_API_TOKEN }}
94
+ # To test: repository-url: https://test.pypi.org/legacy/
142
95
 
143
96
  docker:
144
- needs: [publish-pypi]
97
+ needs: [upload_pypi]
145
98
  runs-on: ubuntu-latest
146
99
  steps:
147
100
  - name: clear cache
@@ -208,10 +161,8 @@ jobs:
208
161
  name: ngst-pyodide
209
162
  path: ./ngst-pyodide
210
163
 
211
-
212
-
213
164
  docs:
214
- needs: [publish-pypi]
165
+ needs: [upload_pypi]
215
166
  runs-on: ubuntu-latest
216
167
  steps:
217
168
  - uses: actions/checkout@v4
@@ -0,0 +1,15 @@
1
+ # build folder
2
+ make/
3
+
4
+ # python
5
+ __pycache__/
6
+ jupyter_execute/
7
+
8
+ # Clangd support file
9
+ compile_commands.json
10
+
11
+ # Cache files
12
+ .cache/
13
+
14
+ # any debug output
15
+ *.out
@@ -0,0 +1,204 @@
1
+ cmake_minimum_required(VERSION 3.16)
2
+ ########################################################
3
+ project(ngstrefftz)
4
+ ########################################################
5
+ if(NOT WIN32)
6
+ string(ASCII 27 Esc)
7
+ set(ColourReset "${Esc}[m")
8
+ set(Red "${Esc}[31m")
9
+ set(BoldCyan "${Esc}[1;36m")
10
+ set(BoldWhite "${Esc}[1;37m")
11
+ endif()
12
+
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")
15
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} CACHE PATH "build dir")
16
+
17
+ ### ngstrefftz
18
+ set(addon_name _trefftz)
19
+ project(_trefftz)
20
+ include_directories(${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src)
21
+ include(${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake)
22
+ add_ngsolve_addon( _trefftz
23
+ ${CMAKE_SOURCE_DIR}/external_dependencies/ngstents/src/tents.cpp
24
+ src/python_trefftz.cpp
25
+ src/diffopmapped.hpp
26
+ src/scalarmappedfe.cpp
27
+ src/planewavefe.cpp
28
+ src/trefftzfespace.cpp
29
+ src/specialcoefficientfunction.cpp
30
+ src/specialintegrator.cpp
31
+ src/twavetents.cpp
32
+ src/embtrefftz.cpp
33
+ src/monomialfespace.cpp
34
+ src/mesh1dtents.cpp
35
+ src/condensedg.cpp
36
+ src/pufe.cpp
37
+ src/pufespace.cpp
38
+ #src/airy.cpp #for testing, requires boost
39
+ )
40
+ target_compile_definitions(_trefftz PRIVATE NGSTREFFTZ_EXPORTS)
41
+ target_compile_definitions(_trefftz PRIVATE NGSTENT_EXPORTS)
42
+
43
+ ### link LAPACK or MKL if possible
44
+ set(NGSTREFFTZ_USE_MKL ${NGSOLVE_USE_MKL} CACHE BOOL "Try to use mkl")
45
+ set(NGSTREFFTZ_USE_LAPACK ${NGSOLVE_USE_LAPACK} CACHE BOOL "Try to use lapack from ngsolve")
46
+ if (NGSTREFFTZ_USE_MKL)
47
+ file(DOWNLOAD
48
+ https://raw.githubusercontent.com/NGSolve/ngsolve/master/cmake/cmake_modules/FindMKL.cmake
49
+ "${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
50
+
51
+ #file(COPY ${CMAKE_SOURCE_DIR}/FindMKL.cmake DESTINATION
52
+ #"${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
53
+
54
+ #message(STATUS "MKL_ROOT=${MKL_ROOT}")
55
+ #message(STATUS "NGSOLVED=${NGSolve_DIR}")
56
+
57
+
58
+ #set(PIP_MKL_ROOT FALSE CACHE BOOL "Set to true if MKL_ROOT is set by pip")
59
+ #message(STATUS "PIP_MKL_ROOT=${PIP_MKL_ROOT}")
60
+ #if(PIP_MKL_ROOT AND LINUX)
61
+ #set(MKL_ROOT "${NGSolve_DIR}/../../.." CACHE PATH "MKL root directory" )
62
+ #set(MKL_LIBRARY "${MKL_ROOT}/lib/libmkl_rt.so.2" CACHE PATH "MKL library" )
63
+ #set(MKL_INCLUDE_DIR "${MKL_ROOT}/include" CACHE PATH "MKL include directory" )
64
+ #message(STATUS "set MKL_LIBRARY=${MKL_LIBRARY}")
65
+ #elseif(PIP_MKL_ROOT AND WIN32)
66
+ #set(MKL_ROOT "${NGSolve_DIR}/../../../.." CACHE PATH "MKL root directory" )
67
+ #set(MKL_LIBRARY "${MKL_ROOT}/Library/lib/mkl_rt.lib" CACHE PATH "MKL library" )
68
+ #set(MKL_INCLUDE_DIR "${MKL_ROOT}/Library/include" CACHE PATH "MKL include directory" )
69
+ #endif()
70
+
71
+ set(MKL_ARCH "intel64")
72
+ if(NOT MKL_INTERFACE)
73
+ set(MKL_INTERFACE "lp64")
74
+ endif(NOT MKL_INTERFACE)
75
+ set(MKL_MULTI_THREADED ON CACHE BOOL "Use threaded MKL libs")
76
+ if(NOT MKL_MULTI_THREADED)
77
+ set(MKL_THREADING sequential)
78
+ endif()
79
+ set(MKL_STATIC OFF CACHE BOOL "Link static MKL")
80
+ set(MKL_SDL ON CACHE BOOL "Link single dynamic MKL lib")
81
+ if(NOT MKL_LINK)
82
+ if(MKL_STATIC)
83
+ set(MKL_LINK static)
84
+ elseif(MKL_SDL)
85
+ set(MKL_LINK sdl)
86
+ else()
87
+ set(MKL_LINK dynamic)
88
+ endif()
89
+ endif()
90
+
91
+ file(WRITE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/findmklconf.py
92
+ "from contextlib import suppress;import importlib.metadata; \
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)
97
+ if(MKL_CONF_FROM_PY)
98
+ message(STATUS "MKL_CONF_FROM_PY=${MKL_CONF_FROM_PY}")
99
+ message(STATUS "pylibdir=${python3_library_dir}")
100
+ set(MKL_ROOT "${MKL_CONF_FROM_PY}/../../.." CACHE PATH "MKL root directory" )
101
+ set(MKL_LIBRARY "${MKL_ROOT}/lib/libmkl_rt.so.2" CACHE PATH "MKL library" )
102
+ set(MKL_INCLUDE_DIR "${MKL_ROOT}/include" CACHE PATH "MKL include directory" )
103
+ endif()
104
+ #set(MKL_VERSION_H "${MKL_ROOT}/include/mkl_version.h")
105
+
106
+ #set(d lib/cmake/mkl)
107
+ #find_package(MKL CONFIG REQUIRED HINTS ${MKL_CONF} ${MKL_ROOT}/${d} PATHS /opt/intel/oneapi/mkl/latest/${d} ~/.local/${d})
108
+
109
+ unset(USE_MPI CACHE)
110
+ find_package(MKL)
111
+
112
+ #if(USE_MUMPS)
113
+ ## include scalapack
114
+ #set( LAPACK_LIBRARIES "${MKL_LIBRARIES}")
115
+ #set( ENABLE_SCALAPACK ON)
116
+ #else(USE_MUMPS)
117
+ #set( LAPACK_LIBRARIES "${MKL_MINIMAL_LIBRARIES}")
118
+ #endif(USE_MUMPS)
119
+
120
+ if(MKL_FOUND)
121
+ message(STATUS "Found MKL_MINIMAL_LIBRARIES=${MKL_MINIMAL_LIBRARIES}")
122
+ set( LAPACK_LIBRARIES "${MKL_MINIMAL_LIBRARIES}")
123
+ else()
124
+ message("${Red}MKL not found!${ColourReset}")
125
+ endif()
126
+ endif (NGSTREFFTZ_USE_MKL)
127
+ if(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
128
+ message(STATUS "Looking for LAPACK")
129
+ find_package(LAPACK)
130
+ endif(NGSTREFFTZ_USE_LAPACK AND NOT LAPACK_LIBRARIES)
131
+ if(LAPACK_LIBRARIES)
132
+ #target_link_libraries(_trefftz PRIVATE $<BUILD_INTERFACE:ngs_lapack>)
133
+ message(STATUS "Linking with LAPACK_LIBRARIES=${LAPACK_LIBRARIES}")
134
+ target_link_libraries(_trefftz PRIVATE ${LAPACK_LIBRARIES})
135
+ target_compile_definitions(_trefftz PRIVATE NGSTREFFTZ_USE_LAPACK)
136
+ else(LAPACK_LIBRARIES)
137
+ message("${Red}LAPACK not found, restricted usage${ColourReset}")
138
+ endif(LAPACK_LIBRARIES)
139
+
140
+ ### doc
141
+ option(BUILD_DOC "Build documentation" OFF)
142
+ if (BUILD_DOC)
143
+ find_package(Doxygen REQUIRED)
144
+ set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in)
145
+ set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
146
+ configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
147
+ add_custom_target( doxygen
148
+ COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
149
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
150
+ COMMENT "Generating API documentation with Doxygen"
151
+ VERBATIM )
152
+ endif (BUILD_DOC)
153
+
154
+ ### install
155
+ set_target_properties(_trefftz PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz")
156
+ file(COPY ${CMAKE_SOURCE_DIR}/src/__init__.py DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz)
157
+ set(install_dir ${ADDON_INSTALL_DIR_PYTHON}/ngstrefftz)
158
+ install(TARGETS _trefftz DESTINATION ${install_dir})
159
+ install(FILES src/__init__.py DESTINATION ${install_dir})
160
+ #ngsolve_generate_stub_files(${addon_name})
161
+
162
+ message("${BoldCyan}
163
+ ------------------------------------------------------------------------
164
+ Build type: ${CMAKE_BUILD_TYPE}
165
+ Compiler: ${CMAKE_CXX_COMPILER}
166
+ Flags: ${flags}
167
+
168
+ Enabled functionality:
169
+ LAPACK: ............ ${NGSTREFFTZ_USE_LAPACK}
170
+ MKL: ............... ${NGSTREFFTZ_USE_MKL}
171
+ Doxygen: ........... ${BUILD_DOC}
172
+
173
+ With 'make install' the package will be installed to: ${CMAKE_INSTALL_PREFIX}
174
+ Make sure to add it to the python path:
175
+ --> export PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${python3_library_dir}:$PYTHONPATH
176
+ ------------------------------------------------------------------------
177
+ \n${ColourReset}")
178
+
179
+ ### tests
180
+ include(CTest)
181
+ file(COPY
182
+ ${CMAKE_SOURCE_DIR}/test/dg.py
183
+ ${CMAKE_SOURCE_DIR}/test/embt.py
184
+ ${CMAKE_SOURCE_DIR}/test/trefftz.py
185
+ ${CMAKE_SOURCE_DIR}/test/tents.py
186
+ ${CMAKE_SOURCE_DIR}/test/constrained_trefftz.py
187
+ DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing)
188
+ add_test(NAME embtrefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/embt.py)
189
+ add_test(NAME constrained_trefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/constrained_trefftz.py)
190
+ add_test(NAME trefftz COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/trefftz.py)
191
+ add_test(NAME tents COMMAND python3 -m doctest ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Testing/tents.py)
192
+ #WORKING_DIRECTORY ${ CMAKE_CURRENT_SOURCE_DIR }
193
+ set_tests_properties(embtrefftz trefftz tents
194
+ PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:${NGSOLVE_INSTALL_DIR}/${NGSOLVE_INSTALL_DIR_PYTHON}:$ENV{PYTHONPATH}")
195
+
196
+ # make uninstall
197
+ add_custom_target("uninstall" COMMENT "Uninstall installed files")
198
+ add_custom_command(
199
+ TARGET "uninstall"
200
+ POST_BUILD
201
+ COMMENT "Uninstall files with install_manifest.txt"
202
+ COMMAND xargs rm -vf < install_manifest.txt || echo Nothing in
203
+ install_manifest.txt to be uninstalled!
204
+ )
@@ -2,6 +2,11 @@ FROM python:3.10-slim-bullseye
2
2
 
3
3
  WORKDIR /home/app
4
4
 
5
+ #RUN apt --yes update && apt --yes install git pandoc sphinx
6
+ #COPY . /home/app/ngstrefftz
7
+ #RUN cd /home/app/ngstrefftz/docs && pip install -r requirements.txt
8
+ #RUN cd /home/app/ngstrefftz/docs && sphinx-build -M html . _build -vvv
9
+
5
10
  RUN pip install ngstrefftz
6
11
  ENV PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.10/site-packages/
7
12
  ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
@@ -0,0 +1,101 @@
1
+ Metadata-Version: 2.1
2
+ Name: ngstrefftz
3
+ Version: 0.3.2402.dev152
4
+ Summary: NGSTrefftz is an add-on to NGSolve for Trefftz methods.
5
+ Author-Email: Paul Stocker <paul.stocker@univie.ac.at>
6
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
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: mkl>=2024.2.0
11
+ Requires-Dist: ngsolve>=6.2.2404.post22.dev0
12
+ Description-Content-Type: text/markdown
13
+
14
+ # NGSTrefftz
15
+ **an add-on to NGSolve for Trefftz methods**
16
+
17
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)
18
+ [![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)
19
+ [![PyPI](https://img.shields.io/pypi/v/ngstrefftz?color=blue&logo=pypi)](https://pypi.org/project/ngstrefftz/)
20
+ [![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)
21
+ [![status](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409/status.svg)](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409)
22
+ [![docs](https://img.shields.io/badge/docs-NGSTrefftz-blue?logo=readthedocs)](https://paulst.github.io/NGSTrefftz/)
23
+
24
+ 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.
25
+
26
+ ## Try it out!
27
+ You can try out some jupyter notebooks:
28
+ * Launch the Binder here:
29
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)
30
+ * Or run the docker locally (you need to have docker installed):
31
+
32
+ ```bash
33
+ git clone https://github.com/PaulSt/NGSTrefftz
34
+ cd NGSTrefftz && docker build -t ngstrefftz_jupyter .
35
+ docker run -p 8888:8888 ngstrefftz_jupyter
36
+ ```
37
+
38
+ ## Installing the package
39
+ You can either:
40
+ * install using pip
41
+
42
+ ```bash
43
+ pip install ngstrefftz
44
+ ```
45
+
46
+ * or build from source
47
+
48
+ ```bash
49
+ git clone --recursive https://github.com/PaulSt/NGSTrefftz
50
+ mkdir ./NGSTrefftz/make && cd ./NGSTrefftz/make
51
+ cmake ../ && make install
52
+ ```
53
+
54
+ ### Dependencies
55
+ * if you are using pip to install the package you can install the newest ngsolve and other dependencies using
56
+ ```bash
57
+ pip install ngsolve --pre
58
+ ```
59
+ * if you build the package from source the following software needs to be installed
60
+ * [cmake](https://cmake.org/) >= 3.1
61
+ * [gcc](https://gcc.gnu.org/) >= 9 or [clang](https://clang.llvm.org/) >= 10
62
+ * [lapack](http://www.netlib.org/lapack/) >= 3.9 (required to access the newest features)
63
+ * [ngsolve](https://www.ngsolve.org) >= 6.2 (to access the newest features the nightly version of NGSolve works best)
64
+
65
+ ## News
66
+ ⚠️ Oct, 2022: With v0.2.0 the git history has undergone a major cleanup, please make sure to clone the repo anew.
67
+
68
+ 🚀 Oct, 2022: New and improved implementation of the embedded Trefftz method via `EmbeddedTrefftzFES`!
69
+
70
+ 🚀 Aug, 2022: Three different [pip](https://pypi.org/search/?q=ngstrefftz)-installer available, now using wheels!
71
+
72
+ 🚀 Mar, 2022: NGSTrefftz now has a [website](https://paulst.github.io/NGSTrefftz/)!
73
+
74
+ ⚠️ 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).
75
+
76
+ 🚀 Jan, 2022: NGSTrefftz is now available via pip!
77
+
78
+ 🚀 Nov, 2021: NGSTrefftz now comes in a docker and with binder notebooks!
79
+
80
+ ## Papers using the code
81
+ * *Trefftz Discontinuous Galerkin discretization for the Stokes problem*
82
+ Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker
83
+ [![arXiv](https://img.shields.io/badge/arXiv-2306.14600-b31b1b.svg)](https://arxiv.org/abs/2306.14600)
84
+ * *Unfitted Trefftz discontinuous Galerkin methods for elliptic boundary value problems*
85
+ Fabian Heimann, Christoph Lehrenfeld, Paul Stocker, Henry von Wahl
86
+ [![arXiv](https://img.shields.io/badge/arXiv-2212.12236-b31b1b.svg)](https://arxiv.org/abs/2212.12236)
87
+ * *Embedded Trefftz discontinuous Galerkin methods*
88
+ Christoph Lehrenfeld, Paul Stocker
89
+ [![arXiv](https://img.shields.io/badge/arXiv-2201.07041-b31b1b.svg)](https://arxiv.org/abs/2201.07041)
90
+ * *A space-time quasi-Trefftz DG method for the wave equation with piecewise-smooth coefficients*
91
+ Lise-Marie Imbert-Gérard, Andrea Moiola, Paul Stocker
92
+ [![arXiv](https://img.shields.io/badge/arXiv-2011.04617-b31b1b.svg)](https://arxiv.org/abs/2011.04617)
93
+ * *Tent pitching and Trefftz-DG method for the acoustic wave equation*
94
+ Ilaria Perugia, Joachim Schöberl, Paul Stocker, Christoph Wintersteiger
95
+ [![arXiv](https://img.shields.io/badge/arXiv-1907.02367-b31b1b.svg)](https://arxiv.org/abs/1907.02367)
96
+
97
+ If you are using `ngstrefftz` in your academic work, please consider citing
98
+ ```
99
+ Stocker, P., (2022). NGSTrefftz: Add-on to NGSolve for Trefftz methods.
100
+ Journal of Open Source Software, 7(71), 4135, https://doi.org/10.21105/joss.04135
101
+ ```
@@ -35,7 +35,7 @@ pip install ngstrefftz
35
35
  ```bash
36
36
  git clone --recursive https://github.com/PaulSt/NGSTrefftz
37
37
  mkdir ./NGSTrefftz/make && cd ./NGSTrefftz/make
38
- cmake ../src && make install
38
+ cmake ../ && make install
39
39
  ```
40
40
 
41
41
  ### Dependencies
@@ -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.2402.dev152'
16
+ __version_tuple__ = version_tuple = (0, 3, 2402, 'dev152')
@@ -0,0 +1,4 @@
1
+ PROJECT_NAME = "NGSTrefftz"
2
+ OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc_doxygen/
3
+ INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/ @CMAKE_CURRENT_SOURCE_DIR@/docs @NGSOLVE_INSTALL_DIR@/include
4
+ EXTRACT_ALL = YES
@@ -54,14 +54,14 @@ NGSTrefftz is an add-On to NGSolve for Trefftz methods.
54
54
  notebooks/index.ipynb
55
55
  notebooks/laplace.ipynb
56
56
  notebooks/helmholtz.ipynb
57
- notebooks/tunfitted.ipynb
58
57
  notebooks/twave.ipynb
58
+ notebooks/qtelliptic.ipynb
59
59
  notebooks/qtwave.ipynb
60
- notebooks/twavetents.ipynb
61
60
  notebooks/embTrefftz.ipynb
62
61
  notebooks/embTrefftz-poi.ipynb
63
62
  notebooks/embTrefftz-wave.ipynb
64
63
  notebooks/embTrefftz-helm.ipynb
65
64
  notebooks/embTrefftz-adv.ipynb
66
65
  notebooks/embTrefftz-stokes.ipynb
67
-
66
+ notebooks/tunfitted.ipynb
67
+ notebooks/twavetents.ipynb
@@ -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