53#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
60#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
75#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
82#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
97#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
99 const int * myGlobalElements,
101 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm)
106#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
108 const long long * myGlobalElements,
110 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm)
116 const long long * myGlobalElements,
118 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm)
126#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
128 const int * myGlobalElements,
130 bool UserIsDistributedGlobal,
131 int UserMinAllGID,
int UserMaxAllGID)
132 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm, UserIsDistributedGlobal, UserMinAllGID, UserMaxAllGID)
137#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
139 const long long * myGlobalElements,
141 bool UserIsDistributedGlobal,
142 long long UserMinAllGID,
long long UserMaxAllGID)
143 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm, UserIsDistributedGlobal, UserMinAllGID, UserMaxAllGID)
148 const long long * myGlobalElements,
150 bool UserIsDistributedGlobal,
151 long long UserMinAllGID,
long long UserMaxAllGID)
152 :
Epetra_BlockMap(numGlobalElements, numMyElements, myGlobalElements, 1, indexBase, comm, UserIsDistributedGlobal, UserMinAllGID, UserMaxAllGID)
187 MPI_Comm NewComm,MyMPIComm = MpiComm->
Comm();
194 const int color = (
NumMyElements() == 0) ? MPI_UNDEFINED : 1;
200 int rv = MPI_Comm_split(MyMPIComm,color,0,&NewComm);
201 if(rv!=MPI_SUCCESS)
throw ReportError(
"Epetra_Map::RemoveEmptyProcesses: MPI_Comm_split failed.",-1);
203 if(color == MPI_UNDEFINED)
214#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
219#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
227#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
230#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
268 delete NewEpetraComm;
294#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
300#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
306 throw ReportError(
"Epetra_Map::ReplaceCommWithSubset ERROR, GlobalIndices type unknown.",-1);
Epetra_BlockMapData: The Epetra BlockMap Data Class.
bool OneToOneIsDetermined_
long long LastContiguousGID_
Epetra_IntSerialDenseVector MyGlobalElements_int_
long long NumGlobalPoints_
Epetra_HashTable< int > * LIDHash_
Epetra_IntSerialDenseVector LID_
Epetra_IntSerialDenseVector ElementSizeList_
bool ConstantElementSize_
Epetra_Directory * Directory_
Epetra_IntSerialDenseVector FirstPointInElementList_
long long NumGlobalElements_
Epetra_LongLongSerialDenseVector MyGlobalElements_LL_
Epetra_IntSerialDenseVector PointToElementList_
int LastContiguousGIDLoc_
bool GlobalIndicesLongLong_
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
long long IndexBase64() const
long long * MyGlobalElements64() const
Epetra_BlockMap & operator=(const Epetra_BlockMap &map)
Assignment Operator.
int IndexBase() const
Index base for this map.
Epetra_BlockMapData * BlockMapData_
long long NumGlobalElements64() const
bool GlobalIndicesInt() const
Returns true if map create with int NumGlobalElements.
int NumGlobalElements() const
Number of elements across all processors.
const Epetra_Comm & Comm() const
Access function for Epetra_Comm communicator.
int * MyGlobalElements() const
Pointer to internal array containing list of global IDs assigned to the calling processor.
int NumMyElements() const
Number of elements on the calling processor.
bool GlobalIndicesLongLong() const
Returns true if map create with long long NumGlobalElements.
Epetra_Comm: The Epetra Communication Abstract Base Class.
Epetra_Map: A class for partitioning vectors and matrices.
Epetra_Map & operator=(const Epetra_Map &map)
Assignment Operator.
virtual ~Epetra_Map(void)
Epetra_Map destructor.
Epetra_Map(int NumGlobalElements, int IndexBase, const Epetra_Comm &Comm)
Epetra_Map constructor for a Epetra-defined uniform linear distribution of elements.
Epetra_Map * RemoveEmptyProcesses() const
Return a new BlockMap with processes with zero elements removed.
Epetra_Map * ReplaceCommWithSubset(const Epetra_Comm *Comm) const
Replace this Map's communicator with a subset communicator.
Epetra_MpiComm: The Epetra MPI Communication Class.
MPI_Comm Comm() const
Extract MPI Communicator from a Epetra_MpiComm object.
int NumProc() const
Returns total number of processes.
virtual int ReportError(const std::string Message, int ErrorCode) const
Error reporting method.
virtual void SetLabel(const char *const Label)
Epetra_Object Label definition using char *.