42 #ifndef EPETRAEXT_BLOCKUTILITY_H
43 #define EPETRAEXT_BLOCKUTILITY_H
47 #include <Epetra_ConfigDefs.h>
48 #include <Epetra_CrsGraph.h>
49 #include <Epetra_RowMatrix.h>
65 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
68 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
79 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
82 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
105 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
108 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
113 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
117 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
125 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
128 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
133 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
141 template<
typename int_type>
144 template<
typename int_type>
147 template<
typename int_type>
148 static Epetra_CrsGraph * TGenerateBlockGraph(
const Epetra_CrsGraph & BaseGraph,
const std::vector< std::vector<int_type> > & RowStencil,
const std::vector<int_type> & RowIndices,
const Epetra_Comm & GlobalComm );
150 template<
typename int_type>
151 static Epetra_CrsGraph * TGenerateBlockGraph(
const Epetra_RowMatrix & BaseMatrix,
const std::vector< std::vector<int_type> > & RowStencil,
const std::vector<int_type> & RowIndices,
const Epetra_Comm & GlobalComm );
153 template<
typename int_type>
156 template<
typename int_type>
157 static void TGenerateRowStencil(
const Epetra_CrsGraph& LocalBlockGraph, std::vector<int_type> RowIndices, std::vector< std::vector<int_type> >& RowStencil);
static void GenerateRowStencil(const Epetra_CrsGraph &LocalBlockGraph, std::vector< int > RowIndices, std::vector< std::vector< int > > &RowStencil)
Generate stencil arrays from a local block graph.
static long long CalculateOffset64(const Epetra_BlockMap &BaseMap)
static int CalculateOffset(const Epetra_BlockMap &BaseMap)
Routine for calculating Offset for creating unique global IDs for Block representation.
static Epetra_Map * GenerateBlockMap(const Epetra_BlockMap &BaseMap, const int *RowIndices, int num_indices, const Epetra_Comm &GlobalComm, int Offset=0)
static Epetra_CrsGraph * GenerateBlockGraph(const Epetra_CrsGraph &BaseGraph, const std::vector< std::vector< int > > &RowStencil, const std::vector< int > &RowIndices, const Epetra_Comm &GlobalComm)
BlockCrsMatrix constuctor.