Giter VIP home page Giter VIP logo

dune-multidomaingrid's Introduction

MultiDomainGrid

dune-multidomaingrid is a meta grid built on top of the DUNE grid interface. It can be used to carve out subdomains from an underlying host grid which are then available as fully featured DUNE grids in their own right.

Version

This is version 2.8-git of MultiDomainGrid. It is compatible with the 2.8-git release of the DUNE core modules. The versioning scheme of MultiDomainGrid has recently been synchronized to that of the core modules to make it easier for users to find a compatible release for their DUNE distribution.

An overview of changes to the library can be found in the file CHANGELOG.md.

Features

  • Support for arbitrary subdomain topologies, including non-contiguous domains.

  • Full support for MPI-parallel computations on the subdomains.

  • Policy-driven choice of different storage backends tailored to the application scenario. The library currently ships with three different implementations:

    • A version optimized for a small number of domains that may overlap in arbitrary ways and that maintains O(1) storage and runtime complexity irrespective of the amount of subdomain overlap. This backend is best suited to standard multi-physics applications that combine a small number of regions with different physics.

    • A version optimized for a very large number of subdomains, with the total number known at compile time. This implementation places a compile-time limit on the number of subdomains that a grid entity may belong to; several of its algorithms are O(log N) in the number of overlapping subdomains N.

    • A variant of the former with a run-time configurable number of total subdomains. This version traits added flexibility with a slightly less optimal storage scheme. Apart from the switch from a compile-time to a run-time subdomain limit, it is mostly identical to the second implementation in terms of algorithmic and storage complexity.

  • The subdomain layout can be modified during a simulation, with an API that aids in transferring solution data similar to the grid adaptivity interface of a DUNE grid.

  • DUNE grid API extensions to query the subdomain membership of a given entity as well as conversion methods between MultiDomainGrid entities and SubDomainGrid entities.

  • Iterators for automatic extraction of subdomain - subdomain interfaces, both for a given pair of subdomains and for all defined subdomains at once (i.e. in a single host grid traversal).

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 DUNE GitLab. 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.

High-level interface for multi-domain simulations

While dune-multidomaingrid is a very useful tool in its own right and is used in a standalone fashion by a number of people, it was originally designed as a building block for extending the high-level DUNE-based PDE solver toolbox PDELab with support for multi-physics and multi-domain simulations. This support is contained in the dune-multidomain library, which is an add-on module for PDELab that extends the latter with concepts for subproblems and couplings between those subproblems and uses MultiDomainGrid to provide the spatial layout of those subproblems and couplings.

Dependencies

dune-multidomaingrid depends on the following software packages:

  • DUNE core libraries (dune-common, dune-geometry, dune-grid) version 2.7-git, and their respective dependencies.

  • CMake 3.1.0 and a compiler that is compatible with GCC 5 or newer in C++14 mode.

License

The MultiDomainGrid 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.

Installation

For a full explanation of the DUNE installation process please read the installation notes or the build system HOWTO.

Links

dune-multidomaingrid's People

Contributors

smuething avatar soilros avatar osander1 avatar

Watchers

Lukas Abelt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.