DUNE PDELab (git)

Modifier for adding and/or deleting remote indices from the remote index list. More...

#include <dune/common/parallel/remoteindices.hh>

Public Types

typedef T ParallelIndexSet
 Type of the index set we use.
 
typedef ParallelIndexSet::GlobalIndex GlobalIndex
 The type of the global index.
 
typedef ParallelIndexSet::LocalIndex LocalIndex
 The type of the local index.
 
typedef LocalIndex::Attribute Attribute
 The type of the attribute.
 
typedef Dune::RemoteIndex< GlobalIndex, AttributeRemoteIndex
 Type of the remote indices we manage.
 
typedef A Allocator
 The type of the allocator for the remote index list.
 
typedef Dune::SLList< RemoteIndex, AllocatorRemoteIndexList
 The type of the remote index list.
 
typedef SLListModifyIterator< RemoteIndex, AllocatorModifyIterator
 The type of the modifying iterator of the remote index list.
 
typedef RemoteIndexList::const_iterator ConstIterator
 The type of the remote index list iterator.
 

Public Member Functions

void insert (const RemoteIndex &index)
 Insert an index to the list. More...
 
void insert (const RemoteIndex &index, const GlobalIndex &global)
 Insert an index to the list. More...
 
bool remove (const GlobalIndex &global)
 Remove a remote index. More...
 
void repairLocalIndexPointers ()
 Repair the pointers to the local index pairs. More...
 
 RemoteIndexListModifier ()
 Default constructor. More...
 

Static Public Attributes

static constexpr bool MODIFYINDEXSET = mode
 If true the index set corresponding to the remote indices might get modified. More...
 

Detailed Description

template<class T, class A, bool mode>
class Dune::RemoteIndexListModifier< T, A, mode >

Modifier for adding and/or deleting remote indices from the remote index list.

In some cases all the information about the indices also present on remote process might already be known. In this case this information can be provided to the RemoteIndices via this modifier. This prevents the global communication needed by a call to RemoteIndices::rebuild.

In some cases it might advisable to run IndicesSyncer::sync afterwards.

Warning
Use with care. If the indices are not consistent afterwards communication attempts might deadlock!

Constructor & Destructor Documentation

◆ RemoteIndexListModifier()

template<class T , class A , bool mode>
Dune::RemoteIndexListModifier< T, A, mode >::RemoteIndexListModifier ( )
inline

Default constructor.

Warning
Object is not usable!

Member Data Documentation

◆ MODIFYINDEXSET

template<class T , class A , bool mode>
constexpr bool Dune::RemoteIndexListModifier< T, A, mode >::MODIFYINDEXSET = mode
staticconstexpr

If true the index set corresponding to the remote indices might get modified.

If for example new indices are added to an index set all pointers of the remote indices to the local indices become invalid after ParallelIndexSet::endResize() was called.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 23, 23:29, 2024)