LifeV
DOFGatherer< MeshType > Class Template Reference

Class that produces a list of dof GID from a list of element LIDs. More...

#include <DOFGatherer.hpp>

+ Collaboration diagram for DOFGatherer< MeshType >:

Public Types

typedef FESpace< MeshType, MapEpetrafeSpace_Type
 Public typedefs. More...
 
typedef std::shared_ptr< feSpace_TypefeSpacePtr_Type
 

Private Attributes

const idTablePtr_Type M_elementIds
 
const std::shared_ptr< FESpace< MeshType, MapEpetra > > M_feSpace
 
idSetGroupPtr_Type M_dofGIDTable
 
 DOFGatherer (const idTablePtr_Type &elementIds, const feSpacePtr_Type &feSpace)
 Constructors and destructor. More...
 
virtual ~DOFGatherer ()
 Destructor. More...
 
const idSetGroupPtr_TypedofGIDTable () const
 Get methods. More...
 
void showMe (std::ostream &s=std::cout)
 Public methods. More...
 
void run ()
 Private methods. More...
 
void getDofGIDs (const idList_Type &elementLIDs, idSet_Type &dofGIDs)
 Helper method to obtain dof GIDs associated with element LIDs. More...
 
void dofClassification ()
 Private methods that computes unique and shared dofs in M_dofGIDTable. More...
 
void removeValues (const idSet_Type &valuesToRemove, idSet_Type &targetSet)
 Helper method that removes a subset of IDs from an idSet_Type. More...
 
const bool setsCouldIntersect (const idSet_Type &first, const idSet_Type &second) const
 Method that computes whether two (ordered) sets of IDs intersect. More...
 
const bool singleIntersect (const idSet_Type &first, const idSet_Type &second, Int &returnValue) const
 Method that checks if two ordered sets of IDs have a single shared value. More...
 

Detailed Description

template<typename MeshType>
class LifeV::DOFGatherer< MeshType >

Class that produces a list of dof GID from a list of element LIDs.

Author
Radu Popescu radu..nosp@m.pope.nosp@m.scu@e.nosp@m.pfl..nosp@m.ch

Objects of this class are constructed using an table of element LIDs (as an idTablePtr_Type object) and a finite element space (standard FESpace). The element LIDs are stored in a vector or vectors (see idTablePtr_Type in lifev/core/mesh/GraphUtil.hpp), where each vector contains the IDs of the elements in a second stage partition (for ShyLU_MT).

The DOFGatherer performs two operations, relevant to the second stage partitioning method used by multi-threaded solvers such as ShyLU_MT:

  1. It gathers for each set of element IDs, from the FESpace, all the dof GIDs that are associated with the elements.
  2. It will classify the dofs into unique sets, one for each element ID set, and a shared set, representing the dofs on the interface between the second stage parts. These shared dofs are removed from the unique sets and are place into a separate set, in the same table.

The classified dof sets can be accessed through the dofGIDTable method.

Definition at line 79 of file DOFGatherer.hpp.

Member Typedef Documentation

◆ feSpace_Type

Public typedefs.

Definition at line 83 of file DOFGatherer.hpp.

◆ feSpacePtr_Type

typedef std::shared_ptr<feSpace_Type> feSpacePtr_Type

Definition at line 84 of file DOFGatherer.hpp.

Constructor & Destructor Documentation

◆ DOFGatherer()

DOFGatherer ( const idTablePtr_Type elementIds,
const feSpacePtr_Type feSpace 
)

Constructors and destructor.

Constructor

Parameters
elementIds- table of element LIDs from the second stage mesh partition
feSpace- finite element space

Definition at line 184 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

◆ ~DOFGatherer()

~DOFGatherer ( )
virtual

Destructor.

Definition at line 194 of file DOFGatherer.hpp.

Member Function Documentation

◆ dofGIDTable()

const idSetGroupPtr_Type& dofGIDTable ( ) const
inline

Get methods.

Return a pointer to the classified dof table

Definition at line 103 of file DOFGatherer.hpp.

◆ showMe()

void showMe ( std::ostream &  s = std::cout)

Public methods.

Display the contents of the dof table

Definition at line 248 of file DOFGatherer.hpp.

◆ run()

void run ( )
private

Private methods.

This method performs all the computations

Definition at line 199 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

◆ getDofGIDs()

void getDofGIDs ( const idList_Type elementLIDs,
idSet_Type dofGIDs 
)
private

Helper method to obtain dof GIDs associated with element LIDs.

Parameters
elementLIDs- input list of element LIDs for which the dof lookup is desired
dofGIDs- output set of dof GIDs

Definition at line 226 of file DOFGatherer.hpp.

◆ dofClassification()

void dofClassification ( )
private

Private methods that computes unique and shared dofs in M_dofGIDTable.

Definition at line 264 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

◆ removeValues()

void removeValues ( const idSet_Type valuesToRemove,
idSet_Type targetSet 
)
private

Helper method that removes a subset of IDs from an idSet_Type.

Definition at line 303 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

◆ setsCouldIntersect()

const bool setsCouldIntersect ( const idSet_Type first,
const idSet_Type second 
) const
inlineprivate

Method that computes whether two (ordered) sets of IDs intersect.

Definition at line 137 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

◆ singleIntersect()

const bool singleIntersect ( const idSet_Type first,
const idSet_Type second,
Int returnValue 
) const
inlineprivate

Method that checks if two ordered sets of IDs have a single shared value.

Definition at line 148 of file DOFGatherer.hpp.

+ Here is the caller graph for this function:

Field Documentation

◆ M_elementIds

const idTablePtr_Type M_elementIds
private

Definition at line 176 of file DOFGatherer.hpp.

◆ M_feSpace

const std::shared_ptr<FESpace<MeshType, MapEpetra> > M_feSpace
private

Definition at line 177 of file DOFGatherer.hpp.

◆ M_dofGIDTable

idSetGroupPtr_Type M_dofGIDTable
private

Definition at line 178 of file DOFGatherer.hpp.


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