51#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
67template<
typename int_type>
82 if (NumGlobalElements == 0 && orig.RowMap().NumGlobalElements64() == 0 )
95 Epetra_Map tmpColMap( NumGlobalElements, NumMyElements, 0, OldDomainMap.
Comm() );
97 for(
int i = 0; i < NumMyElements; ++i )
98 Cols[i] = (int_type) tmpColMap.
GID64(i);
100 NewCols.Import( Cols, Importer,
Insert );
102 std::vector<int_type*> NewColIndices(1);
103 NewCols.ExtractView( &NewColIndices[0] );
118 for(
int i = 0; i < numMyRows; ++i )
120 orig.ExtractMyRowView( i, indicesCnt, myValues, myIndices );
137#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
138 if(orig.RowMatrixRowMap().GlobalIndicesInt())
139 return Toperator<int>(orig);
142#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
143 if(orig.RowMatrixRowMap().GlobalIndicesLongLong())
144 return Toperator<long long>(orig);
147 throw "EpetraExt::CrsMatrix_Reindex::operator(): Global indices unknown.";
NewTypeRef Toperator(OriginalTypeRef orig)
NewTypeRef operator()(OriginalTypeRef orig)
Constructs "reindexed" Matrix.
~CrsMatrix_Reindex()
Destructor.
const Epetra_Map & NewRowMap_
long long IndexBase64() const
long long GID64(int LID) const
long long NumGlobalElements64() const
const Epetra_Comm & Comm() const
int NumMyElements() const
int FillComplete(bool OptimizeDataStorage=true)
int InsertMyValues(int MyRow, int NumEntries, const double *Values, const int *Indices)
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.