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";
171 if (!
newObj_->Filled())
return(
false);
NewTypeRef transform(OriginalTypeRef orig)
bool GlobalIndicesLongLong() const
bool SameAs(const Epetra_BlockMap &Map) const
bool GlobalIndicesInt() const
int NumMyElements() const
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...
int MyGlobalElementsPtr(int *&MyGlobalElementList) const
const Epetra_Comm & Comm() const
bool fwd()
Forward transfer of data from orig object input in the operator() method call to the new object creat...
~CrsMatrix_SubCopy()
Destructor.
NewTypeRef operator()(OriginalTypeRef orig)
Transformation Operator.
Epetra_Import * importer_
int RemoteIDList(int NumIDs, const int *GIDList, int *PIDList, int *LIDList) const