Ifpack2 Templated Preconditioning Package Version 1.0
Public Types | Public Member Functions
Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Construct an overlapped graph from a given nonoverlapping graph. More...

#include <Ifpack2_OverlapGraph.hpp>

Inheritance diagram for Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef Tpetra::CrsGraph
< LocalOrdinal, GlobalOrdinal,
Node > 
graph_type
 The Tpetra::CrsGraph specialization that this class uses.

Public Member Functions

 OverlapGraph (const Teuchos::RCP< const graph_type > &UserMatrixGraph_in, int OverlapLevel_in)
 Constructor that takes a graph and the level of overlap.
 OverlapGraph (const OverlapGraph< LocalOrdinal, GlobalOrdinal, Node > &Source)
 Copy constructor.
virtual ~OverlapGraph ()
 Destructor (virtual for memory safety of derived classes).
const Tpetra::CrsGraph
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapGraph () const
 Return the overlap graph.
const Tpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapRowMap () const
 Return the overlap graph's row Map.
const Tpetra::Import
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapImporter () const
 Return the Import object.
int OverlapLevel () const
 Return the level of overlap used to create this graph.

Detailed Description

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
class Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >

Construct an overlapped graph from a given nonoverlapping graph.

FIXME (mfh 26 Sep 2013) It would be more appropriate for this class to have a single template parameter, namely a specialization of Tpetra::CrsGraph or Tpetra::RowGraph. That would avoid issues with the optional fourth template parameter of Tpetra::CrsGraph.

FIXME (mfh 26 Sep 2013) I seem to have found this class in a half-implemented state. I did not add this class and I make no promises that it works. I heartily encourage developers to make use of the Ifpack2::Details namespace for classes that they are not yet ready to make public.


Member Typedef Documentation

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Tpetra::CrsGraph<LocalOrdinal,GlobalOrdinal,Node> Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::graph_type

The Tpetra::CrsGraph specialization that this class uses.


Constructor & Destructor Documentation

template<class LocalOrdinal , class GlobalOrdinal , class Node >
Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::OverlapGraph ( const Teuchos::RCP< const graph_type > &  UserMatrixGraph_in,
int  OverlapLevel_in 
)

Constructor that takes a graph and the level of overlap.

Parameters:
UserMatrixGraph_in[in] The input graph. We assume that its row Map is nonoverlapping.
OverlapLevel_in[in] The level of overlap; zero means none.
template<class LocalOrdinal , class GlobalOrdinal , class Node >
Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::OverlapGraph ( const OverlapGraph< LocalOrdinal, GlobalOrdinal, Node > &  Source)

Copy constructor.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
virtual Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::~OverlapGraph ( ) [inline, virtual]

Destructor (virtual for memory safety of derived classes).


Member Function Documentation

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
const Tpetra::CrsGraph<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapGraph ( ) const [inline]

Return the overlap graph.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapRowMap ( ) const [inline]

Return the overlap graph's row Map.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
const Tpetra::Import<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapImporter ( ) const [inline]

Return the Import object.

template<class LocalOrdinal, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
int Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::OverlapLevel ( ) const [inline]

Return the level of overlap used to create this graph.

The graph created by this class uses a recursive definition of overlap. Level one overlap is created by copying all off-process rows that are reached to be at least one column of the rows that are on processor. Level two overlap is the same process used on the level one graph, and so on.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends