`NGSTrefftz`

`NGSTrefftz`: Add-on to NGSolve for Trefftz methods - Published in JOSS (2022)

https://github.com/paulst/ngstrefftz

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

finite-element-method numerical-methods open-source trefftz-methods
Last synced: 6 months ago · JSON representation

Repository

Add-On to NGSolve for Trefftz methods

Basic Info
Statistics
  • Stars: 15
  • Watchers: 3
  • Forks: 4
  • Open Issues: 0
  • Releases: 28
Topics
finite-element-method numerical-methods open-source trefftz-methods
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License

README.md

NGSTrefftz

an add-on to NGSolve for Trefftz methods

Binder Docker Image Version (latest semver) PyPI GitHub Workflow Status status docs

NGSTrefftz provides a framework to implement Trefftz finite element spaces for NGSolve, with several Trefftz spaces already implemented. Additionally, Trefftz-DG on tent-pitched meshes for the acoustic wave equation is implemented using meshes provided by ngstents. Furthermore, the package includes an implementation of the embedded Trefftz method.

Try it out!

You can try out some jupyter notebooks: * Launch the Binder here:
Binder * Or run the docker locally (you need to have docker installed):

bash git clone https://github.com/PaulSt/NGSTrefftz cd NGSTrefftz && docker build -t ngstrefftz_jupyter . docker run -p 8888:8888 ngstrefftz_jupyter

Installing the package

You can either: * install using pip

bash pip install ngstrefftz

  • or build from source

bash git clone --recursive https://github.com/PaulSt/NGSTrefftz mkdir ./NGSTrefftz/make && cd ./NGSTrefftz/make cmake ../ && make install

Dependencies

  • if you are using pip to install the package you can install the newest ngsolve and other dependencies using bash pip install ngsolve --pre
  • if you build the package from source the following software needs to be installed
    • cmake >= 3.1
    • gcc >= 9 or clang >= 10
    • lapack >= 3.9 (required to access the newest features)
    • ngsolve >= 6.2 (to access the newest features the nightly version of NGSolve works best)

News

⚠️ Apr, 2025: TrefftzEmbedding has a new interface, please check the documentation for details.

🚀 Jul, 2024: Conforming Trefftz embedding implementation by @johann-cm

⚠️ Oct, 2022: With v0.2.0 the git history has undergone a major cleanup, please make sure to clone the repo anew.

🚀 Oct, 2022: New and improved implementation of the embedded Trefftz method via EmbeddedTrefftzFES!

🚀 Aug, 2022: Three different pip-installer available, now using wheels!

🚀 Mar, 2022: NGSTrefftz now has a website!

⚠️ Feb, 2022: If you are using NGSolve nightly releases: NGSolve@eda758d breaks a dependency and NGSolve@3d52ecd produces import issue. Make sure to update ngstrefftz submodules and move to newest ngsolve version, at least NGSolve@5839a09.

🚀 Jan, 2022: NGSTrefftz is now available via pip!

🚀 Nov, 2021: NGSTrefftz now comes in a docker and with binder notebooks!

Publications using the code

  • A unified framework for Trefftz-like discretization methods
    Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker, Igor Voulis
    arXiv
  • Inf-sup stable space-time Local Discontinuous Galerkin method for the heat equation
    Sergio Gómez, Chiara Perinati, Paul Stocker
    arXiv
  • Polynomial quasi-Trefftz DG for PDEs with smooth coefficients: elliptic problems
    Lise-Marie Imbert-Gérard, Andrea Moiola, Chiara Perinati, Paul Stocker
    arXiv
  • Trefftz Discontinuous Galerkin discretization for the Stokes problem
    Philip L. Lederer, Christoph Lehrenfeld, Paul Stocker
    arXiv
  • Unfitted Trefftz discontinuous Galerkin methods for elliptic boundary value problems
    Fabian Heimann, Christoph Lehrenfeld, Paul Stocker, Henry von Wahl
    arXiv
  • Embedded Trefftz discontinuous Galerkin methods
    Christoph Lehrenfeld, Paul Stocker
    arXiv
  • A space-time quasi-Trefftz DG method for the wave equation with piecewise-smooth coefficients
    Lise-Marie Imbert-Gérard, Andrea Moiola, Paul Stocker
    arXiv
  • Tent pitching and Trefftz-DG method for the acoustic wave equation
    Ilaria Perugia, Joachim Schöberl, Paul Stocker, Christoph Wintersteiger
    arXiv
  • Space-time Trefftz DG methods for parabolic PDEs
    Constanze Heil, Master's thesis
  • Embedded Trefftz Trace DG Methods for PDEs on unfitted Surfaces
    Erik Schlesinger, Master's thesis

