🤖 AI Summary
To address the functional obsolescence and inadequate support for modern C++ in the Distributed and Unified Numerics Environment (DUNE), this paper proposes a systematic architectural refactoring. Methodologically, it introduces C++20 Concepts to enforce type-safe generic programming; extends curved geometry modeling interfaces to enhance geometric expressivity; replaces legacy multidimensional array abstractions with `std::mdspan` and `std::mdarray` for improved memory layout efficiency and access performance; migrates to a target-based CMake build system to strengthen modularity and extensibility; and integrates optimized sparse matrix operations and enhanced finite element computation modules. Experimental evaluation demonstrates significant improvements in runtime performance, cross-module interoperability, and developer ergonomics. The refactored framework delivers a reusable, production-ready pathway for modernizing high-performance scientific computing libraries while preserving DUNE’s core abstractions and ecosystem compatibility.
📝 Abstract
Version 2.10 of the Distributed and Unified Numerics Environment DUNE introduces a range of enhancements across its core and extension modules, with a continued emphasis on modern C++ integration and improved usability. This release extends support for C++20 features, particularly concepts, through comprehensive refinements in dune-common and dune-grid, enabling safer and more expressive generic programming paradigms. A notable advancement is the improved support for curved geometries, including new geometry implementations and a more flexible interface. Data structures have been modernized through native support for std::mdspan and std::mdarray, performance improvements in sparse matrices, and tools for visualization of matrix patterns. The build system has been restructured towards a modern CMake workflow, emphasizing target-based configuration and improved automation. Furthermore, new local finite elements have been introduced to broaden numerical capabilities. The release also brings updates across DUNE extensions, as well as improvements to infrastructure and module-level components.