polydeal
C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: sciencedirect.com, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Keywords
Repository
C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.
Basic Info
- Host: GitHub
- Owner: fdrmrc
- License: other
- Language: C++
- Default Branch: main
- Homepage: https://fdrmrc.github.io/Polydeal/
- Size: 115 MB
Statistics
- Stars: 0
- Watchers: 4
- Forks: 2
- Open Issues: 8
- Releases: 1
Topics
Metadata Files
README.md
polyDEAL (Polytopal Discontinuous Galerkin in deal.II)
PolyDEAL is an open source library which aims to provide building blocks for the developement of Polytopal Discontinuous Galerkin methods, using the Finite Element library deal.II in 2D and 3D. It is written in C++ using the C++17 standard. The parallel implementation builds on top of the Message Passing Interface (MPI) communication model.
Getting started and prerequisites
We require: - cmake version greater than 2.8. - One of the following compilers: - gcc version >= 9.4.0 - clang version >= 15 - icc (Intel compiler) 2021.2 - openMPI version >= 4.0.3 - deal.II version >= 9.7
The library polyDEAL employs deal.II as main third-party library. As deal.II itself depends on other external libraries for many functionalities, we strongly suggest to download and install deal.II following the instructions available at https://www.dealii.org/download.html and https://www.dealii.org/developer/readme.html. The minimal set of other external libraries that we require are: METIS, p4est, Trilinos. All of them should be compiled against MPI during the installation phase of deal.II.
While METIS is generally used to partition a triangulation among several processors, in the context of polytopal methods it is heavily employed as an agglomeration strategy to build polytopic elements out of fine grids composed by standard shapes. Trilinos (in particular its multilevel solvers and distributed matrices) is employed as main parallel linear algebra library. We also support novel agglomeration strategies based on the R-tree spatial data structure.
To enable to computation of some quality metrics, mostly of theoretical interests and not really relevant in application codes, the external library CGAL is required. As this is a dependency of deal.II as well, it is sufficient to configure deal.II with it.
We currently support the following features: * Unified interface for 2D and 3D problems. * Distributed-memory implementation through MPI. * Parallel agglomerated multigrid support. * Discontinuous Galerkin spaces of order $p$. * Different agglomeration strategies.
Part of the algorithms have been described in the following publication: R3MG: R-tree based agglomeration of polytopal grids with applications to multilevel methods.
@article{FEDER2025113773,
title = {R3MG: R-tree based agglomeration of polytopal grids with applications to multilevel methods},
journal = {Journal of Computational Physics},
volume = {526},
pages = {113773},
year = {2025},
issn = {0021-9991},
doi = {https://doi.org/10.1016/j.jcp.2025.113773},
url = {https://www.sciencedirect.com/science/article/pii/S0021999125000567},
author = {Marco Feder and Andrea Cangiani and Luca Heltai},
keywords = {Polytopal grids, Agglomeration, Discontinuous Galerkin, Multilevel methods, Spatial data structures}
}
Building polyDEAL
Assuming deal.II is installed on your machine and meets the requirements above, all is required to do is:
bash
git clone git@github.com:fdrmrc/Polydeal.git
cd Polydeal/
mkdir build
cd build/
cmake -DDEAL_II_DIR=/path/to/deal.II ..
make -j<N>
being N is the number of jobs you want to use to compile.
About grids and post-processing
Polygonal or polyhedral grids are generated through agglomeration. To give an easy example in 2D, here's a polygonal grid associated to the unit ball on which you can define a Discontinous Galerkin space. The 3D case is completely analougous.
The (discontinuous) Finite Element space is defined on the bounding box of each agglomerate. In order to visualize the solution, carry out convergence tests, and other post-processing issues, the solution computed on the polytopal grid is interpolated onto the underlying fine mesh composed of classical quadrilaterals or hexahedra.
Examples
Some example applications are shown in the examples/ directory. To build and run one of the examples, say diffusion_reaction.cc, it is sufficient the following:
bash
// assume you have a build generated as above
cd build/examples
make
mpirun -np<N> ./diffusion_reaction
where N is the number of processors you want to use.
Documentation
A Doxygen generated documentation is built and deployed at each merge to the main branch. You can find the latest documentation here: https://fdrmrc.github.io/Polydeal/.
Authors and Contact
This project is developed and maintained by: - Marco Feder (@fdrmrc), SISSA, IT
under the supervision of - Prof. Andrea Cangiani (@andreacangiani), SISSA, IT - Prof. Luca Heltai (@luca-heltai), University of Pisa, IT
Feel free to start a discussion or open an issue, especially if you want to contribute. For any other inquiries or special requests, you can directly contact mfeder@sissa.it.
Owner
- Name: Marco Feder
- Login: fdrmrc
- Kind: user
- Company: SISSA mathLab
- Repositories: 3
- Profile: https://github.com/fdrmrc
Citation (citation.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Feder" given-names: "Marco" - family-names: "Heltai" given-names: "Luca" - family-names: "Cangiani" given-names: "Andrea" title: "polyDEAL" version: 0.0.1 url: "https://github.com/fdrmrc/Polydeal"
GitHub Events
Total
- Issues event: 1
- Delete event: 12
- Member event: 1
- Issue comment event: 9
- Push event: 17
- Pull request review event: 6
- Pull request review comment event: 9
- Pull request event: 8
- Fork event: 7
- Create event: 3
Last Year
- Issues event: 1
- Delete event: 12
- Member event: 1
- Issue comment event: 9
- Push event: 17
- Pull request review event: 6
- Pull request review comment event: 9
- Pull request event: 8
- Fork event: 7
- Create event: 3
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Marco Feder | m****r@s****t | 416 |
| Luca Heltai | l****i@s****t | 1 |
Committer Domains (Top 20 + Academic)
Dependencies
- actions/checkout v2 composite
- mattnotmitt/doxygen-action v1.1.0 composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- heltai/dealii vscode build
