51 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
67 template<
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] );
117 int numMyRows = NewMatrix->NumMyRows();
118 for(
int i = 0; i < numMyRows; ++i )
120 orig.ExtractMyRowView( i, indicesCnt, myValues, myIndices );
121 NewMatrix->InsertMyValues( i, indicesCnt, myValues, myIndices );
124 NewMatrix->FillComplete();
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.";
long long IndexBase64() const
long long NumGlobalElements64() const
~CrsMatrix_Reindex()
Destructor.
NewTypeRef operator()(OriginalTypeRef orig)
Constructs "reindexed" Matrix.
int NumMyElements() const
const Epetra_Map & NewRowMap_
const Epetra_Comm & Comm() const
NewTypeRef Toperator(OriginalTypeRef orig)