If you are using ngstrefftz in your academic work, please consider citing Stocker, P., (2022). NGSTrefftz: Add-on to NGSolve for Trefftz methods. Journal of Open Source Software, 7(71), 4135, https://doi.org/10.21105/joss.04135

Owner

  • Name: Paul Stocker
  • Login: PaulSt
  • Kind: user

Mathematics and Mountaineering. Two great words that start with a M, and I do both continuously. @AxelBohm @wwang107 @groenborg

JOSS Publication

`NGSTrefftz`: Add-on to NGSolve for Trefftz methods
Published
March 31, 2022
Volume 7, Issue 71, Page 4135
Authors
Paul Stocker ORCID
Georg-August-Universität, Göttingen, Germany
Editor
Nikoleta Glynatsi ORCID
Tags
numerical methods for PDEs finite elements Trefftz methods

GitHub Events

Total
  • Release event: 2
  • Watch event: 1
  • Push event: 10
  • Create event: 3
Last Year
  • Release event: 2
  • Watch event: 1
  • Push event: 10
  • Create event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,102
  • Total Committers: 8
  • Avg Commits per committer: 137.75
  • Development Distribution Score (DDS): 0.345
Past Year
  • Commits: 133
  • Committers: 3
  • Avg Commits per committer: 44.333
  • Development Distribution Score (DDS): 0.459
Top Committers
Name Email Commits
Paul s****l@h****m 722
Paul p****l@h****m 220
Johann Carl Meyer i****o@j****e 146
Christoph Lehrenfeld c****d@g****m 6
Matthew Scroggs m****s@g****m 3
hvonwah 6****h 2
constanze.heil c****l@s****e 2
Chiara Perinati c****9@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 9
  • Total pull requests: 11
  • Average time to close issues: 3 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 2
  • Total pull request authors: 5
  • Average comments per issue: 2.56
  • Average comments per pull request: 0.27
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • thelfer (8)
  • johann-cm (1)
