Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | List of all members
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]

Public Types

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

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. More...
 
 OverlapGraph (const OverlapGraph< LocalOrdinal, GlobalOrdinal, Node > &Source)
 Copy constructor. More...
 
virtual ~OverlapGraph ()
 Destructor (virtual for memory safety of derived classes). More...
 
const Tpetra::CrsGraph
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapGraph () const
 Return the overlap graph. More...
 
const Tpetra::Map
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapRowMap () const
 Return the overlap graph's row Map. More...
 
const Tpetra::Import
< LocalOrdinal, GlobalOrdinal,
Node > & 
getOverlapImporter () const
 Return the Import object. More...
 
int OverlapLevel () const
 Return the level of overlap used to create this graph. More...
 

Detailed Description

template<class LocalOrdinal = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
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 = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
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 = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::~OverlapGraph ( )
inlinevirtual

Destructor (virtual for memory safety of derived classes).

Member Function Documentation

template<class LocalOrdinal = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
const Tpetra::CrsGraph<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapGraph ( ) const
inline

Return the overlap graph.

template<class LocalOrdinal = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapRowMap ( ) const
inline

Return the overlap graph's row Map.

template<class LocalOrdinal = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
const Tpetra::Import<LocalOrdinal,GlobalOrdinal,Node>& Ifpack2::OverlapGraph< LocalOrdinal, GlobalOrdinal, Node >::getOverlapImporter ( ) const
inline

Return the Import object.

template<class LocalOrdinal = typename Tpetra::CrsGraph<>::local_ordinal_type, class GlobalOrdinal = typename Tpetra::CrsGraph<LocalOrdinal>::global_ordinal_type, class Node = typename Tpetra::CrsGraph<LocalOrdinal, GlobalOrdinal>::node_type>
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: