ngstrefftz 0.3.2403.dev6__tar.gz → 0.3.2403.dev10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ngstrefftz-0.3.2403.dev6/src/ngstrefftz.egg-info → ngstrefftz-0.3.2403.dev10}/PKG-INFO +1 -1
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/index.rst +3 -3
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz-helm.ipynb +82 -56
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz-wave.ipynb +2 -2
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/helmholtz.ipynb +2 -2
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/index.ipynb +14 -10
- ngstrefftz-0.3.2403.dev10/docs/notebooks/qtelliptic.ipynb +450 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/qtwave.ipynb +3 -3
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/twave.ipynb +1 -1
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10/src/ngstrefftz.egg-info}/PKG-INFO +1 -1
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/ngstrefftz.egg-info/SOURCES.txt +1 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.clang-format +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/build_linux_test.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/build_pip.ps1 +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/build_pip.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/build_pip_mac.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/ngsolve_version.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/pyodide/Dockerfile +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/pyodide/build_in_docker.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/pyodide/merge.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.github/workflows/pyodide/requirements.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/.gitmodules +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/CONTRIBUTING.md +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/Dockerfile +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/LICENSE +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/README.md +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/_static/breadcrumbs.html +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/_static/css/mytheme.css +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/conf.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/contrib.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/docu.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/intro.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/embTrefftz.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/laplace.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/tunfitted.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/notebooks/twavetents.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/paper/codemeta.json +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/paper/paper.bib +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/paper/paper.md +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/build_pip.ps1 +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/build_pip.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/build_pip_mac.sh +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/.github/workflows/ngsolve_version.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/README.md +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/conf.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/figs/map.png +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/index.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/py/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/setup.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/advection.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/burgers.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/euler.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/tents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/tents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/src/wave.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/setup.cfg +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/setup.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/__init__.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/airy.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/condensedg.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/condensedg.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/diffopmapped.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/embtrefftz.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/embtrefftz.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/mesh1dtents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/mesh1dtents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/monomialfespace.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/monomialfespace.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/ngstrefftz.egg-info/dependency_links.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/ngstrefftz.egg-info/requires.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/ngstrefftz.egg-info/top_level.txt +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/ngsttd.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/planewavefe.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/planewavefe.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/python_trefftz.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/scalarmappedfe.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/scalarmappedfe.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/specialcoefficientfunction.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/specialcoefficientfunction.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/specialintegrator.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/specialintegrator.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/trefftzfespace.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/trefftzfespace.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/twavetents.cpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/src/twavetents.hpp +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/test/dg.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/test/embt.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/test/tents.py +0 -0
- {ngstrefftz-0.3.2403.dev6 → ngstrefftz-0.3.2403.dev10}/test/trefftz.py +0 -0
|
@@ -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
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"\\newcommand{\\inner}[1]{\\langle #1 \\rangle}\n",
|
|
56
56
|
"\\begin{align*}\n",
|
|
57
57
|
" \\begin{cases}\n",
|
|
58
|
-
" -\\Delta u - \\omega^2 u=
|
|
59
|
-
" \\frac{\\partial u}{\\partial \\nx}
|
|
58
|
+
" -\\Delta u - \\omega^2 u= f &\\text{ in } \\dom, \\\\\n",
|
|
59
|
+
" \\frac{\\partial u}{\\partial \\nx} - i\\omega u = g &\\text{ on } \\partial \\dom.\n",
|
|
60
60
|
" \\end{cases}\n",
|
|
61
61
|
"\\end{align*}\n",
|
|
62
62
|
"$$\n",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"metadata": {},
|
|
91
91
|
"outputs": [],
|
|
92
92
|
"source": [
|
|
93
|
-
"def TrefftzHelmholtzEmb(fes):\n",
|
|
93
|
+
"def TrefftzHelmholtzEmb(fes,omega=1):\n",
|
|
94
94
|
" mesh = fes.mesh\n",
|
|
95
95
|
" k = fes.globalorder\n",
|
|
96
96
|
" u = fes.TrialFunction()\n",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
" Lap = lambda u : sum(Trace(u.Operator('hesse')))\n",
|
|
99
99
|
" fes2 = L2(mesh, order=order-2, dgjumps=True,complex=True)\n",
|
|
100
100
|
" v = fes2.TestFunction()\n",
|
|
101
|
-
" op = -u*v*dx - Lap(u)*v*dx\n",
|
|
101
|
+
" op = -omega**2*u*v*dx - Lap(u)*v*dx\n",
|
|
102
102
|
" PP = TrefftzEmbedding(op,fes,test_fes=fes2)\n",
|
|
103
103
|
" return PP"
|
|
104
104
|
]
|
|
@@ -163,19 +163,6 @@
|
|
|
163
163
|
"Draw (gfshow, mesh, interpolate_multidim=False, animate=False, autoscale=False, min=0.8,max=1, settings={\"subdivision\":20})"
|
|
164
164
|
]
|
|
165
165
|
},
|
|
166
|
-
{
|
|
167
|
-
"cell_type": "code",
|
|
168
|
-
"execution_count": null,
|
|
169
|
-
"id": "ad81be3d",
|
|
170
|
-
"metadata": {},
|
|
171
|
-
"outputs": [],
|
|
172
|
-
"source": [
|
|
173
|
-
"mesh = Mesh(unit_square.GenerateMesh(maxh=.3))\n",
|
|
174
|
-
"order = 4\n",
|
|
175
|
-
"fes = L2(mesh, order=order, complex=True, dgjumps=True)\n",
|
|
176
|
-
"u,v = fes.TnT()"
|
|
177
|
-
]
|
|
178
|
-
},
|
|
179
166
|
{
|
|
180
167
|
"cell_type": "code",
|
|
181
168
|
"execution_count": null,
|
|
@@ -187,7 +174,7 @@
|
|
|
187
174
|
"n = specialcf.normal(2)\n",
|
|
188
175
|
"exact = exp(1j*sqrt(0.5)*(x+y))\n",
|
|
189
176
|
"gradexact = CoefficientFunction((sqrt(0.5)*1j*exact, sqrt(0.5)*1j*exact))\n",
|
|
190
|
-
"bndc = gradexact*n
|
|
177
|
+
"bndc = gradexact*n - 1j*omega*exact\n",
|
|
191
178
|
"eps = 10**-7"
|
|
192
179
|
]
|
|
193
180
|
},
|
|
@@ -202,9 +189,9 @@
|
|
|
202
189
|
"\\begin{align}\n",
|
|
203
190
|
" a_h(u,v) &= \\sum_{K\\in\\Th}\\int_K \\nabla u\\nabla v-\\omega^2 uv\\ dV\n",
|
|
204
191
|
" -\\int_{\\Fh^\\text{int}}\\left(\\avg{\\nabla u}\\jump{v}+\\jump{u} \\avg{\\overline{\\nabla v}} \\right) dS \\nonumber \\\\ \n",
|
|
205
|
-
" &\\qquad+\\int_{\\Fh^\\text{int}} \\left( i\\alpha \\omega\\jump{u}\\jump{\\overline{v}} - \\frac{\\beta}{
|
|
206
|
-
" &\\qquad
|
|
207
|
-
" \\ell(v) &= \\int_{\\Fh^\\text{bnd}}\\left( (1-\\delta)g\\overline{v} - \\frac{\\delta}{
|
|
192
|
+
" &\\qquad+\\int_{\\Fh^\\text{int}} \\left( i\\alpha \\omega\\jump{u}\\jump{\\overline{v}} - i\\frac{\\beta}{\\omega}\\jump{\\nabla u}\\jump{\\overline{\\nabla v}} \\right) dS -\\int_{\\Fh^\\text{bnd}}\\delta\\left(\\nx\\cdot\\nabla u \\overline{v}+u \\overline{\\nx\\cdot\\nabla v}\\right) dS\\\\ \\nonumber\n",
|
|
193
|
+
" &\\qquad-\\int_{\\Fh^\\text{bnd}} \\left( i(1-\\delta)\\omega{u}{\\overline{v}} + i\\frac{\\delta}{\\omega}{\\nabla u\\cdot\\nx}{\\overline{\\nabla v}\\cdot\\nx} \\right) dS \\\\ \n",
|
|
194
|
+
" \\ell(v) &= \\int_\\Omega fv\\ dV + \\int_{\\Fh^\\text{bnd}}\\left( (1-\\delta)g\\overline{v} - i\\frac{\\delta}{\\omega}g\\overline{\\nx\\cdot\\nabla v}\\right) dS\n",
|
|
208
195
|
"\\end{align}\n",
|
|
209
196
|
"$$"
|
|
210
197
|
]
|
|
@@ -216,37 +203,43 @@
|
|
|
216
203
|
"metadata": {},
|
|
217
204
|
"outputs": [],
|
|
218
205
|
"source": [
|
|
219
|
-
"
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"\n",
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"\n",
|
|
232
|
-
"
|
|
233
|
-
"
|
|
234
|
-
"\n",
|
|
235
|
-
"
|
|
236
|
-
"a
|
|
237
|
-
"a +=
|
|
238
|
-
"\n",
|
|
239
|
-
"a += -
|
|
240
|
-
"a += -
|
|
241
|
-
"a +=
|
|
242
|
-
"\n",
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
"
|
|
246
|
-
"\n",
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
" f
|
|
206
|
+
"def dghelmholtz(fes,omega,rhs=0,bndc=0,bnd=\".*\"):\n",
|
|
207
|
+
" u,v = fes.TnT()\n",
|
|
208
|
+
" h = specialcf.mesh_size\n",
|
|
209
|
+
" order = fes.globalorder\n",
|
|
210
|
+
" alpha = order**2/h\n",
|
|
211
|
+
" beta = h/order\n",
|
|
212
|
+
" delta = 0.1*omega*h/order\n",
|
|
213
|
+
" IP = lambda u,v: InnerProduct(u,v)\n",
|
|
214
|
+
" \n",
|
|
215
|
+
" jump_u = (u-u.Other())*n\n",
|
|
216
|
+
" jump_v = (v-v.Other())*n\n",
|
|
217
|
+
" jump_du = (grad(u)-grad(u.Other()))*n\n",
|
|
218
|
+
" jump_dv = (grad(v)-grad(v.Other()))*n\n",
|
|
219
|
+
" mean_u = 0.5 * (u+u.Other())\n",
|
|
220
|
+
" mean_du = 0.5 * (grad(u)+grad(u.Other()))\n",
|
|
221
|
+
" mean_dv = 0.5 * (grad(v)+grad(v.Other()))\n",
|
|
222
|
+
" \n",
|
|
223
|
+
" a = BilinearForm(fes)\n",
|
|
224
|
+
" a += grad(u)*grad(v)*dx - omega**2*u*v*dx\n",
|
|
225
|
+
" \n",
|
|
226
|
+
" a += -(jump_u*mean_dv+mean_du*jump_v) * dx(skeleton=True)\n",
|
|
227
|
+
" a += -1j*omega*alpha*jump_u*jump_v * dx(skeleton=True)\n",
|
|
228
|
+
" a += -1j*beta/(omega)*(jump_du*jump_dv) * dx(skeleton=True)\n",
|
|
229
|
+
" \n",
|
|
230
|
+
" a += -delta*(u*grad(v)*n+grad(u)*n*v) * ds(bnd,skeleton=True)\n",
|
|
231
|
+
" a += -1j*(1-delta)*omega*u*v * ds(bnd,skeleton=True)\n",
|
|
232
|
+
" a += -1j*delta/(omega)*(grad(u)*n)*(grad(v)*n) * ds(bnd,skeleton=True)\n",
|
|
233
|
+
" \n",
|
|
234
|
+
" f = LinearForm(fes)\n",
|
|
235
|
+
" f += rhs * v * dx\n",
|
|
236
|
+
" f += (1-delta)*bndc*v * ds(bnd,skeleton=True)\n",
|
|
237
|
+
" f += -1j*delta/omega*bndc*grad(v)*n * ds(bnd,skeleton=True)\n",
|
|
238
|
+
" \n",
|
|
239
|
+
" with TaskManager():\n",
|
|
240
|
+
" a.Assemble()\n",
|
|
241
|
+
" f.Assemble()\n",
|
|
242
|
+
" return a,f"
|
|
250
243
|
]
|
|
251
244
|
},
|
|
252
245
|
{
|
|
@@ -256,16 +249,49 @@
|
|
|
256
249
|
"metadata": {},
|
|
257
250
|
"outputs": [],
|
|
258
251
|
"source": [
|
|
252
|
+
"mesh = Mesh(unit_square.GenerateMesh(maxh=.3))\n",
|
|
253
|
+
"order = 4\n",
|
|
254
|
+
"fes = L2(mesh, order=order, complex=True, dgjumps=True)\n",
|
|
255
|
+
"a,f = dghelmholtz(fes,omega,bndc=bndc)\n",
|
|
259
256
|
"PP = TrefftzHelmholtzEmb(fes)\n",
|
|
260
257
|
"PPT = PP.CreateTranspose()\n",
|
|
261
258
|
"with TaskManager():\n",
|
|
262
259
|
" TA = PPT@a.mat@PP\n",
|
|
263
260
|
" TU = TA.Inverse()*(PPT*f.vec)\n",
|
|
264
|
-
"
|
|
265
|
-
"
|
|
266
|
-
"error = sqrt(Integrate((
|
|
261
|
+
" gfu = GridFunction(fes)\n",
|
|
262
|
+
" gfu.vec.data = PP*TU\n",
|
|
263
|
+
"error = sqrt(Integrate((gfu-exact)*Conj(gfu-exact), mesh).real)\n",
|
|
267
264
|
"print(\"error \",error)"
|
|
268
265
|
]
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"cell_type": "code",
|
|
269
|
+
"execution_count": null,
|
|
270
|
+
"id": "091833e6-f6d4-4ed6-8589-1ddbc47b01e7",
|
|
271
|
+
"metadata": {},
|
|
272
|
+
"outputs": [],
|
|
273
|
+
"source": [
|
|
274
|
+
"air = Circle((0.5, 0.5), 0.8).Face()\n",
|
|
275
|
+
"air.edges.name = 'outer'\n",
|
|
276
|
+
"scatterer = MoveTo(0.7, 0.3).Rectangle(0.05, 0.4).Face()\n",
|
|
277
|
+
"scatterer.edges.name = 'scat'\n",
|
|
278
|
+
"geo = OCCGeometry(air - scatterer, dim=2)\n",
|
|
279
|
+
"mesh = Mesh(geo.GenerateMesh(maxh=0.05))\n",
|
|
280
|
+
"omega = 25\n",
|
|
281
|
+
"rhs = 3e2*exp(-(40**2)*((x-0.5)*(x-0.5) + (y-0.5)*(y-0.5)))\n",
|
|
282
|
+
"\n",
|
|
283
|
+
"fes = L2(mesh, order=order, complex=True, dgjumps=True)\n",
|
|
284
|
+
"a,f = dghelmholtz(fes,omega,rhs=rhs,bnd=\"outer\")\n",
|
|
285
|
+
"PP = TrefftzHelmholtzEmb(fes,omega)\n",
|
|
286
|
+
"PPT = PP.CreateTranspose()\n",
|
|
287
|
+
"with TaskManager():\n",
|
|
288
|
+
" TA = PPT@a.mat@PP\n",
|
|
289
|
+
" TU = TA.Inverse()*(PPT*f.vec)\n",
|
|
290
|
+
" gfu = GridFunction(fes)\n",
|
|
291
|
+
" gfu.vec.data = PP*TU\n",
|
|
292
|
+
"\n",
|
|
293
|
+
"Draw(gfu, mesh, animate_complex=True,deformation=True);"
|
|
294
|
+
]
|
|
269
295
|
}
|
|
270
296
|
],
|
|
271
297
|
"metadata": {
|
|
@@ -284,7 +310,7 @@
|
|
|
284
310
|
"name": "python",
|
|
285
311
|
"nbconvert_exporter": "python",
|
|
286
312
|
"pygments_lexer": "ipython3",
|
|
287
|
-
"version": "3.
|
|
313
|
+
"version": "3.12.3"
|
|
288
314
|
}
|
|
289
315
|
},
|
|
290
316
|
"nbformat": 4,
|
|
@@ -271,7 +271,7 @@
|
|
|
271
271
|
" tgfu = GridFunction(fes)\n",
|
|
272
272
|
" tgfu.vec.data = PP*TU\n",
|
|
273
273
|
" \n",
|
|
274
|
-
"Draw(tgfu.components[0],clipping={\"z\":-1, \"dist\":-.11})"
|
|
274
|
+
"Draw(tgfu.components[0],clipping={\"z\":-1, \"dist\":-.11, \"function\":True})"
|
|
275
275
|
]
|
|
276
276
|
},
|
|
277
277
|
{
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
"name": "python",
|
|
303
303
|
"nbconvert_exporter": "python",
|
|
304
304
|
"pygments_lexer": "ipython3",
|
|
305
|
-
"version": "3.
|
|
305
|
+
"version": "3.12.3"
|
|
306
306
|
}
|
|
307
307
|
},
|
|
308
308
|
"nbformat": 4,
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"\\begin{align*}\n",
|
|
23
23
|
" \\begin{cases}\n",
|
|
24
24
|
" -\\Delta u - \\omega^2 u= 0 &\\text{ in } \\dom, \\\\\n",
|
|
25
|
-
" \\frac{\\partial u}{\\partial \\nx} + i u = g &\\text{ on } \\partial \\dom.\n",
|
|
25
|
+
" \\frac{\\partial u}{\\partial \\nx} + i\\omega u = g &\\text{ on } \\partial \\dom.\n",
|
|
26
26
|
" \\end{cases}\n",
|
|
27
27
|
"\\end{align*}\n",
|
|
28
28
|
"$$\n"
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"name": "python",
|
|
174
174
|
"nbconvert_exporter": "python",
|
|
175
175
|
"pygments_lexer": "ipython3",
|
|
176
|
-
"version": "3.
|
|
176
|
+
"version": "3.12.3"
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
179
|
"nbformat": 4,
|
|
@@ -25,20 +25,24 @@
|
|
|
25
25
|
"1. [Notebook](laplace.ipynb) introduces the Trefftz space in NGSolve alongside a Trefftz-DG method using harmonic polynomials to solve the Laplace problem.\n",
|
|
26
26
|
"2. [Notebook](helmholtz.ipynb) presents plane waves for the Helmholtz equation.\n",
|
|
27
27
|
"3. [Notebook](twave.ipynb) presents the space-time DG Trefftz method for the acoustic wave equation on meshes Cartesian in time.\n",
|
|
28
|
-
"4. [Notebook](tunfitted.ipynb) presents the Trefftz method on unfitted geometries using ngsxfem.\n",
|
|
29
28
|
"\n",
|
|
30
|
-
"### Advanced Trefftz methods for the acoustic wave equation\n",
|
|
31
29
|
"\n",
|
|
30
|
+
"### Quasi-Trefftz methods\n",
|
|
31
|
+
"\n",
|
|
32
|
+
"4. [Notebook](qtelliptic.ipynb) presents the quasi-Trefftz DG method for the diffusion-advection-reaction equation with piecewise-smooth coefficients and right-hand side.\n",
|
|
32
33
|
"5. [Notebook](qtwave.ipynb) presents quasi-Trefftz functions that are used for the wave equation with piecewise-smooth wavespeed.\n",
|
|
33
|
-
"6. [Notebook](twavetents.ipynb) shows how to use the Trefftz and quasi-Trefftz methods with tent-pitched meshes.\n",
|
|
34
34
|
"\n",
|
|
35
35
|
"### Embedded Trefftz methods\n",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
36
|
+
"6. [Notebook](embTrefftz.ipynb) presents the embedded Trefftz method\n",
|
|
37
|
+
"7. [Notebook](embTrefftz-poi.ipynb) for inhomogeneous problems\n",
|
|
38
|
+
"8. [Notebook](embTrefftz-helm.ipynb) for the Helmholtz problem\n",
|
|
39
|
+
"9. [Notebook](embTrefftz-wave.ipynb) for the acoustic wave equation\n",
|
|
40
|
+
"10. [Notebook](embTrefftz-adv.ipynb) for advection\n",
|
|
41
|
+
"11. [Notebook](embTrefftz-stokes.ipynb) for the Stokes problem\n",
|
|
42
|
+
"\n",
|
|
43
|
+
"### Trefftz methods and ...\n",
|
|
44
|
+
"12. [Notebook](tunfitted.ipynb) presents the Trefftz method on unfitted geometries using *ngsxfem*.\n",
|
|
45
|
+
"13. [Notebook](twavetents.ipynb) shows how to use the Trefftz and quasi-Trefftz methods with tent-pitched meshes using *ngstents*."
|
|
42
46
|
]
|
|
43
47
|
}
|
|
44
48
|
],
|
|
@@ -58,7 +62,7 @@
|
|
|
58
62
|
"name": "python",
|
|
59
63
|
"nbconvert_exporter": "python",
|
|
60
64
|
"pygments_lexer": "ipython3",
|
|
61
|
-
"version": "3.
|
|
65
|
+
"version": "3.12.3"
|
|
62
66
|
}
|
|
63
67
|
},
|
|
64
68
|
"nbformat": 4,
|