Pull Request Authors
  • PaulSt (6)
  • hvonwah (3)
  • ChiaraPerinati (2)
  • mscroggs (1)
  • schruste (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 653 last-month
  • Total docker downloads: 171
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 81
  • Total maintainers: 1
pypi.org: ngstrefftz

NGSTrefftz is an add-on to NGSolve for Trefftz methods.

  • Versions: 72
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 613 Last month
  • Docker Downloads: 171
Rankings
Docker downloads count: 2.5%
Downloads: 7.2%
Dependent packages count: 10.0%
Average: 12.2%
Stargazers count: 15.2%
Forks count: 16.8%
Dependent repos count: 21.7%
Maintainers (1)
Last synced: 6 months ago
pypi.org: ngstrefftz-avx2

NGSTrefftz is an add-on to NGSolve for Trefftz methods.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 30 Last month
Rankings
Dependent packages count: 6.6%
Stargazers count: 17.9%
Forks count: 19.6%
Average: 21.4%
Dependent repos count: 30.6%
Downloads: 32.5%
Maintainers (1)
Last synced: 12 months ago
pypi.org: ngstrefftz-src

NGSTrefftz is an add-on to NGSolve for Trefftz methods.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 10 Last month
Rankings
Dependent packages count: 6.6%
Stargazers count: 17.2%
Forks count: 17.3%
Average: 25.1%
Dependent repos count: 30.6%
Downloads: 53.9%
Maintainers (1)
Last synced: 12 months ago

Dependencies

docs/requirements.txt pypi
  • Babel ==2.10.3
  • Jinja2 ==3.1.2
  • MarkupSafe ==2.1.1
  • Pillow ==9.2.0
  • Pygments ==2.13.0
  • Send2Trash ==1.8.0
  • Sphinx ==5.1.1
  • alabaster ==0.7.12
  • argon2-cffi ==21.3.0
  • argon2-cffi-bindings ==21.2.0
  • asttokens ==2.0.8
  • attrs ==22.1.0
  • backcall ==0.2.0
  • beautifulsoup4 ==4.11.1
  • bleach ==5.0.1
  • certifi ==2022.6.15
  • cffi ==1.15.1
  • charset-normalizer ==2.1.1
  • cycler ==0.11.0
  • debugpy ==1.6.3
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • docutils ==0.19
  • entrypoints ==0.4
  • executing ==1.0.0
  • fastjsonschema ==2.16.1
  • fonttools ==4.37.1
  • idna ==3.3
  • imagesize ==1.4.1
  • intel-openmp ==2021.4.0
  • ipykernel ==6.15.1
  • ipympl ==0.9.2
  • ipython ==8.4.0
  • ipython-genutils ==0.2.0
  • ipywidgets ==8.0.1
  • jedi ==0.18.1
  • jsonschema ==4.14.0
  • jupyter-core ==4.11.1
  • jupyter-sphinx ==0.4.0
  • jupyter_client ==7.3.5
  • jupyterlab-pygments ==0.2.2
  • jupyterlab-widgets ==3.0.2
  • kiwisolver ==1.4.4
  • lxml ==4.9.1
  • m2r2 ==0.3.3
  • matplotlib ==3.5.3
  • matplotlib-inline ==0.1.6
  • mistune ==0.8.4
  • mkl ==2021.4.0
  • nbclient ==0.6.7
  • nbconvert ==6.5.3
  • nbformat ==5.4.0
  • nbsphinx ==0.8.9
  • nest-asyncio ==1.5.5
  • netgen-mesher ==6.2.2203.post46.dev0
  • ngsolve ==6.2.2204
  • ngstrefftz ==0.1.2
  • notebook ==6.4.12
  • numpy ==1.23.2
  • packaging ==21.3
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • prometheus-client ==0.14.1
  • prompt-toolkit ==3.0.30
  • psutil ==5.9.1
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pycparser ==2.21
  • pyparsing ==3.0.9
  • pyrsistent ==0.18.1
  • python-dateutil ==2.8.2
  • pytz ==2022.2.1
  • pyzmq ==23.2.1
  • requests ==2.28.1
  • scipy ==1.9.1
  • six ==1.16.0
  • snowballstemmer ==2.2.0
  • soupsieve ==2.3.2.post1
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.0
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • sphinxemoji ==0.2.0
  • stack-data ==0.5.0
  • tbb ==2021.6.0
  • terminado ==0.15.0
  • testpath ==0.6.0
  • tinycss2 ==1.1.1
  • tornado ==6.2
  • traitlets ==5.3.0
  • urllib3 ==1.26.12
  • wcwidth ==0.2.5
  • webencodings ==0.5.1
  • webgui-jupyter-widgets ==0.2.11
  • widgetsnbextension ==4.0.2
setup.py pypi
  • ngsolve *
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • ad-m/github-push-action master composite
  • docker/build-push-action v2 composite
  • docker/login-action v1 composite
  • docker/metadata-action v3 composite
  • docker/setup-buildx-action v1 composite
  • docker/setup-qemu-action v1 composite
  • openjournals/openjournals-draft-action master composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • sphinx-notes/pages v2 composite
Dockerfile docker
  • paulstdocker/ngstrefftz latest build
.github/workflows/pyodide/Dockerfile docker
  • paulstdocker/ngsolve_pyodite 402bd26 build
.github/workflows/pyodide/requirements.txt pypi
  • bqplot *
  • ipycanvas >=0.9.1
  • ipyevents >=2.0.1
  • ipyleaflet *
  • ipympl >=0.8.2
  • ipywidgets >=8.1.0,<9
  • jupyterlab *
  • jupyterlab-night *
  • jupyterlab-open-url-parameter *
  • jupyterlite-core ==0.1.2
  • jupyterlite-pyodide-kernel ==0.1.1
  • plotly >=5,<6
  • webgui_jupyter_widgets *
  • widgetsnbextension ==4.0.7