42#ifndef EPETRAEXT_BLOCKUTILITY_H
43#define EPETRAEXT_BLOCKUTILITY_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>
150 template<
typename int_type>
153 template<
typename int_type>
156 template<
typename int_type>
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 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)
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.
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 long long CalculateOffset64(const Epetra_BlockMap &BaseMap)
static Epetra_CrsGraph * GenerateBlockGraph(const Epetra_RowMatrix &BaseMatrix, const std::vector< std::vector< long long > > &RowStencil, const std::vector< long long > &RowIndices, const Epetra_Comm &GlobalComm)
static Epetra_CrsGraph * GenerateBlockGraph(const Epetra_CrsGraph &BaseGraph, const std::vector< std::vector< long long > > &RowStencil, const std::vector< long long > &RowIndices, const Epetra_Comm &GlobalComm)
static int_type TCalculateOffset(const Epetra_BlockMap &BaseMap)
static void TGenerateRowStencil(const Epetra_CrsGraph &LocalBlockGraph, std::vector< int_type > RowIndices, std::vector< std::vector< int_type > > &RowStencil)
static Epetra_CrsGraph * GenerateBlockGraph(const Epetra_RowMatrix &BaseMatrix, const std::vector< std::vector< int > > &RowStencil, const std::vector< int > &RowIndices, const Epetra_Comm &GlobalComm)
static Epetra_Map * TGenerateBlockMap(const Epetra_BlockMap &BaseMap, const int_type *RowIndices, int num_indices, const Epetra_Comm &GlobalComm, int_type Offset=0)
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)
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.