DUNE ISTL (2.8)
Functionality for redistributing a parallel index set using graph partitioning. More...
#include <cassert>#include <map>#include <utility>#include <cmath>#include <dune/common/timer.hh>#include <dune/common/enumset.hh>#include <dune/common/stdstreams.hh>#include <dune/common/parallel/mpitraits.hh>#include <dune/common/parallel/communicator.hh>#include <dune/common/parallel/indexset.hh>#include <dune/common/parallel/indicessyncer.hh>#include <dune/common/parallel/remoteindices.hh>#include <dune/common/rangeutilities.hh>#include <dune/istl/owneroverlapcopy.hh>#include <dune/istl/paamg/graph.hh>Go to the source code of this file.
Functions | |
| template<class G , class T1 , class T2 > | |
| void | Dune::fillIndexSetHoles (const G &graph, Dune::OwnerOverlapCopyCommunication< T1, T2 > &oocomm) |
| Fills the holes in an index set. More... | |
| template<class G , class T1 , class T2 > | |
| bool | Dune::graphRepartition (const G &graph, Dune::OwnerOverlapCopyCommunication< T1, T2 > &oocomm, Metis::idx_t nparts, std::shared_ptr< Dune::OwnerOverlapCopyCommunication< T1, T2 > > &outcomm, RedistributeInterface &redistInf, bool verbose=false) |
| execute a graph repartition for a giving graph and indexset. More... | |
Detailed Description
Functionality for redistributing a parallel index set using graph partitioning.
Refactored version of an intern.
Function Documentation
◆ fillIndexSetHoles()
| void Dune::fillIndexSetHoles | ( | const G & | graph, |
| Dune::OwnerOverlapCopyCommunication< T1, T2 > & | oocomm | ||
| ) |
Fills the holes in an index set.
In general the index set only needs to know those indices where communication my occur. In usual FE computations these are just those near the processor boundaries.
For the repartitioning we need to know all all indices for which data is stored. The missing indices will be created in this method.
- Parameters
-
graph The graph to reparition. oocomm The communication information.
References Dune::fillIndexSetHoles(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::indexSet(), and Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::remoteIndices().
Referenced by Dune::fillIndexSetHoles(), and Dune::graphRepartition().
◆ graphRepartition()
| bool Dune::graphRepartition | ( | const G & | graph, |
| Dune::OwnerOverlapCopyCommunication< T1, T2 > & | oocomm, | ||
| Metis::idx_t | nparts, | ||
| std::shared_ptr< Dune::OwnerOverlapCopyCommunication< T1, T2 > > & | outcomm, | ||
| RedistributeInterface & | redistInf, | ||
| bool | verbose = false |
||
| ) |
execute a graph repartition for a giving graph and indexset.
This function provides repartition functionality using the PARMETIS library
- Parameters
-
graph The given graph to repartition oocomm The parallel information about the graph. nparts The number of domains the repartitioning should achieve. [out] outcomm Pointer store the parallel information of the redistributed domains in. redistInf Redistribute interface verbose Verbosity flag to give out additional information.
References Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyCopyToAll(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyOwnerToAll(), Dune::fillIndexSetHoles(), Dune::graphRepartition(), and Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::indexSet().
Referenced by Dune::graphRepartition().
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(May 27, 22:36, 2026)