60 template<
typename int_type>
68 assert( orig.Filled() );
83 for(
int i = 0; i < nNumRows; ++i )
85 if( !matched ) std::cerr <<
"EDT_CrsMatrix_SubCopy: Bad new_row_Map. GIDs of new row map must be GIDs of the original row map on the same processor.\n";
90 int_type* newDomainMap_MyGlob = 0;
93 for(
int i = 0; i < nNumDomain; ++i )
94 matched = matched && ( pidList[i]>=0 );
97 if( !matched ) std::cout <<
"EDT_CrsMatrix_SubCopy: Bad newDomainMap. One or more GIDs in new domain map are not part of original domain map.\n";
105 int_type* oColMap_MyGlob = 0;
110 int_type * origColGidList = 0;
112 for(
int i = 0; i < oNumCols; ++i )
114 newColMapGidList[numNewCols++]= origColGidList[i];
139 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 141 return transform<int>(orig);
145 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES 147 return transform<long long>(orig);
151 throw "CrsMatrix_SubCopy::operator(): GlobalIndices type unknown";
NewTypeRef transform(OriginalTypeRef orig)
bool SameAs(const Epetra_BlockMap &Map) const
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.
int FillComplete(bool OptimizeDataStorage=true)
int PutScalar(double ScalarConstant)
int Export(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
long long GID64(int LID) const
bool rvs()
Reverse transfer of data from new object created in the operator() method call to the orig object inp...
bool GlobalIndicesInt() const
int NumMyElements() const
const Epetra_Comm & Comm() const
int RemoteIDList(int NumIDs, const int *GIDList, int *PIDList, int *LIDList) const
bool fwd()
Forward transfer of data from orig object input in the operator() method call to the new object creat...
~CrsMatrix_SubCopy()
Destructor.
int MyGlobalElementsPtr(int *&MyGlobalElementList) const
NewTypeRef operator()(OriginalTypeRef orig)
Transformation Operator.
bool GlobalIndicesLongLong() const
int Import(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
Epetra_Import * importer_