60template<
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);
~CrsMatrix_SubCopy()
Destructor.
NewTypeRef transform(OriginalTypeRef orig)
bool fwd()
Forward transfer of data from orig object input in the operator() method call to the new object creat...
Epetra_Import * importer_
bool rvs()
Reverse transfer of data from new object created in the operator() method call to the orig object inp...
NewTypeRef operator()(OriginalTypeRef orig)
Transformation Operator.
int RemoteIDList(int NumIDs, const int *GIDList, int *PIDList, int *LIDList) const
long long GID64(int LID) const
bool SameAs(const Epetra_BlockMap &Map) const
bool GlobalIndicesInt() const
const Epetra_Comm & Comm() const
int NumMyElements() const
bool MyGID(int GID_in) const
bool GlobalIndicesLongLong() const
int MyGlobalElementsPtr(int *&MyGlobalElementList) const
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.