dune-multidomain is a set of multi-domain extensions for the PDE solver toolbox PDELab that is part of the DUNE project. It provides abstractions for partioning a spatial domain into subdomains, defining subproblems on those subdomains and for pair-wise coupling of those subproblems. The enhanced problem assembler takes care of identifying coupling degrees of freedom and assembling the complete system. While the general abstractions for subdomains etc. are independent of the actual realization, dune-multidomain currently only ships a single backend for defining spatial subdomains based on the dune-multidomaingrid module and the DUNE meta grid MultiDomainGrid, which lets users define subdomains on top of an existing DUNE grid.
This is version 2.1-dev of MultiDomainGrid. It is compatible with the 2.0.x release series of PDELab and the 2.4-dev development series of the DUNE core modules. The versioning scheme of MultiDomain has recently been synchronized to that of PDELab to make it easier for users to find a compatible release for their DUNE / PDELab distribution.
An overview of changes to the library can be found in the file RELEASE_NOTES.md.
-
Support for arbitrary subdomain topologies, including non-contiguous domains.
-
Full support for MPI-parallel computations on the subdomains.
-
Definition of subproblems that only operate on a subset of the total DOFs. As an example, when coupling a free-flow domain discretized using Taylor-Hood (velocity + pressure) with a porous medium in scalar formulation (hydraulic head), the subproblems only see the variables relevant to their subdomain, making it possible to reuse existing single-physics codes that do not have to be aware of the multi-domain setting. The coupling operator on the other hand will of course have to be written specifically for the multi-physics setting.
-
Definition of spatial domains for subproblems based on predicates that operate on the set of subdomains as exported by MultiDomainGrid.
-
Efficient assembly of overall problem in a single mesh traversal.
-
Output support to VTK files.
-
Definition of P1 and Discontinuous Galerkin mortar spaces on subdomain-subdomain interfaces of codimension one.
-
Extension of PDELab's interpolation and constraints evaluation support to subdomains.
If you have downloaded a release tarball, you can find the autogenerated Doxygen API documentation in doc/doxygen/html. Otherwise, you can build this documentation yourself by calling "make doc". Note that you need Doxygen and GraphViz available at configure time to be able to build the documentation.
If you need help, please ask via GitHub. If you find bugs, you can also submit them to the bugtracker. Even better, if you have managed to fix a problem, open a pull request to get your patch merged into the library.
dune-multidomain depends on the following software packages:
-
DUNE core libraries (dune-common, dune-geometry, dune-grid, dune-istl, dune-localfunctions) version 2.4-dev, and their respective dependencies.
-
PDELab version 2.0.x. PDELab 2.0.0 contains a number of bugs that render it incompatible with dune-multidomain. Until a bugfix 2.0.1 release of PDELab, please check out the release branch releases/2.0 instead.
-
dune-multidomaingrid version 2.4-dev.
-
The dune-typetree library, version 2.4-git.
-
MultiDomain's compiler requirements differ slightly from the underlying DUNE libraries: We require at least GCC 4.7 in C++11 mode. MultiDomainGrid should also work with very recent versions of ICC (icpc 15.0.0+) and current clang (3.4+).
The MultiDomain library, headers and test programs are free open-source software, dual-licensed under version 3 or later of the GNU Lesser General Public License and version 2 of the GNU General Public License with a special run-time exception.
See the file COPYING.md for full copying permissions.
Short installation instructions can be found in the file README.GIT.md. For a full explanation of the DUNE installation process please read the installation notes or the build system HOWTO.