polydeal

C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.

https://github.com/fdrmrc/polydeal

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

agglomeration cpp-library discontinuous-galerkin finite-element-methods meshes polygonal-elements polygonal-meshes scientific-computing
Last synced: 4 months ago · JSON representation ·

Repository

C++ implementation of Polygonal Discontinuous Galerkin method within the deal.II Finite Element library.

Basic Info
Statistics
  • Stars: 0
  • Watchers: 4
  • Forks: 2
  • Open Issues: 8
  • Releases: 1
Topics
agglomeration cpp-library discontinuous-galerkin finite-element-methods meshes polygonal-elements polygonal-meshes scientific-computing
Created about 3 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

polyDEAL (Polytopal Discontinuous Galerkin in deal.II)

GitHub CI Indent Doxygen DOI

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

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

All Time
  • Total Commits: 417
  • Total Committers: 2
  • Avg Commits per committer: 208.5
  • Development Distribution Score (DDS): 0.002
Past Year
  • Commits: 252
  • Committers: 2
  • Avg Commits per committer: 126.0
  • Development Distribution Score (DDS): 0.004
Top Committers
Name Email Commits
Marco Feder m****r@s****t 416
Luca Heltai l****i@s****t 1
Committer Domains (Top 20 + Academic)

Dependencies

.github/workflows/doxygen.yml actions
  • actions/checkout v2 composite
  • mattnotmitt/doxygen-action v1.1.0 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/indentation.yml actions
  • actions/checkout v2 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
.devcontainer/Dockerfile docker
  • heltai/dealii vscode build