{"id":19282041,"url":"https://github.com/paulst/ngstrefftz","last_synced_at":"2025-04-22T01:31:24.647Z","repository":{"id":43147368,"uuid":"310668030","full_name":"PaulSt/NGSTrefftz","owner":"PaulSt","description":"Add-On to NGSolve for Trefftz methods","archived":false,"fork":false,"pushed_at":"2025-02-17T08:25:15.000Z","size":3654,"stargazers_count":14,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-14T15:22:31.397Z","etag":null,"topics":["finite-element-method","numerical-methods","open-source","trefftz-methods"],"latest_commit_sha":null,"homepage":"https://paulst.github.io/NGSTrefftz/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaulSt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-06T17:51:57.000Z","updated_at":"2025-02-17T08:25:22.000Z","dependencies_parsed_at":"2023-11-27T14:28:14.839Z","dependency_job_id":"3bc4a525-f7a2-4059-a08e-40d22d7e70fe","html_url":"https://github.com/PaulSt/NGSTrefftz","commit_stats":{"total_commits":755,"total_committers":7,"mean_commits":"107.85714285714286","dds":"0.30331125827814565","last_synced_commit":"5b3b021a7c40532ae425c6bcb985392ab0abf485"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulSt%2FNGSTrefftz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulSt%2FNGSTrefftz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulSt%2FNGSTrefftz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulSt%2FNGSTrefftz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaulSt","download_url":"https://codeload.github.com/PaulSt/NGSTrefftz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250162011,"owners_count":21385024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finite-element-method","numerical-methods","open-source","trefftz-methods"],"created_at":"2024-11-09T21:25:12.569Z","updated_at":"2025-04-22T01:31:24.617Z","avatar_url":"https://github.com/PaulSt.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NGSTrefftz\n**an add-on to NGSolve for Trefftz methods**\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)\n[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/paulstdocker/ngstrefftz?label=docker\u0026logo=docker\u0026sort=semver)](https://hub.docker.com/r/paulstdocker/ngstrefftz)\n[![PyPI](https://img.shields.io/pypi/v/ngstrefftz?color=blue\u0026logo=pypi)](https://pypi.org/project/ngstrefftz/)\n[![GitHub Workflow Status](https://github.com/PaulSt/NGSTrefftz/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/PaulSt/NGSTrefftz/actions/workflows/build.yml)\n[![status](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409/status.svg)](https://joss.theoj.org/papers/c2f4e85b118c22b81aa27d7799265409)\n[![docs](https://img.shields.io/badge/docs-NGSTrefftz-blue?logo=readthedocs)](https://paulst.github.io/NGSTrefftz/)\n\nNGSTrefftz provides a framework to implement Trefftz finite element spaces for [NGSolve](https://www.ngsolve.org), 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](https://github.com/jayggg/ngstents). Furthermore, the package includes an implementation of the embedded Trefftz method.\n\n## Try it out!\nYou can try out some jupyter notebooks:\n* Launch the Binder here:   \n  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PaulSt/NGSTrefftz/HEAD?filepath=docs%2Fnotebooks%2Findex.ipynb)\n* Or run the docker locally (you need to have docker installed):\n\n```bash\ngit clone https://github.com/PaulSt/NGSTrefftz\ncd NGSTrefftz \u0026\u0026 docker build -t ngstrefftz_jupyter .\ndocker run -p 8888:8888 ngstrefftz_jupyter\n```\n\n## Installing the package\nYou can either:\n * install using pip\n\n```bash\npip install ngstrefftz\n```\n\n * or build from source\n\n```bash\ngit clone --recursive https://github.com/PaulSt/NGSTrefftz\nmkdir ./NGSTrefftz/make \u0026\u0026 cd ./NGSTrefftz/make\ncmake ../ \u0026\u0026 make install\n```\n\n### Dependencies\n * if you are using pip to install the package you can install the newest ngsolve and other dependencies using\n```bash\npip install ngsolve --pre\n```\n * if you build the package from source the following software needs to be installed\n   * [cmake](https://cmake.org/) \u003e= 3.1\n   * [gcc](https://gcc.gnu.org/) \u003e= 9 or [clang](https://clang.llvm.org/) \u003e= 10\n   * [lapack](http://www.netlib.org/lapack/) \u003e= 3.9 (required to access the newest features)\n   * [ngsolve](https://www.ngsolve.org) \u003e= 6.2  (to access the newest features the nightly version of NGSolve works best)\n\n## News\n⚠️ Apr, 2025: `TrefftzEmbedding` has a new interface, please check the documentation for details.\n\n🚀 Jul, 2024: Conforming Trefftz embedding implementation by [@johann-cm](https://github.com/johann-cm) \n\n⚠️ Oct, 2022: With v0.2.0 the git history has undergone a major cleanup, please make sure to clone the repo anew.\n\n🚀 Oct, 2022: New and improved implementation of the embedded Trefftz method via `EmbeddedTrefftzFES`!\n\n🚀 Aug, 2022: Three different [pip](https://pypi.org/search/?q=ngstrefftz)-installer available, now using wheels! \n\n🚀 Mar, 2022: NGSTrefftz now has a [website](https://paulst.github.io/NGSTrefftz/)! \n\n⚠️ Feb, 2022: If you are using NGSolve nightly releases: [NGSolve@eda758d](https://github.com/NGSolve/ngsolve/commit/eda758d99483888851913d8a5c9aff4d0cbc9cc2) breaks a dependency and [NGSolve@3d52ecd](https://github.com/NGSolve/ngsolve/commit/3d52ecd615f2b7c409219eebaba99288ea19c1bc) produces import issue. Make sure to update ngstrefftz submodules and move to newest ngsolve version, at least [NGSolve@5839a09](https://github.com/NGSolve/ngsolve/commit/5839a09810235a938bd85807d8e638d3a0b6c69d).\n\n🚀 Jan, 2022: NGSTrefftz is now available via pip! \n\n🚀 Nov, 2021: NGSTrefftz now comes in a docker and with binder notebooks! \n\n## Publications using the code\n* *A unified framework for Trefftz-like discretization methods*  \nPhilip L. Lederer, Christoph Lehrenfeld, Paul Stocker, Igor Voulis  \n[![arXiv](https://img.shields.io/badge/arXiv-2412.00806-b31b1b.svg)](https://arxiv.org/abs/2412.00806)\n* *Inf-sup stable space-time Local Discontinuous Galerkin method for the heat equation*  \nSergio Gómez, Chiara Perinati, Paul Stocker  \n[![arXiv](https://img.shields.io/badge/arXiv-2411.14819-b31b1b.svg)](https://arxiv.org/abs/2411.14819)\n* *Polynomial quasi-Trefftz DG for PDEs with smooth coefficients: elliptic problems*  \nLise-Marie Imbert-Gérard, Andrea Moiola, Chiara Perinati, Paul Stocker  \n[![arXiv](https://img.shields.io/badge/arXiv-2408.00392-b31b1b.svg)](https://arxiv.org/abs/2408.00392)\n* *Trefftz Discontinuous Galerkin discretization for the Stokes problem*  \nPhilip L. Lederer, Christoph Lehrenfeld, Paul Stocker  \n[![arXiv](https://img.shields.io/badge/arXiv-2306.14600-b31b1b.svg)](https://arxiv.org/abs/2306.14600)\n* *Unfitted Trefftz discontinuous Galerkin methods for elliptic boundary value problems*  \nFabian Heimann, Christoph Lehrenfeld, Paul Stocker, Henry von Wahl  \n[![arXiv](https://img.shields.io/badge/arXiv-2212.12236-b31b1b.svg)](https://arxiv.org/abs/2212.12236)\n* *Embedded Trefftz discontinuous Galerkin methods*  \nChristoph Lehrenfeld, Paul Stocker   \n[![arXiv](https://img.shields.io/badge/arXiv-2201.07041-b31b1b.svg)](https://arxiv.org/abs/2201.07041)\n* *A space-time quasi-Trefftz DG method for the wave equation with piecewise-smooth coefficients*   \nLise-Marie Imbert-Gérard, Andrea Moiola, Paul Stocker  \n[![arXiv](https://img.shields.io/badge/arXiv-2011.04617-b31b1b.svg)](https://arxiv.org/abs/2011.04617)\n* *Tent pitching and Trefftz-DG method for the acoustic wave equation*  \nIlaria Perugia, Joachim Schöberl, Paul Stocker, Christoph Wintersteiger   \n[![arXiv](https://img.shields.io/badge/arXiv-1907.02367-b31b1b.svg)](https://arxiv.org/abs/1907.02367)\n* *Space-time Trefftz DG methods for parabolic PDEs*  \nConstanze Heil, [Master's thesis](https://doi.org/10.25625/ZSA8UU/2L4C1E)\n* *Embedded Trefftz Trace DG Methods for PDEs on unfitted Surfaces*  \nErik Schlesinger, [Master's thesis](https://doi.org/10.25625/QTOPWD/93ZYRQ)\n\n\nIf you are using `ngstrefftz` in your academic work, please consider citing \n```\nStocker, P., (2022). NGSTrefftz: Add-on to NGSolve for Trefftz methods. \nJournal of Open Source Software, 7(71), 4135, https://doi.org/10.21105/joss.04135\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulst%2Fngstrefftz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulst%2Fngstrefftz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulst%2Fngstrefftz/lists"}