ngstrefftz 0.3.2505.dev26__tar.gz → 0.3.2506.dev2__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.2505.dev26 → ngstrefftz-0.3.2506.dev2}/CMakeLists.txt +22 -4
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/PKG-INFO +2 -2
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/_version.py +3 -3
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/requirements.txt +2 -2
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/pyproject.toml +2 -2
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/embtrefftz.cpp +29 -41
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/embtrefftz.hpp +1 -3
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.clang-format +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/fix_auditwheel_policy.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/pyodide/Dockerfile +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/pyodide/build_in_docker.sh +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/pyodide/merge.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/pyodide/requirements.txt +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.gitignore +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.gitmodules +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/CONTRIBUTING.md +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/Dockerfile +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/LICENSE +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/README.md +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/Doxyfile.in +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/_static/breadcrumbs.html +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/_static/css/mytheme.css +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/conf.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/contrib.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/docu.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/index.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/intro.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz-adv.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz-helm.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz-poi.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz-stokes.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz-wave.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/embTrefftz.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/helmholtz.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/index.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/laplace.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/qtelliptic.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/qtwave.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/tunfitted.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/twave.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/notebooks/twavetents.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/paper/codemeta.json +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/paper/paper.bib +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/paper/paper.md +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/.github/workflows/build.yml +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/.gitignore +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/README.md +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/advection/Advection_Periodic_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/advection/advection2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/advection/advection2d_periodic.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/burgers/Burgers_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/burgers/burgers1d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/burgers/burgers2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/euler/Euler_Clipping.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/euler/euler2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/euler/mach3_windtunnel.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/maxwell/maxwell3d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/symbolic_advection2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/symbolic_burgers.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/symbolic_euler.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/symbolic_wave.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/symbolic_wave1d_interface.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/symbolic/wave_penetrable_cylinder.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/tents/draw3dtent.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/tents/draw3dvertex.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/wave/horn.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/wave/wave2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/wave/wave2d_timedepbc.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/demo/wave/wave3d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/BurgersMTP.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/INDEX.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/StartPitching.ipynb +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/_config.yml +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/_toc.yml +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/conf.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/figs/CausalityCond.png +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/figs/dag.png +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/figs/map.png +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/figs/subtents.png +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/index.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/intro.md +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/readme.rst +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/requirements.txt +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/py/__init__.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/py/conslaw/__init__.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/py/utils/__init__.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/py/utils/_drawtents.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/py/utils/_drawtents2d.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/pyproject.toml +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/CMakeLists.txt +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/advection.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/burgers.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/concurrentqueue.h +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/conservationlaw.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/euler.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/maxwell.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/ngsolve_addon.cmake +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/paralleldepend.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/python_conslaw.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/python_tents.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/symbolic.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tconservationlaw_tp_impl.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tents.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tents.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tentsolver.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tentsolver_impl.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/vis3d.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/vis3d.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/wave.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/tests/test_burgers_2D.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/tests/test_causal_tents.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/tests/test_conslaw.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/tests/test_tent_height_2D.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/tests/test_tentlayers.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/__init__.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/airy.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/boxintegral.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/boxintegral.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/condensedg.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/condensedg.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/diffopmapped.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/mesh1dtents.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/mesh1dtents.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/monomialfespace.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/monomialfespace.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/ngsttd.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/planewavefe.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/planewavefe.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/pufe.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/pufe.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/pufespace.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/pufespace.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/python_trefftz.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/scalarmappedfe.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/scalarmappedfe.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/specialcoefficientfunction.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/specialcoefficientfunction.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/specialintegrator.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/specialintegrator.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/trefftzfespace.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/trefftzfespace.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/twavetents.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/src/twavetents.hpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/boxint.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/conforming_trefftz.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/dg.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/embt.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/embtrefftz_gtest.cpp +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/tents.py +0 -0
- {ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/test/trefftz.py +0 -0
|
@@ -10,8 +10,26 @@ if(NOT WIN32)
|
|
|
10
10
|
set(BoldWhite "${Esc}[1;37m")
|
|
11
11
|
endif()
|
|
12
12
|
|
|
13
|
+
function(download_if_possible url file)
|
|
14
|
+
get_filename_component(dir "${file}" DIRECTORY)
|
|
15
|
+
file(MAKE_DIRECTORY "${dir}")
|
|
16
|
+
file(DOWNLOAD "${url}" "${file}.tmp" STATUS status SHOW_PROGRESS TIMEOUT 10)
|
|
17
|
+
list(GET status 0 code)
|
|
18
|
+
if(NOT code EQUAL 0)
|
|
19
|
+
if(EXISTS "${file}")
|
|
20
|
+
message(WARNING "offline: using existing ${file}")
|
|
21
|
+
else()
|
|
22
|
+
message(FATAL_ERROR "failed to download ${file}")
|
|
23
|
+
endif()
|
|
24
|
+
else()
|
|
25
|
+
file(RENAME "${file}.tmp" "${file}")
|
|
26
|
+
endif()
|
|
27
|
+
endfunction()
|
|
28
|
+
|
|
13
29
|
set(ngsolve_addon_commit_hash refs/heads/main)
|
|
14
|
-
|
|
30
|
+
download_if_possible (
|
|
31
|
+
"https://raw.githubusercontent.com/NGSolve/ngsolve-addon-template/${ngsolve_addon_commit_hash}/ngsolve_addon.cmake"
|
|
32
|
+
"${CMAKE_BINARY_DIR}/cmake_modules/ngsolve_addon.cmake")
|
|
15
33
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_BINARY_DIR}/cmake_modules)
|
|
16
34
|
|
|
17
35
|
### ngstrefftz
|
|
@@ -76,9 +94,9 @@ set(NGSTREFFTZ_USE_LAPACK ${NGSOLVE_USE_LAPACK} CACHE BOOL "Try to use lapack fr
|
|
|
76
94
|
|
|
77
95
|
### link LAPACK or MKL if possible
|
|
78
96
|
if (NGSTREFFTZ_USE_MKL)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
download_if_possible(
|
|
98
|
+
"https://raw.githubusercontent.com/NGSolve/ngsolve/master/cmake/cmake_modules/FindMKL.cmake"
|
|
99
|
+
"${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
|
|
82
100
|
|
|
83
101
|
#file(COPY ${CMAKE_SOURCE_DIR}/FindMKL.cmake DESTINATION
|
|
84
102
|
#"${CMAKE_BINARY_DIR}/cmake_modules/FindMKL.cmake")
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: ngstrefftz
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2506.dev2
|
|
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.9
|
|
10
|
-
Requires-Dist: ngsolve==6.2.
|
|
10
|
+
Requires-Dist: ngsolve==6.2.2506
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
12
|
|
|
13
13
|
# NGSTrefftz
|
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 3,
|
|
31
|
+
__version__ = version = '0.3.2506.dev2'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 3, 2506, 'dev2')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g6778f15df'
|
|
@@ -9,7 +9,7 @@ classifiers = [
|
|
|
9
9
|
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
|
|
10
10
|
]
|
|
11
11
|
dependencies = [
|
|
12
|
-
"ngsolve==6.2.
|
|
12
|
+
"ngsolve==6.2.2506",
|
|
13
13
|
]
|
|
14
14
|
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@ Documentation = "https://paulst.github.io/NGSTrefftz"
|
|
|
18
18
|
Repository = "https://github.com/PaulSt/ngstrefftz"
|
|
19
19
|
|
|
20
20
|
[build-system]
|
|
21
|
-
requires = ["ngsolve==6.2.
|
|
21
|
+
requires = ["ngsolve==6.2.2506",
|
|
22
22
|
"scikit-build-core>=0.9.0",
|
|
23
23
|
"pybind11_stubgen",
|
|
24
24
|
"setuptools>=45",
|
|
@@ -691,7 +691,8 @@ namespace ngcomp
|
|
|
691
691
|
Vector<double> sing_val_max;
|
|
692
692
|
Vector<double> sing_val_min;
|
|
693
693
|
std::atomic<size_t> active_elements = 0;
|
|
694
|
-
double
|
|
694
|
+
double conformity_residual = 0.0;
|
|
695
|
+
double trefftz_residual = 0.0;
|
|
695
696
|
|
|
696
697
|
auto ma = fes->GetMeshAccess ();
|
|
697
698
|
const size_t num_elements = ma->GetNE (VOL);
|
|
@@ -759,15 +760,16 @@ namespace ngcomp
|
|
|
759
760
|
size_t ndof = dofs.Size ();
|
|
760
761
|
size_t ndof_test = dofs_test.Size ();
|
|
761
762
|
size_t ndof_conforming = dofs_conforming.Size ();
|
|
762
|
-
FlatMatrix<SCAL> elmat_A (ndof_test + ndof_conforming, ndof, lh);
|
|
763
|
-
auto [elmat_Cl, elmat_L] = elmat_A.SplitRows (ndof_conforming);
|
|
764
763
|
|
|
764
|
+
FlatMatrix<SCAL> elmat_A (ndof_test + ndof_conforming, ndof, lh);
|
|
765
765
|
FlatMatrix<SCAL> elmat_B (ndof_test + ndof_conforming,
|
|
766
766
|
ndof_conforming, lh);
|
|
767
|
+
Matrix<SCAL> elmat_A_copy;
|
|
767
768
|
elmat_A = static_cast<SCAL> (0.);
|
|
768
769
|
elmat_B = static_cast<SCAL> (0.);
|
|
769
770
|
|
|
770
|
-
//
|
|
771
|
+
// split conformity part
|
|
772
|
+
auto [elmat_Cl, elmat_L] = elmat_A.SplitRows (ndof_conforming);
|
|
771
773
|
auto elmat_Cr = elmat_B.Rows (ndof_conforming);
|
|
772
774
|
|
|
773
775
|
// the diff. operator L operates only on volume terms
|
|
@@ -838,8 +840,7 @@ namespace ngcomp
|
|
|
838
840
|
|
|
839
841
|
FlatMatrix<SCAL, ColMajor> UT (elmat_A.Height (), lh),
|
|
840
842
|
V (elmat_A.Width (), lh);
|
|
841
|
-
|
|
842
|
-
if (fes_conformity && check_conformity > 0)
|
|
843
|
+
if (stats)
|
|
843
844
|
elmat_A_copy = elmat_A;
|
|
844
845
|
getSVD<SCAL> (elmat_A, UT, V);
|
|
845
846
|
|
|
@@ -860,25 +861,8 @@ namespace ngcomp
|
|
|
860
861
|
// T_c solves A @ T_c = B,
|
|
861
862
|
elmat_Tc = elmat_A_inv * elmat_B;
|
|
862
863
|
|
|
863
|
-
double maxentry = 0.0;
|
|
864
|
-
if (fes_conformity && check_conformity > 0)
|
|
865
|
-
{
|
|
866
|
-
Matrix<SCAL> test = elmat_A_copy * elmat_Tc - elmat_B;
|
|
867
|
-
for (size_t i = 0; i < test.Height (); i++)
|
|
868
|
-
for (size_t j = 0; j < test.Width (); j++)
|
|
869
|
-
if (abs (test (i, j)) > maxentry)
|
|
870
|
-
maxentry = abs (test (i, j));
|
|
871
|
-
if (maxentry > check_conformity)
|
|
872
|
-
throw Exception ((std::stringstream{}
|
|
873
|
-
<< "too many conformity constraints in "
|
|
874
|
-
"Trefftz embedding, max entry: "
|
|
875
|
-
<< std::scientific << maxentry)
|
|
876
|
-
.str ());
|
|
877
|
-
}
|
|
878
|
-
|
|
879
864
|
// if (get_range)
|
|
880
865
|
// elmat_Tt = U.Cols (0, dofs.Size () - ndof_trefftz_i);
|
|
881
|
-
|
|
882
866
|
if (fes_ip)
|
|
883
867
|
{
|
|
884
868
|
FlatMatrix<SCAL, ColMajor> Vtemp (V.Width (), V.Height (), lh);
|
|
@@ -930,18 +914,26 @@ namespace ngcomp
|
|
|
930
914
|
sing_val_max[i] = max (sing_val_max[i], abs (diag (i)));
|
|
931
915
|
sing_val_min[i] = min (sing_val_min[i], abs (diag (i)));
|
|
932
916
|
}
|
|
933
|
-
|
|
934
|
-
|
|
917
|
+
Matrix<SCAL> test = elmat_A_copy * elmat_Tc - elmat_B;
|
|
918
|
+
for (auto &cr : test.AsVector ())
|
|
919
|
+
if (abs (cr) > conformity_residual)
|
|
920
|
+
conformity_residual = abs (cr);
|
|
921
|
+
test = elmat_A_copy * elmat_Tt;
|
|
922
|
+
for (auto &tr : test.AsVector ())
|
|
923
|
+
if (abs (tr) > trefftz_residual)
|
|
924
|
+
trefftz_residual = abs (tr);
|
|
935
925
|
}
|
|
936
926
|
});
|
|
927
|
+
|
|
937
928
|
if (stats)
|
|
938
929
|
{
|
|
939
930
|
sing_val_avg /= active_elements.load ();
|
|
940
931
|
(*stats)["singavg"] = Vector<double> (sing_val_avg);
|
|
941
932
|
(*stats)["singmax"] = Vector<double> (sing_val_max);
|
|
942
933
|
(*stats)["singmin"] = Vector<double> (sing_val_min);
|
|
943
|
-
(*stats)["
|
|
944
|
-
= Vector<double> ({
|
|
934
|
+
(*stats)["conformity_residual"]
|
|
935
|
+
= Vector<double> ({ conformity_residual });
|
|
936
|
+
(*stats)["trefftz_residual"] = Vector<double> ({ trefftz_residual });
|
|
945
937
|
}
|
|
946
938
|
|
|
947
939
|
if constexpr (std::is_same_v<double, SCAL>)
|
|
@@ -964,13 +956,11 @@ namespace ngcomp
|
|
|
964
956
|
size_t _ndof_trefftz, double _eps, shared_ptr<FESpace> _fes,
|
|
965
957
|
shared_ptr<FESpace> _fes_test, shared_ptr<FESpace> _fes_conformity,
|
|
966
958
|
shared_ptr<SumOfIntegrals> _fes_ip, shared_ptr<BitArray> _ignoredofs,
|
|
967
|
-
shared_ptr<std::map<std::string, Vector<double>>> _stats
|
|
968
|
-
double _check_conformity)
|
|
959
|
+
shared_ptr<std::map<std::string, Vector<double>>> _stats)
|
|
969
960
|
: top (_top), trhs (_trhs), cop (_cop), crhs (_crhs), fes_ip (_fes_ip),
|
|
970
|
-
ignoredofs (_ignoredofs), stats (_stats)
|
|
971
|
-
check_conformity (_check_conformity)
|
|
961
|
+
ignoredofs (_ignoredofs), stats (_stats)
|
|
972
962
|
{
|
|
973
|
-
if (_ndof_trefftz ==
|
|
963
|
+
if (_ndof_trefftz == std::numeric_limits<size_t>::max ())
|
|
974
964
|
ndof_trefftz = _eps;
|
|
975
965
|
else if (_eps == 0.0)
|
|
976
966
|
ndof_trefftz = _ndof_trefftz;
|
|
@@ -1526,15 +1516,14 @@ void ExportEmbTrefftz (py::module m)
|
|
|
1526
1516
|
shared_ptr<FESpace> fes_conformity,
|
|
1527
1517
|
shared_ptr<SumOfIntegrals> fes_ip,
|
|
1528
1518
|
shared_ptr<BitArray> ignoredofs,
|
|
1529
|
-
optional<py::dict> pystats
|
|
1519
|
+
optional<py::dict> pystats) {
|
|
1530
1520
|
shared_ptr<std::map<std::string, Vector<double>>> stats = nullptr;
|
|
1531
1521
|
if (pystats)
|
|
1532
1522
|
stats = make_shared<std::map<std::string, Vector<double>>> ();
|
|
1533
1523
|
std::shared_ptr<TrefftzEmbedding> emb
|
|
1534
1524
|
= std::make_shared<TrefftzEmbedding> (
|
|
1535
1525
|
top, trhs, cop, crhs, ndof_trefftz, eps, fes, fes_test,
|
|
1536
|
-
fes_conformity, fes_ip, ignoredofs, stats
|
|
1537
|
-
check_conformity);
|
|
1526
|
+
fes_conformity, fes_ip, ignoredofs, stats);
|
|
1538
1527
|
if (pystats)
|
|
1539
1528
|
for (auto const &x : *stats)
|
|
1540
1529
|
(*pystats)[py::cast (x.first)] = py::cast (x.second);
|
|
@@ -1563,15 +1552,14 @@ void ExportEmbTrefftz (py::module m)
|
|
|
1563
1552
|
:param ignoredofs: BitArray of dofs from fes to be ignored in the embedding
|
|
1564
1553
|
:param stats: optional dictionary to store statistics about the singular values,
|
|
1565
1554
|
input dictionary is modified
|
|
1566
|
-
:param check_conformity: if > 0 checks the viability of the conformity constraint
|
|
1567
1555
|
)mydelimiter",
|
|
1568
1556
|
py::arg ("top") = nullptr, py::arg ("trhs") = nullptr,
|
|
1569
1557
|
py::arg ("cop") = nullptr, py::arg ("crhs") = nullptr,
|
|
1570
|
-
py::arg ("ndof_trefftz") =
|
|
1571
|
-
py::arg ("
|
|
1572
|
-
py::arg ("
|
|
1573
|
-
py::arg ("
|
|
1574
|
-
py::arg ("
|
|
1558
|
+
py::arg ("ndof_trefftz") = std::numeric_limits<size_t>::max (),
|
|
1559
|
+
py::arg ("eps") = 0.0, py::arg ("fes") = nullptr,
|
|
1560
|
+
py::arg ("fes_test") = nullptr, py::arg ("fes_conformity") = nullptr,
|
|
1561
|
+
py::arg ("fes_ip") = nullptr, py::arg ("ignoredofs") = nullptr,
|
|
1562
|
+
py::arg ("stats") = nullopt) // py::none ())
|
|
1575
1563
|
.def ("Embed",
|
|
1576
1564
|
static_cast<shared_ptr<BaseVector> (ngcomp::TrefftzEmbedding::*) (
|
|
1577
1565
|
const shared_ptr<const BaseVector>) const> (
|
|
@@ -39,7 +39,6 @@ namespace ngcomp
|
|
|
39
39
|
std::variant<size_t, double> ndof_trefftz;
|
|
40
40
|
|
|
41
41
|
shared_ptr<std::map<std::string, Vector<double>>> stats = nullptr;
|
|
42
|
-
const double check_conformity;
|
|
43
42
|
|
|
44
43
|
/// elmat = (elmat_conforming | elmat_trefftz)
|
|
45
44
|
Array<optional<Matrix<double>>> etmats;
|
|
@@ -74,8 +73,7 @@ namespace ngcomp
|
|
|
74
73
|
shared_ptr<SumOfIntegrals> _fes_ip = nullptr,
|
|
75
74
|
shared_ptr<BitArray> _ignoredofs = nullptr,
|
|
76
75
|
shared_ptr<std::map<std::string, Vector<double>>> _stats
|
|
77
|
-
= nullptr
|
|
78
|
-
double _check_conformity = 0.0);
|
|
76
|
+
= nullptr);
|
|
79
77
|
|
|
80
78
|
shared_ptr<BaseVector>
|
|
81
79
|
Embed (const shared_ptr<const BaseVector> tgfu) const;
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/fix_auditwheel_policy.py
RENAMED
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.github/workflows/pyodide/build_in_docker.sh
RENAMED
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/.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
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/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
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/.gitignore
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/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.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/_toc.yml
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/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.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/index.rst
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/docs/intro.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/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.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/euler.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
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tents.cpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/tents.hpp
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/vis3d.cpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/external_dependencies/ngstents/src/vis3d.hpp
RENAMED
|
File without changes
|
{ngstrefftz-0.3.2505.dev26 → ngstrefftz-0.3.2506.dev2}/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
|