Dune (software)

Last updated
DUNE
Stable release
2.9.0 [1] / November 5, 2022;16 months ago (2022-11-05)
Written in C++
Operating system Linux, Unix, OS X
Type Finite element analysis
License GPL (version 2) with "runtime exception"
Website www.dune-project.org

DUNE (Distributed and Unified Numerics Environment) is a modular C++ library for the solution of partial differential equations using grid-based methods.

Contents

The DUNE library is divided into modules. In version 2.9 are the core modules

In addition, there are several further modules, including some which have been developed by third parties.

History

The development of DUNE started in 2002 on the initiative of Prof. Bastian (Heidelberg University), Dr. Ohlberger (during his habilitation at the University of Freiburg), and Prof. Rumpf (then University of Duisburg-Essen). The aim was a development model which was not attached to a single university, in order to make the project attractive for a wide audience. For the same reason a license was chosen which allows DUNE together with proprietary libraries. While most of the developers still have a university background, others are providing commercial support for DUNE. [2]

Goals

What sets DUNE apart from other finite element programs is that right from the start the main design goal of DUNE was to allow the coupling of new and legacy codes efficiently. DUNE is primarily a set of abstract interfaces, which embody concepts from scientific computing. These are mainly intended to be used in finite element and finite volume applications, but also finite difference methods are possible.

The central interface is the grid interface. It describes structured and unstructured grids of arbitrary dimension, both with manifold and non-manifold structure. Seven different implementations of the grid interface exist. Four of these are encapsulations of existing grid managers. It is hence possible to directly compare different grid implementations. Functionality for parallel programming is described too.

Implementation

Various C++ techniques such as template programming, generic programming, C++ template metaprogramming, and static polymorphism are used. These are well-known in other areas of software development and are slowly making their way into scientific computing. They allow the compiler to eliminate most of the overhead introduced by the extra layer of abstraction. A high level of standard conformance is required for this from the compiler.

Related Research Articles

<span class="mw-page-title-main">SciPy</span> Open-source Python library for scientific computing

SciPy is a free and open-source Python library used for scientific computing and technical computing.

In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions.

The GNU Scientific Library is a software library for numerical computations in applied mathematics and science. The GSL is written in C; wrappers are available for other programming languages. The GSL is part of the GNU Project and is distributed under the GNU General Public License.

Quattor is a generic open-source tool-kit used to install, configure, and manage computers. Quattor was originally developed in the framework of European Data Grid project (2001-2004). Since its first release in 2003, Quattor has been maintained and extended by a volunteer community of users and developers, primarily from the community of grid system administrators. The Quattor tool-kit, like other configuration management systems, reduces the staff required to maintain a cluster and facilitates reliable change management. However, three unique features make it particularly attractive for managing grid resources:

Numerical methods for partial differential equations is the branch of numerical analysis that studies the numerical solution of partial differential equations (PDEs).

A problem solving environment (PSE) is a completed, integrated and specialised computer software for solving one class of problems, combining automated problem-solving methods with human-oriented tools for guiding the problem resolution. A PSE may also assist users in formulating problem resolution. A PSE may also assist users in formulating problems, selecting algorithm, simulating numerical value and viewing and analysing results.

<span class="mw-page-title-main">3D Slicer</span> Image analysis and scientific visualization software

3D Slicer (Slicer) is a free and open source software package for image analysis and scientific visualization. Slicer is used in a variety of medical applications, including autism, multiple sclerosis, systemic lupus erythematosus, prostate cancer, lung cancer, breast cancer, schizophrenia, orthopedic biomechanics, COPD, cardiovascular disease and neurosurgery.

<span class="mw-page-title-main">FEniCS Project</span>

The FEniCS Project is a collection of free and open-source software components with the common goal to enable automated solution of differential equations. The components provide scientific computing tools for working with computational meshes, finite-element variational formulations of ordinary and partial differential equations, and numerical linear algebra.

<span class="mw-page-title-main">Cython</span> Programming language

Cython is a superset of the programming language Python, which allows developers to write Python code that yields performance comparable to that of C.

hp-FEM is a generalization of the finite element method (FEM) for solving partial differential equations numerically based on piecewise-polynomial approximations. hp-FEM originates from the discovery by Barna A. Szabó and Ivo Babuška that the finite element method converges exponentially fast when the mesh is refined using a suitable combination of h-refinements and p-refinements .The exponential convergence of hp-FEM has been observed by numerous independent researchers.

In computing, algorithmic skeletons, or parallelism patterns, are a high-level parallel programming model for parallel and distributed computing.

The PLPAK developers, BE4E, describe it as "The PLPAK is special purpose software package for structural analysis of building slabs and foundations based on the Boundary Element Method". The PLPAK uses the shear-deformable plate bending theory according to Reissner.

deal.II is a free, open-source library to solve partial differential equations using the finite element method. The current release is version 9.5, released in July 2023. It is one of the most widely used finite element libraries and provides comprehensive support for all aspects of the solution of partial differential equations. The founding authors of the project — Wolfgang Bangerth, Ralf Hartmann, and Guido Kanschat — won the 2007 J. H. Wilkinson Prize for Numerical Software for deal.II. However, it is a worldwide project with around a dozen "Principal Developers", but over the years several hundred people have contributed substantial pieces of code or documentation to the project.

Model order reduction (MOR) is a technique for reducing the computational complexity of mathematical models in numerical simulations. As such it is closely related to the concept of metamodeling, with applications in all areas of mathematical modelling.

bitpit is an open source modular library for scientific computing. The goal of bitpit is to ease the burden of writing scientific programs providing the common building blocks needed by every scientific application.

<span class="mw-page-title-main">Owl Scientific Computing</span> Numerical programming library for the OCaml programming language

Owl Scientific Computing is a software system for scientific and engineering computing developed in the Department of Computer Science and Technology, University of Cambridge. The System Research Group (SRG) in the department recognises Owl as one of the representative systems developed in SRG in the 2010s. The source code is licensed under the MIT License and can be accessed from the GitHub repository.

References

  1. Dune 2.9.0 released Dune project website. Last accessed July 02, 2023.
  2. Dune Core Developer from the project website

Bibliography