Table of Contents
Fetching ...

POLYDIM: A C++ library for POLYtopal DIscretization Methods

Stefano Berrone, Andrea Borio, Gioana Teora, Fabio Vicini

TL;DR

PolyDiM provides an open-source, modular C++ framework for polytopal discretizations of PDEs, centering on the Virtual Element Method in 2D and 3D. It supports primal, mixed, and divergence-free formulations, with multiple polynomial bases and stabilization strategies, and couples seamlessly with GeDiM for geometry handling and with MATLAB/Python interfaces for accessibility. The library demonstrates robust performance on complex geometries, including Discrete Fracture Networks and 3D-1D coupling, and includes capabilities for mesh refinement and quality optimization. By emphasizing a global-to-local assembly workflow, geometry-agnostic element handling, and solver-agnostic interfaces, PolyDiM aims to accelerate research and enable scalable simulations in challenging geometrical settings where polytopal discretizations are advantageous.

Abstract

This paper introduces PolyDiM, an open-source C++ library tailored for the development and implementation of polytopal discretization methods for partial differential equations. The library provides robust and modular tools to support advanced numerical techniques, with a focus on the Virtual Element Method in both 2D and 3D settings. PolyDiM is designed to address a wide range of challenging problems, including those involving non-convex geometries, Discrete Fracture Networks, and mixed-dimensional coupling. It is integrated with the geometry library GeDiM, and offers interfaces for MATLAB and Python to enhance accessibility. Distinguishing features include support for multiple polynomial bases, advanced stabilization strategies, and efficient local-to-global assembly procedures. PolyDiM aims to serve both as a research tool and a foundation for scalable scientific computing in complex geometrical settings.

POLYDIM: A C++ library for POLYtopal DIscretization Methods

TL;DR

PolyDiM provides an open-source, modular C++ framework for polytopal discretizations of PDEs, centering on the Virtual Element Method in 2D and 3D. It supports primal, mixed, and divergence-free formulations, with multiple polynomial bases and stabilization strategies, and couples seamlessly with GeDiM for geometry handling and with MATLAB/Python interfaces for accessibility. The library demonstrates robust performance on complex geometries, including Discrete Fracture Networks and 3D-1D coupling, and includes capabilities for mesh refinement and quality optimization. By emphasizing a global-to-local assembly workflow, geometry-agnostic element handling, and solver-agnostic interfaces, PolyDiM aims to accelerate research and enable scalable simulations in challenging geometrical settings where polytopal discretizations are advantageous.

Abstract

This paper introduces PolyDiM, an open-source C++ library tailored for the development and implementation of polytopal discretization methods for partial differential equations. The library provides robust and modular tools to support advanced numerical techniques, with a focus on the Virtual Element Method in both 2D and 3D settings. PolyDiM is designed to address a wide range of challenging problems, including those involving non-convex geometries, Discrete Fracture Networks, and mixed-dimensional coupling. It is integrated with the geometry library GeDiM, and offers interfaces for MATLAB and Python to enhance accessibility. Distinguishing features include support for multiple polynomial bases, advanced stabilization strategies, and efficient local-to-global assembly procedures. PolyDiM aims to serve both as a research tool and a foundation for scalable scientific computing in complex geometrical settings.

Paper Structure

This paper contains 26 sections, 5 theorems, 75 equations, 15 figures, 1 table.

Key Result

Proposition 1

Let $\mathcal{V}_{h,k,\ell}\ifstrempty{d}{}{^{d}}\ifstrempty{E}{}{\!\left(E\right)}$ be the space defined in eq:primal:twolocalvirtualspace for $d=2$ and in eq:primal:threelocalvirtualspace for $d=3$. The local DOFs allow us to compute exactly (up to machine precision) the element projections as defined in eq:proj:Pi0k and eq:proj:PiNabla, i.e. we are able to compute the polynomials $\Pi^{0,E}_{k

Figures (15)

  • Figure 1: Degrees of freedom for $k=3$ and $d=2$. Left: DOFs associated with the local primal space $\mathcal{V}_{h,k}\ifstrempty{d}{}{^{d}}\ifstrempty{}{}{\!\left(\right)}$ defined in \ref{['eq:primal:twolocalvirtualspace']}. Center: Degrees of freedom for the local mixed spaces. Circles refer to the velocity space $\bm{V}_{h,k}\ifstrempty{d}{}{^{d}}\ifstrempty{E}{}{\!\left(E\right)}$, defined in \ref{['eq:mixed:VemVelocitySpace_2D']}, whereas squares refer to the pressure space $Q_{h,k}\ifstrempty{d}{}{^{d}}\ifstrempty{E}{}{\!\left(E\right)}$. Right: Degrees of freedom for the local divergence-free spaces. Circles refer to the velocity space $\bm{V}_{h,k}\ifstrempty{d}{}{^{d}}\ifstrempty{E}{}{\!\left(E\right)}$, defined in \ref{['eq:divfree:discrete_local_velocity_space_stokes']}, whereas squares refer to the pressure space $Q_{h,k}\ifstrempty{d}{}{^{d}}\ifstrempty{E}{}{\!\left(E\right)}$ defined in \ref{['eq:divfree:discrete_local_pressure_space_stokes']}. The symbol $\times 2$ near a marker denotes the multiplicity of the related degree of freedom.
  • Figure 2: Representation of Polygons and Polyhedrons.
  • Figure 3: Sub-triangulation for a polygon (Left) and a polyhedron (right). green dots represent quadrature points related to a rule of order $4$ over a triangle, whereas red dots represent points corresponding to a quadrature formula of order $2$.
  • Figure 4: Left: Mesh cells coloured by mesh markers. Right: DOF cells coloured by problem markers.
  • Figure 5: Left: $H^1$-error $e_1$ for the primal version of the method as the method order $k$ varies in two-dimensions for the different approaches proposed in Section \ref{['sec:PCC']}. Center: $H^1$-error for the primal version of the method as $k$ varies in three-dimensions for the different approaches proposed in Section \ref{['sec:PCC']}. Right: $L^2$-error for the velocity variable in the mixed version of the method as $k$ varies in two-dimensions for different approaches proposed in Section \ref{['sec:MCC']}.
  • ...and 10 more figures

Theorems & Definitions (7)

  • Remark 1
  • Proposition 1: LBe16LBe13Ahmad2013
  • Proposition 2: secondMixedHdivHcurl
  • Theorem 1: Superconvergence result
  • Proposition 3: Vacca2018DaveigaDassi2020
  • Remark 2
  • Proposition 4: DaVeigaLovadina2017