ngstrefftz 0.3.2507.dev4__tar.gz → 0.3.2507.dev7__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.2507.dev4 → ngstrefftz-0.3.2507.dev7}/PKG-INFO +1 -1
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/_version.py +3 -3
- ngstrefftz-0.3.2507.dev7/src/tp0fespace.cpp +270 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/tp0fespace.hpp +21 -7
- ngstrefftz-0.3.2507.dev4/src/tp0fespace.cpp +0 -177
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.clang-format +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/Dockerfile +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/build_in_docker.sh +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/merge.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/requirements.txt +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.gitignore +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.gitmodules +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/CONTRIBUTING.md +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/Dockerfile +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/LICENSE +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/README.md +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/Doxyfile.in +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/_static/breadcrumbs.html +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/_static/css/mytheme.css +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/conf.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/contrib.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/docu.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/index.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/intro.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-helm.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-wave.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/helmholtz.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/index.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/laplace.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/qtelliptic.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/qtwave.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/tunfitted.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/twave.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/twavetents.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/paper/codemeta.json +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/paper/paper.bib +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/paper/paper.md +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/.gitignore +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/README.md +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/_config.yml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/_toc.yml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/conf.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/figs/map.png +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/index.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/intro.md +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/__init__.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/pyproject.toml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/advection.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/burgers.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/euler.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/ngsolve_addon.cmake +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tents.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tents.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/wave.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/pyproject.toml +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/__init__.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/airy.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/boxintegral.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/boxintegral.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/condensedg.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/condensedg.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/diffopmapped.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/embtrefftz.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/embtrefftz.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/mesh1dtents.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/mesh1dtents.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/monomialfespace.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/monomialfespace.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/ngsttd.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/planewavefe.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/planewavefe.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/pufe.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/pufe.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/pufespace.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/pufespace.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/python_trefftz.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/scalarmappedfe.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/scalarmappedfe.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/specialcoefficientfunction.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/specialcoefficientfunction.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/specialintegrator.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/specialintegrator.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/trefftzfespace.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/trefftzfespace.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/twavetents.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/src/twavetents.hpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/boxint.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/conforming_trefftz.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/dg.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/embt.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/embtrefftz_gtest.cpp +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/tents.py +0 -0
- {ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/test/trefftz.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: ngstrefftz
|
|
3
|
-
Version: 0.3.2507.
|
|
3
|
+
Version: 0.3.2507.dev7
|
|
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)
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.3.2507.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 3, 2507, '
|
|
31
|
+
__version__ = version = '0.3.2507.dev7'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 3, 2507, 'dev7')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gc1672b4a2'
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
#include <comp.hpp>
|
|
2
|
+
#include <python_comp.hpp>
|
|
3
|
+
#include "tp0fespace.hpp"
|
|
4
|
+
|
|
5
|
+
namespace ngcomp
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
void
|
|
9
|
+
TP0FE ::CalcShape (const IntegrationPoint &ip, BareSliceVector<> shape) const
|
|
10
|
+
{
|
|
11
|
+
double x = ip.Point ()[0], y = ip.Point ()[1];
|
|
12
|
+
double xi = (2 * x - 1);
|
|
13
|
+
double eta = (2 * y - 1);
|
|
14
|
+
|
|
15
|
+
if (zero_axis == 1)
|
|
16
|
+
swap (xi, eta);
|
|
17
|
+
|
|
18
|
+
size_t p = order;
|
|
19
|
+
size_t q = order - 2;
|
|
20
|
+
|
|
21
|
+
STACK_ARRAY (double, mem, p + q + 2);
|
|
22
|
+
double *polx = &mem[0];
|
|
23
|
+
double *poly = &mem[p + 1];
|
|
24
|
+
|
|
25
|
+
LegendrePolynomial (p, xi, polx);
|
|
26
|
+
LegendrePolynomial (q, eta, poly);
|
|
27
|
+
|
|
28
|
+
for (size_t i = 0, ii = 0; i <= p; i++)
|
|
29
|
+
for (size_t j = 0; j <= q; j++)
|
|
30
|
+
shape[ii++] = polx[i] * poly[j] * (1 - eta) * (1 + eta);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void TP0FE ::CalcDShape (const IntegrationPoint &ip,
|
|
34
|
+
BareSliceMatrix<> dshape) const
|
|
35
|
+
{
|
|
36
|
+
AutoDiff<2> x (ip.Point ()[0], 0);
|
|
37
|
+
AutoDiff<2> y (ip.Point ()[1], 1);
|
|
38
|
+
AutoDiff<2> xi = (2 * x - 1);
|
|
39
|
+
AutoDiff<2> eta = (2 * y - 1);
|
|
40
|
+
|
|
41
|
+
if (zero_axis == 1)
|
|
42
|
+
swap (xi, eta);
|
|
43
|
+
|
|
44
|
+
size_t p = order;
|
|
45
|
+
size_t q = order - 2;
|
|
46
|
+
|
|
47
|
+
STACK_ARRAY (AutoDiff<2>, mem, p + q + 2);
|
|
48
|
+
AutoDiff<2> *polx = &mem[0];
|
|
49
|
+
AutoDiff<2> *poly = &mem[p + 1];
|
|
50
|
+
|
|
51
|
+
LegendrePolynomial (p, xi, polx);
|
|
52
|
+
LegendrePolynomial (q, eta, poly);
|
|
53
|
+
|
|
54
|
+
for (size_t i = 0, ii = 0; i <= p; i++)
|
|
55
|
+
for (size_t j = 0; j <= q; j++)
|
|
56
|
+
{
|
|
57
|
+
AutoDiff<2> shape = polx[i] * poly[j] * (1 - eta) * (1 + eta);
|
|
58
|
+
dshape (ii, 0) = shape.DValue (0);
|
|
59
|
+
dshape (ii++, 1) = shape.DValue (1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
TP0FESpace ::TP0FESpace (shared_ptr<MeshAccess> ama, const Flags &flags)
|
|
64
|
+
: FESpace (ama, flags)
|
|
65
|
+
{
|
|
66
|
+
type = "TP0FESpace";
|
|
67
|
+
|
|
68
|
+
order = int (flags.GetNumFlag ("order", 3));
|
|
69
|
+
|
|
70
|
+
if (ma->GetDimension () == 2)
|
|
71
|
+
{
|
|
72
|
+
evaluator[VOL] = make_shared<T_DifferentialOperator<MyDiffOpId>> ();
|
|
73
|
+
flux_evaluator[VOL]
|
|
74
|
+
= make_shared<T_DifferentialOperator<MyDiffOpGradient>> ();
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
{
|
|
78
|
+
throw Exception ("TP0FESpace implemented only in 2D");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
DocInfo TP0FESpace ::GetDocu ()
|
|
83
|
+
{
|
|
84
|
+
auto docu = FESpace::GetDocu ();
|
|
85
|
+
return docu;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
int TP0FESpace ::LocalNDof (ELEMENT_TYPE eltype, int order) const
|
|
89
|
+
{
|
|
90
|
+
switch (eltype)
|
|
91
|
+
{
|
|
92
|
+
case ET_TRIG:
|
|
93
|
+
return (order - 1) * order / 2;
|
|
94
|
+
case ET_QUAD:
|
|
95
|
+
return (order + 1) * (order - 1);
|
|
96
|
+
default:
|
|
97
|
+
throw Exception ("TP0FESpace::LocalNDof: element type not supported");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
void TP0FESpace ::Update ()
|
|
102
|
+
{
|
|
103
|
+
FESpace::Update ();
|
|
104
|
+
if (order_policy == OLDSTYLE_ORDER)
|
|
105
|
+
order_policy = CONSTANT_ORDER;
|
|
106
|
+
|
|
107
|
+
nel = ma->GetNE ();
|
|
108
|
+
first_element_dof.SetSize (nel);
|
|
109
|
+
if (order_policy == CONSTANT_ORDER || order_inner.Size () == 0)
|
|
110
|
+
{
|
|
111
|
+
order_inner.SetSize0 ();
|
|
112
|
+
ndof = 0;
|
|
113
|
+
for (int i = 0; i < nel; i++)
|
|
114
|
+
{
|
|
115
|
+
first_element_dof[i] = ndof;
|
|
116
|
+
ndof += LocalNDof (ma->GetElement (ElementId (VOL, i)).GetType (),
|
|
117
|
+
this->order);
|
|
118
|
+
}
|
|
119
|
+
// ndof = LocalNDof (this->order) * nel;
|
|
120
|
+
SetNDof (ndof);
|
|
121
|
+
}
|
|
122
|
+
else if (order_policy == VARIABLE_ORDER)
|
|
123
|
+
{
|
|
124
|
+
ndof = 0;
|
|
125
|
+
for (int i = 0; i < nel; i++)
|
|
126
|
+
{
|
|
127
|
+
first_element_dof[i] = ndof;
|
|
128
|
+
ndof += LocalNDof (ma->GetElement (ElementId (VOL, i)).GetType (),
|
|
129
|
+
order_inner[i]);
|
|
130
|
+
}
|
|
131
|
+
SetNDof (ndof);
|
|
132
|
+
}
|
|
133
|
+
else
|
|
134
|
+
throw Exception ("TP0FESpace: invalid order policy");
|
|
135
|
+
|
|
136
|
+
UpdateCouplingDofArray ();
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
void TP0FESpace ::SetOrder (NodeId ni, int norder)
|
|
140
|
+
{
|
|
141
|
+
if (order_policy == CONSTANT_ORDER || order_policy == NODE_TYPE_ORDER)
|
|
142
|
+
throw Exception ("In TP0FESpace::SetOrder. Order policy is "
|
|
143
|
+
"constant or node-type!");
|
|
144
|
+
else if (order_policy == OLDSTYLE_ORDER)
|
|
145
|
+
order_policy = VARIABLE_ORDER;
|
|
146
|
+
|
|
147
|
+
if (order < 0)
|
|
148
|
+
order = 0;
|
|
149
|
+
|
|
150
|
+
if (CoDimension (ni.GetType (), ma->GetDimension ()) == 0)
|
|
151
|
+
{
|
|
152
|
+
if (order_inner.Size () == 0)
|
|
153
|
+
{
|
|
154
|
+
order_inner.SetSize (ma->GetNE ());
|
|
155
|
+
order_inner = this->order;
|
|
156
|
+
}
|
|
157
|
+
order_inner[ni.GetNr ()] = norder;
|
|
158
|
+
}
|
|
159
|
+
else
|
|
160
|
+
throw Exception (
|
|
161
|
+
"TP0FESpace::SetOrder requires NodeType of codimension 0!");
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
int TP0FESpace ::GetOrder (NodeId ni) const
|
|
165
|
+
{
|
|
166
|
+
if (CoDimension (ni.GetType (), ma->GetDimension ()) == 0
|
|
167
|
+
&& ni.GetNr () < order_inner.Size ())
|
|
168
|
+
return order_inner[ni.GetNr ()];
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
void TP0FESpace ::GetDofNrs (ElementId ei, Array<DofId> &dnums) const
|
|
173
|
+
{
|
|
174
|
+
dnums.SetSize (0);
|
|
175
|
+
if (!DefinedOn (ei) || ei.VB () != VOL)
|
|
176
|
+
return;
|
|
177
|
+
int first_dof = first_element_dof[ei.Nr ()];
|
|
178
|
+
int local_ndof;
|
|
179
|
+
if (order_inner.Size () > 0)
|
|
180
|
+
local_ndof
|
|
181
|
+
= LocalNDof (ma->GetElement (ei).GetType (), order_inner[ei.Nr ()]);
|
|
182
|
+
else
|
|
183
|
+
local_ndof = LocalNDof (ma->GetElement (ei).GetType (), this->order);
|
|
184
|
+
for (int j = first_dof; j < first_dof + local_ndof; j++)
|
|
185
|
+
dnums.Append (j);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
void TP0FESpace ::UpdateCouplingDofArray ()
|
|
189
|
+
{
|
|
190
|
+
ctofdof.SetSize (ndof);
|
|
191
|
+
for (auto i : Range (ma->GetNE ()))
|
|
192
|
+
{
|
|
193
|
+
bool definedon = DefinedOn (ElementId (VOL, i));
|
|
194
|
+
Array<DofId> dofs;
|
|
195
|
+
GetDofNrs (i, dofs);
|
|
196
|
+
for (auto r : dofs)
|
|
197
|
+
ctofdof[r] = definedon ? LOCAL_DOF : UNUSED_DOF;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
FiniteElement &TP0FESpace ::GetFE (ElementId ei, Allocator &alloc) const
|
|
202
|
+
{
|
|
203
|
+
|
|
204
|
+
Ngs_Element ngel = ma->GetElement (ei);
|
|
205
|
+
ELEMENT_TYPE eltype = ngel.GetType ();
|
|
206
|
+
int D = ma->GetDimension ();
|
|
207
|
+
int order = order_inner.Size () > 0 ? order_inner[ei.Nr ()] : this->order;
|
|
208
|
+
|
|
209
|
+
if (ei.IsVolume ())
|
|
210
|
+
{
|
|
211
|
+
if (D == 2)
|
|
212
|
+
switch (eltype)
|
|
213
|
+
{
|
|
214
|
+
case ET_QUAD:
|
|
215
|
+
{
|
|
216
|
+
ElementTransformation &trafo = ma->GetTrafo (ei, alloc);
|
|
217
|
+
IntegrationPoint ip;
|
|
218
|
+
Mat<2, 2> jac;
|
|
219
|
+
trafo.CalcJacobian (ip, jac);
|
|
220
|
+
double xscale = L2Norm (jac.Col (0));
|
|
221
|
+
double yscale = L2Norm (jac.Col (1));
|
|
222
|
+
int zero_axis = yscale > xscale ? 1 : 0;
|
|
223
|
+
|
|
224
|
+
return *(new (alloc)
|
|
225
|
+
TP0FE (LocalNDof (ET_QUAD, order), order,
|
|
226
|
+
IVec<4> (ngel.Vertices ()), zero_axis));
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
case ET_TRIG:
|
|
230
|
+
{
|
|
231
|
+
Ngs_Element ngel
|
|
232
|
+
= ma->GetElement<ET_trait<ET_TRIG>::DIM, VOL> (ei.Nr ());
|
|
233
|
+
L2HighOrderFE<ET_TRIG> *hofe
|
|
234
|
+
= new (alloc) L2HighOrderFE<ET_TRIG> ();
|
|
235
|
+
hofe->SetVertexNumbers (ngel.vertices);
|
|
236
|
+
hofe->L2HighOrderFE<ET_TRIG>::SetOrder (order - 2);
|
|
237
|
+
hofe->L2HighOrderFE<ET_TRIG>::ComputeNDof ();
|
|
238
|
+
return *hofe;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
default:
|
|
242
|
+
throw Exception ("eltype not supported in TP0FE");
|
|
243
|
+
}
|
|
244
|
+
else
|
|
245
|
+
throw Exception ("dimension not supported in TP0FE");
|
|
246
|
+
}
|
|
247
|
+
try
|
|
248
|
+
{
|
|
249
|
+
return SwitchET<ET_POINT, ET_SEGM, ET_TRIG, ET_QUAD> (
|
|
250
|
+
eltype, [&alloc] (auto et) -> FiniteElement & {
|
|
251
|
+
return *new (alloc) DummyFE<et.ElementType ()>;
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
catch (Exception &e)
|
|
255
|
+
{
|
|
256
|
+
throw Exception ("illegal element type in Trefftz::GetSurfaceFE");
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
static RegisterFESpace<TP0FESpace> initifes ("TP0FESpace");
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
#ifdef NGS_PYTHON
|
|
264
|
+
void ExportTP0FESpace (py::module m)
|
|
265
|
+
{
|
|
266
|
+
using namespace ngcomp;
|
|
267
|
+
|
|
268
|
+
ExportFESpace<TP0FESpace> (m, "TP0FESpace");
|
|
269
|
+
}
|
|
270
|
+
#endif // NGS_PYTHON
|
|
@@ -37,12 +37,20 @@ namespace ngcomp
|
|
|
37
37
|
MAT &mat, LocalHeap &lh)
|
|
38
38
|
{
|
|
39
39
|
HeapReset hr (lh);
|
|
40
|
-
Cast (fel).CalcShape (mip.IP (), mat.Row (0));
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
// Cast (fel).CalcShape (mip.IP (), mat.Row (0));
|
|
41
|
+
switch (fel.ElementType ())
|
|
42
|
+
{
|
|
43
|
+
case ET_QUAD:
|
|
44
|
+
static_cast<const TP0FE &> (fel).CalcShape (mip.IP (), mat.Row (0));
|
|
45
|
+
break;
|
|
46
|
+
case ET_TRIG:
|
|
47
|
+
static_cast<const L2HighOrderFE<ET_TRIG> &> (fel).CalcShape (
|
|
48
|
+
mip.IP (), mat.Row (0));
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
throw Exception ("MyDiffOpId: " + ToString (fel.ElementType ())
|
|
52
|
+
+ " not supported");
|
|
53
|
+
}
|
|
46
54
|
}
|
|
47
55
|
};
|
|
48
56
|
|
|
@@ -75,8 +83,11 @@ namespace ngcomp
|
|
|
75
83
|
|
|
76
84
|
class TP0FESpace : public FESpace
|
|
77
85
|
{
|
|
78
|
-
int local_ndof;
|
|
79
86
|
int nel;
|
|
87
|
+
Array<int> order_inner;
|
|
88
|
+
Array<int> first_element_dof;
|
|
89
|
+
|
|
90
|
+
int LocalNDof (ELEMENT_TYPE eltype, int order) const;
|
|
80
91
|
|
|
81
92
|
public:
|
|
82
93
|
TP0FESpace (shared_ptr<MeshAccess> ama, const Flags &flags);
|
|
@@ -88,6 +99,9 @@ namespace ngcomp
|
|
|
88
99
|
void Update () override;
|
|
89
100
|
virtual void UpdateCouplingDofArray () override;
|
|
90
101
|
|
|
102
|
+
virtual void SetOrder (NodeId ni, int norder) override;
|
|
103
|
+
virtual int GetOrder (NodeId ni) const override;
|
|
104
|
+
|
|
91
105
|
void GetDofNrs (ElementId ei, Array<DofId> &dnums) const override;
|
|
92
106
|
FiniteElement &GetFE (ElementId ei, Allocator &alloc) const override;
|
|
93
107
|
};
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
#include <comp.hpp>
|
|
2
|
-
#include <python_comp.hpp>
|
|
3
|
-
#include "tp0fespace.hpp"
|
|
4
|
-
|
|
5
|
-
namespace ngcomp
|
|
6
|
-
{
|
|
7
|
-
|
|
8
|
-
void
|
|
9
|
-
TP0FE ::CalcShape (const IntegrationPoint &ip, BareSliceVector<> shape) const
|
|
10
|
-
{
|
|
11
|
-
double x = ip.Point ()[0], y = ip.Point ()[1];
|
|
12
|
-
double xi = (2 * x - 1);
|
|
13
|
-
double eta = (2 * y - 1);
|
|
14
|
-
|
|
15
|
-
if (zero_axis == 1)
|
|
16
|
-
swap (xi, eta);
|
|
17
|
-
|
|
18
|
-
size_t p = order;
|
|
19
|
-
size_t q = order - 2;
|
|
20
|
-
|
|
21
|
-
STACK_ARRAY (double, mem, p + q + 2);
|
|
22
|
-
double *polx = &mem[0];
|
|
23
|
-
double *poly = &mem[p + 1];
|
|
24
|
-
|
|
25
|
-
LegendrePolynomial (p, xi, polx);
|
|
26
|
-
LegendrePolynomial (q, eta, poly);
|
|
27
|
-
|
|
28
|
-
for (size_t i = 0, ii = 0; i <= p; i++)
|
|
29
|
-
for (size_t j = 0; j <= q; j++)
|
|
30
|
-
shape[ii++] = polx[i] * poly[j] * (1 - eta) * (1 + eta);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
void TP0FE ::CalcDShape (const IntegrationPoint &ip,
|
|
34
|
-
BareSliceMatrix<> dshape) const
|
|
35
|
-
{
|
|
36
|
-
AutoDiff<2> x (ip.Point ()[0], 0);
|
|
37
|
-
AutoDiff<2> y (ip.Point ()[1], 1);
|
|
38
|
-
AutoDiff<2> sigma[4]
|
|
39
|
-
= { (1 - x) + (1 - y), x + (1 - y), x + y, (1 - x) + y };
|
|
40
|
-
|
|
41
|
-
IVec<4> f = GetFaceSort (0, vnums);
|
|
42
|
-
|
|
43
|
-
AutoDiff<2> xi = sigma[f[0]] - sigma[f[1]];
|
|
44
|
-
AutoDiff<2> eta = sigma[f[0]] - sigma[f[3]];
|
|
45
|
-
if (zero_axis == 1)
|
|
46
|
-
swap (xi, eta);
|
|
47
|
-
|
|
48
|
-
size_t p = order;
|
|
49
|
-
size_t q = order - 2;
|
|
50
|
-
|
|
51
|
-
STACK_ARRAY (AutoDiff<2>, mem, p + q + 2);
|
|
52
|
-
AutoDiff<2> *polx = &mem[0];
|
|
53
|
-
AutoDiff<2> *poly = &mem[p + 1];
|
|
54
|
-
|
|
55
|
-
LegendrePolynomial (p, xi, polx);
|
|
56
|
-
LegendrePolynomial (q, eta, poly);
|
|
57
|
-
|
|
58
|
-
for (size_t i = 0, ii = 0; i <= p; i++)
|
|
59
|
-
for (size_t j = 0; j <= q; j++)
|
|
60
|
-
{
|
|
61
|
-
AutoDiff<2> shape = polx[i] * poly[j] * (1 + eta) * (1 - eta);
|
|
62
|
-
dshape (ii, 0) = shape.DValue (0);
|
|
63
|
-
dshape (ii++, 1) = shape.DValue (1);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
TP0FESpace ::TP0FESpace (shared_ptr<MeshAccess> ama, const Flags &flags)
|
|
68
|
-
: FESpace (ama, flags)
|
|
69
|
-
{
|
|
70
|
-
type = "TP0FESpace";
|
|
71
|
-
|
|
72
|
-
order = int (flags.GetNumFlag ("order", 3));
|
|
73
|
-
local_ndof = (order + 1) * (order - 1);
|
|
74
|
-
|
|
75
|
-
if (ma->GetDimension () == 2)
|
|
76
|
-
{
|
|
77
|
-
evaluator[VOL] = make_shared<T_DifferentialOperator<MyDiffOpId>> ();
|
|
78
|
-
flux_evaluator[VOL]
|
|
79
|
-
= make_shared<T_DifferentialOperator<MyDiffOpGradient>> ();
|
|
80
|
-
}
|
|
81
|
-
else
|
|
82
|
-
{
|
|
83
|
-
throw Exception ("TP0FESpace implemented only in 2D");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
DocInfo TP0FESpace ::GetDocu ()
|
|
88
|
-
{
|
|
89
|
-
auto docu = FESpace::GetDocu ();
|
|
90
|
-
return docu;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
void TP0FESpace ::Update ()
|
|
94
|
-
{
|
|
95
|
-
FESpace::Update ();
|
|
96
|
-
nel = ma->GetNE ();
|
|
97
|
-
ndof = local_ndof * nel;
|
|
98
|
-
SetNDof (ndof);
|
|
99
|
-
UpdateCouplingDofArray ();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
void TP0FESpace ::GetDofNrs (ElementId ei, Array<DofId> &dnums) const
|
|
103
|
-
{
|
|
104
|
-
dnums.SetSize (0);
|
|
105
|
-
if (!DefinedOn (ei) || ei.VB () != VOL)
|
|
106
|
-
return;
|
|
107
|
-
for (size_t j = ei.Nr () * local_ndof; j < local_ndof * (ei.Nr () + 1);
|
|
108
|
-
j++)
|
|
109
|
-
dnums.Append (j);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
void TP0FESpace ::UpdateCouplingDofArray ()
|
|
113
|
-
{
|
|
114
|
-
ctofdof.SetSize (ndof);
|
|
115
|
-
for (auto i : Range (ma->GetNE ()))
|
|
116
|
-
{
|
|
117
|
-
bool definedon = DefinedOn (ElementId (VOL, i));
|
|
118
|
-
Array<DofId> dofs;
|
|
119
|
-
GetDofNrs (i, dofs);
|
|
120
|
-
for (auto r : dofs)
|
|
121
|
-
ctofdof[r] = definedon ? LOCAL_DOF : UNUSED_DOF;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
FiniteElement &TP0FESpace ::GetFE (ElementId ei, Allocator &alloc) const
|
|
126
|
-
{
|
|
127
|
-
|
|
128
|
-
Ngs_Element ngel = ma->GetElement (ei);
|
|
129
|
-
ELEMENT_TYPE eltype = ngel.GetType ();
|
|
130
|
-
int D = ma->GetDimension ();
|
|
131
|
-
|
|
132
|
-
if (ei.IsVolume ())
|
|
133
|
-
{
|
|
134
|
-
switch (D)
|
|
135
|
-
{
|
|
136
|
-
case 2:
|
|
137
|
-
{
|
|
138
|
-
ElementTransformation &trafo = ma->GetTrafo (ei, alloc);
|
|
139
|
-
IntegrationPoint ip;
|
|
140
|
-
Mat<2, 2> jac;
|
|
141
|
-
trafo.CalcJacobian (ip, jac);
|
|
142
|
-
double xscale = L2Norm (jac.Col (0));
|
|
143
|
-
double yscale = L2Norm (jac.Col (1));
|
|
144
|
-
|
|
145
|
-
int zero_axis = yscale > xscale ? 1 : 0;
|
|
146
|
-
return *(new (alloc) TP0FE (
|
|
147
|
-
local_ndof, order, IVec<4> (ngel.Vertices ()), zero_axis));
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
default:
|
|
151
|
-
throw Exception ("dimension not supported in TP0FE");
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
try
|
|
155
|
-
{
|
|
156
|
-
return SwitchET<ET_POINT, ET_SEGM, ET_TRIG, ET_QUAD> (
|
|
157
|
-
eltype, [&alloc] (auto et) -> FiniteElement & {
|
|
158
|
-
return *new (alloc) DummyFE<et.ElementType ()>;
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
catch (Exception &e)
|
|
162
|
-
{
|
|
163
|
-
throw Exception ("illegal element type in Trefftz::GetSurfaceFE");
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
static RegisterFESpace<TP0FESpace> initifes ("TP0FESpace");
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
#ifdef NGS_PYTHON
|
|
171
|
-
void ExportTP0FESpace (py::module m)
|
|
172
|
-
{
|
|
173
|
-
using namespace ngcomp;
|
|
174
|
-
|
|
175
|
-
ExportFESpace<TP0FESpace> (m, "TP0FESpace");
|
|
176
|
-
}
|
|
177
|
-
#endif // NGS_PYTHON
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/fix_auditwheel_policy.py
RENAMED
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/build_in_docker.sh
RENAMED
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/.github/workflows/pyodide/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/docs/notebooks/embTrefftz-stokes.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/.gitignore
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/_toc.yml
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/conf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/index.rst
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/intro.md
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/docs/readme.rst
RENAMED
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/py/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/burgers.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/euler.cpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/maxwell.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tents.cpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/tents.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/vis3d.cpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/vis3d.hpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2507.dev4 → ngstrefftz-0.3.2507.dev7}/external_dependencies/ngstents/src/wave.cpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|