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.
