Dune Core Modules (2.6.0)

globalindexset.hh File Reference

Provides a globally unique index for all entities of a distributed Dune grid. More...

#include <vector>
#include <iostream>
#include <fstream>
#include <memory>
#include <map>
#include <utility>
#include <algorithm>
#include <dune/grid/common/gridenums.hh>
#include <dune/grid/common/datahandleif.hh>
#include <dune/common/parallel/mpihelper.hh>

Go to the source code of this file.


class  Dune::GlobalIndexSet< GridView >
 Calculate globally unique index over all processes in a Dune grid. More...
struct  Dune::GlobalIndexSet< GridView >::SubPartitionTypeProvider< Entity, Codim >
 Helper class to provide access to subentity PartitionTypes with a run-time codimension. More...


 Dune namespace.

Detailed Description

Provides a globally unique index for all entities of a distributed Dune grid.

Such functionality is relevant for a number of applications:

  • Map a degree of freedom associated with an entity to its location in a global matrix or global vector
  • Such indices for elements are needed as input to external mesh partitioners
  • Using matrix and vector routines from the PETSc or trilinos parallel linear algebra packages for distributed memory parallel computers.

Method: (1) The UniqueEntityPartition class assigns an owner process to each entity

    (2) Compute the number of entities that are owned by each process

    (3) we communicate the index of entities that are owned by the process to processes
        that also contain these entities but do not own them, so that on a non-owner process
        we have information on the index of the entity that it got from the owner-process;
Benedikt Oswald, Patrick Leidenberger, Oliver Sander
globally unique indices are ONLY provided for entities of the InteriorBorder_Partition type, NOT for the Ghost_Partition type !!!
This code will most likely not work on grids with more than one element type. Please ask on the mailing list if you need this feature.
The interface in this file is experimental, and may change without prior notice.
Creative Commons License   |  Legal Statements / Impressum  |  generated with Hugo v0.80.0 (Jan 30, 23:31, 2023)