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.
Files changed (167) hide show
  1. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/build.yml +134 -50
  2. ngstrefftz-0.3.2406.dev89/.gitignore +15 -0
  3. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.gitmodules +1 -1
  4. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/CMakeLists.txt +105 -36
  5. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/Dockerfile +1 -1
  6. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/PKG-INFO +23 -6
  7. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/README.md +20 -2
  8. ngstrefftz-0.3.2406.dev89/_version.py +21 -0
  9. ngstrefftz-0.3.2406.dev89/docs/Doxyfile.in +4 -0
  10. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/conf.py +1 -0
  11. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/docu.rst +5 -1
  12. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-adv.ipynb +5 -3
  13. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-helm.ipynb +3 -3
  14. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-poi.ipynb +81 -5
  15. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-stokes.ipynb +4 -4
  16. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz-wave.ipynb +3 -3
  17. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/embTrefftz.ipynb +38 -31
  18. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/index.ipynb +1 -1
  19. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/laplace.ipynb +1 -1
  20. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/requirements.txt +3 -3
  21. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/.github/workflows/build.yml +109 -0
  22. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/.gitignore +1 -0
  23. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/README.md +129 -0
  24. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +79 -34
  25. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/INDEX.ipynb +1 -1
  26. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/StartPitching.ipynb +47 -34
  27. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/_config.yml +49 -0
  28. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/_toc.yml +13 -0
  29. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/conf.py +1 -0
  30. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/docs/intro.md +0 -0
  31. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/requirements.txt +1 -4
  32. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/__init__.py +1 -0
  33. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/pyproject.toml +47 -0
  34. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/CMakeLists.txt +45 -0
  35. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/ngsolve_addon.cmake +97 -0
  36. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/paralleldepend.hpp +1 -1
  37. ngstrefftz-0.3.2406.dev89/external_dependencies/ngstents/src/python_tents.cpp +141 -0
  38. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tents.cpp +27 -31
  39. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tents.hpp +3 -3
  40. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/pyproject.toml +17 -11
  41. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/__init__.py +5 -1
  42. ngstrefftz-0.3.2406.dev89/src/boxintegral.cpp +1288 -0
  43. ngstrefftz-0.3.2406.dev89/src/boxintegral.hpp +212 -0
  44. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/condensedg.cpp +4 -6
  45. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/diffopmapped.hpp +21 -21
  46. ngstrefftz-0.3.2406.dev89/src/embtrefftz.cpp +1424 -0
  47. ngstrefftz-0.3.2406.dev89/src/embtrefftz.hpp +182 -0
  48. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/mesh1dtents.cpp +1 -1
  49. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/monomialfespace.cpp +10 -11
  50. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/monomialfespace.hpp +4 -5
  51. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/planewavefe.cpp +30 -17
  52. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/planewavefe.hpp +36 -37
  53. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufe.cpp +18 -19
  54. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufespace.cpp +2 -2
  55. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufespace.hpp +3 -2
  56. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/python_trefftz.cpp +3 -1
  57. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/scalarmappedfe.cpp +68 -71
  58. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/scalarmappedfe.hpp +9 -9
  59. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialcoefficientfunction.cpp +31 -4
  60. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialcoefficientfunction.hpp +26 -1
  61. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialintegrator.cpp +24 -29
  62. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/specialintegrator.hpp +30 -30
  63. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/trefftzfespace.cpp +297 -359
  64. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/trefftzfespace.hpp +59 -15
  65. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/twavetents.cpp +7 -7
  66. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/twavetents.hpp +10 -10
  67. ngstrefftz-0.3.2406.dev89/test/boxint.py +78 -0
  68. ngstrefftz-0.3.2406.dev89/test/conforming_trefftz.py +580 -0
  69. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/test/dg.py +82 -2
  70. ngstrefftz-0.3.2406.dev89/test/embt.py +480 -0
  71. ngstrefftz-0.3.2406.dev89/test/embtrefftz_gtest.cpp +152 -0
  72. ngstrefftz-0.3.2405.dev6/_version.py +0 -16
  73. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.git +0 -1
  74. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build.yml +0 -216
  75. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -24
  76. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -32
  77. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -19
  78. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -41
  79. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -1
  80. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/README.md +0 -83
  81. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/setup.py +0 -27
  82. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/src/CMakeLists.txt +0 -97
  83. ngstrefftz-0.3.2405.dev6/external_dependencies/ngstents/src/python_tents.cpp +0 -139
  84. ngstrefftz-0.3.2405.dev6/src/embtrefftz.cpp +0 -775
  85. ngstrefftz-0.3.2405.dev6/src/embtrefftz.hpp +0 -80
  86. ngstrefftz-0.3.2405.dev6/test/embt.py +0 -285
  87. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.clang-format +0 -0
  88. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/fix_auditwheel_policy.py +0 -0
  89. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/Dockerfile +0 -0
  90. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/build_in_docker.sh +0 -0
  91. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/merge.py +0 -0
  92. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/.github/workflows/pyodide/requirements.txt +0 -0
  93. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/CONTRIBUTING.md +0 -0
  94. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/LICENSE +0 -0
  95. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/_static/breadcrumbs.html +0 -0
  96. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/_static/css/mytheme.css +0 -0
  97. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/contrib.rst +0 -0
  98. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/index.rst +0 -0
  99. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/intro.rst +0 -0
  100. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/helmholtz.ipynb +0 -0
  101. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/qtelliptic.ipynb +0 -0
  102. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/qtwave.ipynb +0 -0
  103. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/tunfitted.ipynb +0 -0
  104. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/twave.ipynb +0 -0
  105. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/notebooks/twavetents.ipynb +0 -0
  106. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/codemeta.json +0 -0
  107. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/paper.bib +0 -0
  108. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/paper/paper.md +0 -0
  109. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/docs/readme.rst +0 -0
  110. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
  111. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
  112. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
  113. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
  114. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
  115. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
  116. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
  117. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
  118. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
  119. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
  120. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
  121. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
  122. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
  123. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
  124. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
  125. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
  126. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
  127. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
  128. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
  129. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
  130. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
  131. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
  132. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
  133. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
  134. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/map.png +0 -0
  135. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
  136. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/index.rst +0 -0
  137. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/docs/readme.rst +0 -0
  138. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
  139. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
  140. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
  141. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
  142. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/advection.cpp +0 -0
  143. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/burgers.cpp +0 -0
  144. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
  145. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
  146. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/euler.cpp +0 -0
  147. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
  148. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
  149. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
  150. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
  151. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
  152. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
  153. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
  154. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
  155. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/src/wave.cpp +0 -0
  156. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
  157. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
  158. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
  159. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
  160. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
  161. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/airy.cpp +0 -0
  162. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/condensedg.hpp +0 -0
  163. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/mesh1dtents.hpp +0 -0
  164. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/ngsttd.hpp +0 -0
  165. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/src/pufe.hpp +0 -0
  166. {ngstrefftz-0.3.2405.dev6 → ngstrefftz-0.3.2406.dev89}/test/tents.py +0 -0
  167. {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: 'True'
23
- path: 'NGSTrefftz'
45
+ submodules: true
46
+ path: "NGSTrefftz"
24
47
  fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
25
- - uses: actions/setup-python@v5
26
- with:
27
- python-version: '3.12'
48
+ #- uses: actions/setup-python@v5
49
+ #with:
50
+ #python-version: "3.12"
28
51
  - name: install ngstrefftz
29
- run: cd NGSTrefftz && pip install numpy mkl-devel==2024.* mkl==2024.* && pip install . -v
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: [ test_linux ]
90
+ needs: [test_linux, gtest_linux]
36
91
  runs-on: ${{ matrix.os }}
37
92
  strategy:
38
93
  matrix:
39
- os: [ubuntu-latest, macos-13]
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: 'True'
49
- fetch-tags: 'true'
115
+ submodules: true
116
+ fetch-tags: true
50
117
  fetch-depth: 0
51
118
  - name: Build wheels
52
- uses: pypa/cibuildwheel@v2.19.0
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
- needs: [ test_linux ]
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: 'True'
68
- fetch-tags: 'true'
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
- # To test: repository-url: https://test.pypi.org/legacy/
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@v3
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: type=semver,pattern={{version}}
112
- - name: Set up QEMU
113
- uses: docker/setup-qemu-action@v3
114
- - name: Set up Docker Buildx
115
- uses: docker/setup-buildx-action@v3
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@v5
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: 'True'
142
- path: 'NGSTrefftz'
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: '3.11'
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: [upload_pypi]
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: 'True'
172
- path: 'NGSTrefftz'
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
- echo "NETGENDIR=/usr/bin/" >> $GITHUB_ENV
182
- echo "LD_LIBRARY_PATH=${{ env.LD_LIBRARY_PATH }}:/home/runner/.local/lib:/usr/local/lib/" >> $GITHUB_ENV
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: 'NGSTrefftz'
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
- - run: tree -d .
278
+ #- run: tree -d .
196
279
  - name: Upload
197
280
  uses: actions/upload-pages-artifact@v3
198
281
  with:
199
- path: 'NGSTrefftz/'
200
-
282
+ path: "NGSTrefftz/"
283
+
201
284
  deploy-docs:
202
285
  needs: docs
203
286
  permissions:
204
- pages: write # to deploy to Pages
205
- id-token: write # to verify the deployment originates from an appropriate source
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  [submodule "external_dependencies/ngstents"]
2
2
  path = external_dependencies/ngstents
3
- url = https://github.com/paulst/ngstents
3
+ url = https://github.com/PaulSt/ngstents.git
@@ -10,16 +10,17 @@ if(NOT WIN32)
10
10
  set(BoldWhite "${Esc}[1;37m")
11
11
  endif()
12
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")
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
- set(addon_name _trefftz)
19
- project(_trefftz)
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( _trefftz
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(_trefftz PRIVATE NGSTREFFTZ_EXPORTS)
41
- target_compile_definitions(_trefftz PRIVATE NGSTENT_EXPORTS)
42
+ target_compile_definitions(ngstrefftz PRIVATE NGSTREFFTZ_EXPORTS)
43
+ target_compile_definitions(ngstrefftz PRIVATE NGSTENT_EXPORTS)
42
44
 
43
- ### link LAPACK or MKL if possible
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
- "${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
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
- "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)
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 "${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" )
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(_trefftz PRIVATE $<BUILD_INTERFACE:ngs_lapack>)
151
+ #target_link_libraries(ngstrefftz PRIVATE $<BUILD_INTERFACE:ngs_lapack>)
133
152
  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)
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(_trefftz PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ngstrefftz")
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 _trefftz DESTINATION ${install_dir})
177
+ install(TARGETS ngstrefftz DESTINATION ${install_dir})
145
178
  install(FILES src/__init__.py DESTINATION ${install_dir})
146
- #ngsolve_generate_stub_files(${addon_name})
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
- include(CTest)
166
- file(COPY
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 "PYTHONPATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:${NGSOLVE_INSTALL_DIR}/${NGSOLVE_INSTALL_DIR_PYTHON}:$ENV{PYTHONPATH}")
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
1
+ Metadata-Version: 2.2
2
2
  Name: ngstrefftz
3
- Version: 0.3.2405.dev6
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: mkl>=2024.2.0
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 ../src && make install
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
- ## Papers using the code
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
+ [![arXiv](https://img.shields.io/badge/arXiv-2412.00806-b31b1b.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-2411.14819-b31b1b.svg)](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
+ [![arXiv](https://img.shields.io/badge/arXiv-2408.00392-b31b1b.svg)](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
  [![arXiv](https://img.shields.io/badge/arXiv-2306.14600-b31b1b.svg)](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
  [![arXiv](https://img.shields.io/badge/arXiv-1907.02367-b31b1b.svg)](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
  ```