dune-istl
2.5-git
|
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy semantics. More...
#include <dune/istl/owneroverlapcopy.hh>
Classes | |
struct | AddGatherScatter |
struct | CopyGatherScatter |
gather/scatter callback for communcation More... | |
Public Types | |
typedef Dune::ParallelIndexSet< GlobalIdType, LI, 512 > | PIS |
typedef Dune::RemoteIndices< PIS > | RI |
typedef Dune::RemoteIndexListModifier< PIS, typename RI::Allocator, false > | RILM |
typedef RI::RemoteIndex | RX |
typedef Dune::BufferedCommunicator | BC |
typedef Dune::Interface | IF |
typedef EnumItem< AttributeSet, OwnerOverlapCopyAttributeSet::owner > | OwnerSet |
typedef EnumItem< AttributeSet, OwnerOverlapCopyAttributeSet::copy > | CopySet |
typedef Combine< EnumItem< AttributeSet, OwnerOverlapCopyAttributeSet::owner >, EnumItem< AttributeSet, OwnerOverlapCopyAttributeSet::overlap >, AttributeSet > | OwnerOverlapSet |
typedef Dune::AllSet< AttributeSet > | AllSet |
typedef Dune::EnumItem< AttributeSet, OwnerOverlapCopyAttributeSet::copy > | CopyFlags |
typedef Dune::ParallelIndexSet< GlobalIdType, LI, 512 > | ParallelIndexSet |
The type of the parallel index set. More... | |
typedef Dune::RemoteIndices< PIS > | RemoteIndices |
The type of the remote indices. More... | |
typedef Dune::GlobalLookupIndexSet< ParallelIndexSet > | GlobalLookupIndexSet |
The type of the reverse lookup of indices. More... | |
Public Member Functions | |
void | setSolverCategory (SolverCategory set) |
Set right Solver Category (default is overlapping). More... | |
SolverCategory::Category | getSolverCategory () const |
Get Solver Category. More... | |
const CollectiveCommunication< MPI_Comm > & | communicator () const |
template<class T > | |
void | copyOwnerToAll (const T &source, T &dest) const |
Communicate values from owner data points to all other data points. More... | |
template<class T > | |
void | copyCopyToAll (const T &source, T &dest) const |
Communicate values from copy data points to all other data points. More... | |
template<class T > | |
void | addOwnerOverlapToAll (const T &source, T &dest) const |
Communicate values from owner data points to all other data points and add them to those values. More... | |
template<class T > | |
void | addOwnerCopyToAll (const T &source, T &dest) const |
Communicate values from owner and copy data points to all other data points and add them to those values. More... | |
template<class T > | |
void | addOwnerCopyToOwnerCopy (const T &source, T &dest) const |
Communicate values from owner and copy data points to owner and copy data points and add them to those values. More... | |
template<class T1 , class T2 > | |
void | dot (const T1 &x, const T1 &y, T2 &result) const |
Compute a global dot product of two vectors. More... | |
template<class T1 > | |
FieldTraits< typename T1::field_type >::real_type | norm (const T1 &x) const |
Compute the global euclidian norm of a vector. More... | |
const ParallelIndexSet & | indexSet () const |
Get the underlying parallel index set. More... | |
const RemoteIndices & | remoteIndices () const |
Get the underlying remote indices. More... | |
ParallelIndexSet & | indexSet () |
Get the underlying parallel index set. More... | |
RemoteIndices & | remoteIndices () |
Get the underlying remote indices. More... | |
void | buildGlobalLookup () |
void | buildGlobalLookup (std::size_t size) |
void | freeGlobalLookup () |
const GlobalLookupIndexSet & | globalLookup () const |
template<class T1 > | |
void | project (T1 &x) const |
Set vector to zero at copy dofs. More... | |
OwnerOverlapCopyCommunication (MPI_Comm comm_, SolverCategory::Category cat_=SolverCategory::overlapping, bool freecomm_=false) | |
Construct the communication without any indices. More... | |
OwnerOverlapCopyCommunication (SolverCategory::Category cat_=SolverCategory::overlapping) | |
Construct the communication without any indices using MPI_COMM_WORLD. More... | |
OwnerOverlapCopyCommunication (const IndexInfoFromGrid< GlobalIdType, LocalIdType > &indexinfo, MPI_Comm comm_, SolverCategory::Category cat_=SolverCategory::overlapping, bool freecomm_=false) | |
Constructor. More... | |
~OwnerOverlapCopyCommunication () | |
Protected Member Functions | |
void | buildOwnerOverlapToAllInterface () const |
void | buildOwnerToAllInterface () const |
void | buildOwnerCopyToAllInterface () const |
void | buildOwnerCopyToOwnerCopyInterface () const |
void | buildCopyToAllInterface () const |
Friends | |
template<typename M , typename G , typename L > | |
void | loadMatrixMarket (M &, const std::string &, OwnerOverlapCopyCommunication< G, L > &, bool) |
Load a parallel matrix/vector stored in matrix market format. More... | |
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy semantics.
set up communication from known distribution with owner/overlap/copy semantics
typedef Dune::AllSet<AttributeSet> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::AllSet |
typedef Dune::BufferedCommunicator Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::BC |
typedef Dune::EnumItem<AttributeSet,OwnerOverlapCopyAttributeSet::copy> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::CopyFlags |
typedef EnumItem<AttributeSet,OwnerOverlapCopyAttributeSet::copy> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::CopySet |
typedef Dune::GlobalLookupIndexSet<ParallelIndexSet> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::GlobalLookupIndexSet |
The type of the reverse lookup of indices.
typedef Dune::Interface Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::IF |
typedef Combine<EnumItem<AttributeSet,OwnerOverlapCopyAttributeSet::owner>,EnumItem<AttributeSet,OwnerOverlapCopyAttributeSet::overlap>,AttributeSet> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::OwnerOverlapSet |
typedef EnumItem<AttributeSet,OwnerOverlapCopyAttributeSet::owner> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::OwnerSet |
typedef Dune::ParallelIndexSet<GlobalIdType,LI,512> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::ParallelIndexSet |
The type of the parallel index set.
typedef Dune::ParallelIndexSet<GlobalIdType,LI,512> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::PIS |
typedef Dune::RemoteIndices<PIS> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::RemoteIndices |
The type of the remote indices.
typedef Dune::RemoteIndices<PIS> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::RI |
typedef Dune::RemoteIndexListModifier<PIS,typename RI::Allocator,false> Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::RILM |
typedef RI::RemoteIndex Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::RX |
|
inline |
Construct the communication without any indices.
The local index set and the remote indices have to be set up later on.
comm_ | The MPI Communicator to use, e. g. MPI_COMM_WORLD |
cat_ | The Solver category, default is overlapping |
freecomm_ | Whether to free the communicator comm_ in the destructor, default is false |
|
inline |
Construct the communication without any indices using MPI_COMM_WORLD.
The local index set and the remote indices have to be set up later on.
cat_ | The Solver category, default is overlapping is false |
|
inline |
Constructor.
indexinfo | The set of IndexTripels describing the local and remote indices. |
comm_ | The communicator to use in the communication. |
cat_ | The Solver category, default is overlapping |
freecomm_ | Whether to free the communicator comm_ in the destructor, default is false |
|
inline |
|
inline |
Communicate values from owner and copy data points to all other data points and add them to those values.
source The data to send from. dest The data to add them communicated values to.
|
inline |
Communicate values from owner and copy data points to owner and copy data points and add them to those values.
source The data to send from. dest The data to add the communicated values to.
|
inline |
Communicate values from owner data points to all other data points and add them to those values.
source The data to send from. dest The data to add them communicated values to.
|
inlineprotected |
|
inline |
|
inline |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inline |
|
inline |
Communicate values from copy data points to all other data points.
source The data to send from. dest The data to send to.
|
inline |
Communicate values from owner data points to all other data points.
source The data to send from. dest The data to send to.
|
inline |
Compute a global dot product of two vectors.
x | The first vector of the product. |
y | The second vector of the product. |
result | Reference to store the result in. |
|
inline |
|
inline |
Get Solver Category.
|
inline |
|
inline |
Get the underlying parallel index set.
|
inline |
Get the underlying parallel index set.
|
inline |
Compute the global euclidian norm of a vector.
x | The vector to compute the norm of. |
|
inline |
Set vector to zero at copy dofs.
x | The vector to project. |
|
inline |
Get the underlying remote indices.
|
inline |
Get the underlying remote indices.
|
inline |
Set right Solver Category (default is overlapping).
|
friend |
Load a parallel matrix/vector stored in matrix market format.
More about the matrix market exchange format can be found here.
matrix | Where to store the matrix/vector. |
filename | the name of the filename (without suffix and rank!) rank i will read the file filename_i.mm |
comm | The information about the data distribution. |
readIndices | Whether to read the parallel index information. If true rank i reads the index information form file filename_i.idx And builds the remote indices information. |