IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
IBTK::ParallelEdgeMap Class Reference

Class ParallelEdgeMap is a utility class for managing edge maps (i.e., maps from vertices to links between vertices) in parallel.

#include <ibtk/ParallelEdgeMap.h>

Inheritance diagram for IBTK::ParallelEdgeMap:
Inheritance graph
[legend]

Public Member Functions

 ParallelEdgeMap ()=default
 Default constructor. More...
 
virtual ~ParallelEdgeMap ()=default
 Destructor. More...
 
int addEdge (const std::pair< int, int > &link, int mastr_idx=invalid_index)
 Add an edge to the edge map. More...
 
void removeEdge (const std::pair< int, int > &link, int mastr_idx=invalid_index)
 Remove an edge from the edge map. More...
 
void communicateData ()
 Communicate data to (re-)initialize the edge map. More...
 
const std::multimap< int, std::pair< int, int > > & getEdgeMap () const
 Return a const reference to the edge map. More...
 

Private Member Functions

 ParallelEdgeMap (const ParallelEdgeMap &from)=delete
 Copy constructor. More...
 
ParallelEdgeMapoperator= (const ParallelEdgeMap &that)=delete
 Assignment operator. More...
 

Private Attributes

std::multimap< int, std::pair< int, int > > d_edge_map
 
std::multimap< int, std::pair< int, int > > d_pending_additions
 
std::multimap< int, std::pair< int, int > > d_pending_removals
 

Constructor & Destructor Documentation

◆ ParallelEdgeMap() [1/2]

IBTK::ParallelEdgeMap::ParallelEdgeMap ( )
default

◆ ~ParallelEdgeMap()

virtual IBTK::ParallelEdgeMap::~ParallelEdgeMap ( )
virtualdefault

◆ ParallelEdgeMap() [2/2]

IBTK::ParallelEdgeMap::ParallelEdgeMap ( const ParallelEdgeMap from)
privatedelete
Parameters
fromThe value to copy to this object.
Note
This constructor is not implemented and should not be used.

Member Function Documentation

◆ addEdge()

int IBTK::ParallelEdgeMap::addEdge ( const std::pair< int, int > &  link,
int  mastr_idx = invalid_index 
)
Returns
The master node index to be associated with the edge in the edge map.
Note
This method is not collective (i.e., it does not have to be called by all MPI tasks); however, it is necessary to call the collective function ParallelEdgeMap::communicateData() to finalize all parallel communication.
By default, the master index associated with each edge is the vertex with minimum index in the link.

◆ removeEdge()

void IBTK::ParallelEdgeMap::removeEdge ( const std::pair< int, int > &  link,
int  mastr_idx = invalid_index 
)
Note
This method is not collective (i.e., it does not have to be called by all MPI tasks); however, it is necessary to call the collective function ParallelEdgeMap::communicateData() to finalize all parallel communication.
The master index argument is optional and is only used as a hint to attempt to find the link in the link table.

◆ communicateData()

void IBTK::ParallelEdgeMap::communicateData ( )

◆ getEdgeMap()

const std::multimap<int, std::pair<int, int> >& IBTK::ParallelEdgeMap::getEdgeMap ( ) const

◆ operator=()

ParallelEdgeMap& IBTK::ParallelEdgeMap::operator= ( const ParallelEdgeMap that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

Member Data Documentation

◆ d_edge_map

std::multimap<int, std::pair<int, int> > IBTK::ParallelEdgeMap::d_edge_map
private

◆ d_pending_additions

std::multimap<int, std::pair<int, int> > IBTK::ParallelEdgeMap::d_pending_additions
private

◆ d_pending_removals

std::multimap<int, std::pair<int, int> > IBTK::ParallelEdgeMap::d_pending_removals
private

The documentation for this class was generated from the following file: