Distributed and Unified Numerics Environment (DUNE)

DUNE is a modular toolbox for solving PDEs with grid-based methods.

Technologies
python, c++, cmake
Topics
mathematics, scientific computing, physics, high performance computing, partial differential equations
DUNE is a modular toolbox for solving PDEs with grid-based methods.

DUNE, the Distributed and Unified Numerics Environment is a modular toolbox for solving partial differential equations (PDEs) with grid-based methods. It supports the easy implementation of methods like Finite Elements, Discontinuous Galerkin, Finite Volumes, and Finite Differences.
The underlying idea of DUNE is to create slim interfaces allowing an efficient use of legacy and/or new libraries. Modern C++ programming techniques enable different implementations of the same concept, i.e. grids or solvers, using a common interface at a low overhead. Thus DUNE ensures efficiency in scientific computations and supports high-performance computing applications.

People

DUNE developers are professors, graduate students, post-docs, or people working in industry (e.g. as freelancers or consultants), currently located in Germany, UK, and Norway. With DUNE being a scientific software, they all share a scientific education and background. But their background differs (Mathematics, Computer Science, and Physics) as well as their application area (flow through porous media, linear elasticity, computational fluid dynamics, electro-magnetism, …).

History

DUNE started with an inaugurating meeting in February 2002. People from different German research groups of Universities in Bonn, Freiburg, and Heidelberg shared a common interest: developing an clean, slim, and modern open source framework for the parallel solution of PDEs which would allow reusing existent legacy software via a common interface based on generic programming techniques.

DUNE's main principles

  • Separation of data structures and algorithms by abstract interfaces. This provides more functionality with less code and ensures maintainability and extendability of the framework.
  • Static polymorphism allows the compiler to do more optimizations, in particular function inlining, which in turn allows the interface to have very small functions without a severe performance penalty.
2016 Program

Successful Projects

Contributor
Xinyun Li
Mentor
Dominic Kempf, blattms
Organization
Distributed and Unified Numerics Environment (DUNE)
Spline geometries for isogeometric analysis
Isogeometric analysis is a finite element technique that allows to solve partial differential equations defined on spline surfaces. This is useful...
Contributor
Michaël Sghaïer
Mentor
Andreas Dedner, Martin Nolte
Organization
Distributed and Unified Numerics Environment (DUNE)
Python bindings for the DUNE grid interface
DUNE, the Distributed and Unified Numerics Environment, is a modular toolbox to solve partial differential equation with grid-based methods. Thus,...