DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::utils::mpi Namespace Reference

Namespaces

namespace  MPIPatternP2PInternal
 

Classes

class  MPICommunicatorP2P
 
class  MPIErrorCodeHandler
 
class  MPIPatternP2P
 A class template to store the communication pattern (i.e., which entries/nodes to receive from which processor and which entries/nodes to send to which processor). More...
 
class  MPIRequestersBase
 
class  MPIRequestersNBX
 
struct  Types
 A simple struct to return the MPIDatatype based on the user provided primitive data type (e.g., int, double, char, etc) More...
 
struct  Types< char >
 
struct  Types< double >
 
struct  Types< float >
 
struct  Types< int >
 
struct  Types< long >
 
struct  Types< long double >
 
struct  Types< long long int >
 
struct  Types< short >
 
struct  Types< signed char >
 
struct  Types< std::complex< double > >
 
struct  Types< std::complex< float > >
 
struct  Types< unsigned char >
 
struct  Types< unsigned int >
 
struct  Types< unsigned long >
 
struct  Types< unsigned long long int >
 
struct  Types< unsigned short >
 
struct  Types< wchar_t >
 

Typedefs

using ErrorCode = int
 The following provides a unified framework to use typedefs that will be valid both with and without the use of an MPI library. This allows the user to write application code in terms of the following typedefs, and as a result, compile the code successfully both with and without MPI. The idea is that while not using an MPI library, we uses aliases (typedefs) for the MPI datatypes (e.g.m MPIFloat, MPIByte, etc.) On the other hand, while not using an MPI library, the same aliases are equated to int (integer). The choice of int is arbitrary, one can use any other low-memory datatype (e.e., char, unsigned cha, etc) More...
 
using MPI_Status = struct { int count=0
 
using MPIInfo = int
 
using MPIDatatype = int
 
using MPIComm = int
 
using MPIRequest = int
 
using MPIStatus = int
 
using MPIGroup = int
 
using MPIOp = int
 
using MPIErrhandler = int
 
using MPIUserFunction = void(void *, void *, int *, MPIDatatype *)
 

Enumerations

enum class  MPITags : std::uint16_t {
  DUMMY_MPI_TAG = 100 , MPI_REQUESTERS_NBX_TAG , MPI_P2P_PATTERN_TAG , MPI_P2P_COMMUNICATOR_SCATTER_TAG ,
  MPI_P2P_COMMUNICATOR_GATHER_TAG = MPI_P2P_COMMUNICATOR_SCATTER_TAG + 200
}
 

Functions

int MPITypeContiguous (int count, MPIDatatype oldtype, MPIDatatype *newtype)
 
int MPIBarrier (MPIComm comm)
 
int MPIIbarrier (MPIComm comm, MPIRequest *request)
 
int MPICommCreateGroup (MPIComm comm, MPIGroup group, int tag, MPIComm *newcomm)
 
int MPICommFree (MPIComm *comm)
 
int MPICommGroup (MPIComm comm, MPIGroup *group)
 
int MPICommRank (MPIComm comm, int *rank)
 
int MPICommSize (MPIComm comm, int *size)
 
int MPIGroupFree (MPIGroup *group)
 
int MPIGroupIncl (MPIGroup group, int n, const int ranks[], MPIGroup *newgroup)
 
int MPIGroupTranslateRanks (MPIGroup group1, int n, const int ranks1[], MPIGroup group2, int ranks2[])
 
int MPIInit (int *argc, char ***argv)
 
int MPIInitialized (int *flag)
 
int MPIIprobe (int source, int tag, MPIComm comm, int *flag, MPIStatus *status)
 
int MPITest (MPIRequest *request, int *flag, MPIStatus *status)
 
int MPITestall (int count, MPIRequest *requests, int *flag, MPIStatus *statuses)
 
int MPIInitThread (int *argc, char ***argv, int required, int *provided)
 
int MPIOpCreate (MPIUserFunction *user_fn, int commute, MPIOp *op)
 
int MPIOpFree (MPIOp *op)
 
int MPIRequestFree (MPIRequest *request)
 
int MPITypeCommit (MPIDatatype *datatype)
 
int MPITypeFree (MPIDatatype *datatype)
 
int MPITypeVector (int count, int blocklength, int stride, MPIDatatype oldtype, MPIDatatype *newtype)
 
int MPIWait (MPIRequest *request, MPIStatus *status)
 
int MPIWaitall (int count, MPIRequest requests[], MPIStatus statuses[])
 
int MPIErrorString (int errorcode, char *string, int *resultlen)
 
int MPIFinalize (void)
 
int MPIFinalized (int *flag)
 
double MPIWtime (void)
 
bool MPIErrIsSuccess (int errCode)
 
std::string MPIErrMsg (int errCode)
 
std::pair< bool, std::string > MPIErrIsSuccessAndMsg (int errCode)
 
template<MemorySpace memorySpace>
int MPIAllreduce (const void *sendbuf, void *recvbuf, int count, MPIDatatype datatype, MPIOp op, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPIAllgather (const void *sendbuf, int sendcount, MPIDatatype sendtype, void *recvbuf, int recvcount, MPIDatatype recvtype, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPIAllgatherv (const void *sendbuf, int sendcount, MPIDatatype sendtype, void *recvbuf, const int *recvcounts, const int *displs, MPIDatatype recvtype, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPIBcast (void *buffer, int count, MPIDatatype datatype, int root, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPIIrecv (void *buf, int count, MPIDatatype datatype, int source, int tag, MPIComm comm, MPIRequest *request)
 
template<MemorySpace memorySpace>
int MPIIsend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm, MPIRequest *request)
 
template<MemorySpace memorySpace>
int MPIRecv (void *buf, int count, MPIDatatype datatype, int source, int tag, MPIComm comm, MPIStatus *status)
 
template<MemorySpace memorySpace>
int MPIReduce (void *sendbuf, void *recvbuf, int count, MPIDatatype datatype, MPIOp op, int root, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPISend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm)
 
template<MemorySpace memorySpace>
int MPISendrecv (const void *sendbuf, int sendcount, MPIDatatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPIDatatype recvtype, int source, int recvtag, MPIComm comm, MPIStatus *status)
 
template<MemorySpace memorySpace>
int MPIIssend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm, MPIRequest *request)
 
template<MemorySpace memorySpace>
int MPISsend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm)
 

Variables

int cancelled = 0
 
int MPI_SOURCE = 0
 
int MPI_TAG = 0
 
int MPI_ERROR = 0
 
int MPISuccess = 0
 
int MPIAnyTag = -1
 
int MPIAnySource = -1
 
MPIStatusMPIStatusIgnore = nullptr
 
MPIStatusMPIStatusesIgnore = nullptr
 
int * MPIErrCodesIgnore = nullptr
 
void * MPIInPlace = (void *)-1
 
MPIDatatype MPIChar = ((mpi::MPIDatatype)0x4c000101)
 
MPIDatatype MPISignedChar = ((mpi::MPIDatatype)0x4c000118)
 
MPIDatatype MPIUnsignedChar = ((mpi::MPIDatatype)0x4c000102)
 
MPIDatatype MPIByte = ((mpi::MPIDatatype)0x4c00010d)
 
MPIDatatype MPIWChar = ((mpi::MPIDatatype)0x4c00040e)
 
MPIDatatype MPIShort = ((mpi::MPIDatatype)0x4c000203)
 
MPIDatatype MPIUnsignedShort = ((mpi::MPIDatatype)0x4c000204)
 
MPIDatatype MPIInt = ((mpi::MPIDatatype)0x4c000405)
 
MPIDatatype MPIUnsigned = ((mpi::MPIDatatype)0x4c000406)
 
MPIDatatype MPILong = ((mpi::MPIDatatype)0x4c000407)
 
MPIDatatype MPIUnsignedLong = ((mpi::MPIDatatype)0x4c000408)
 
MPIDatatype MPIFloat = ((mpi::MPIDatatype)0x4c00040a)
 
MPIDatatype MPIDouble = ((mpi::MPIDatatype)0x4c00080b)
 
MPIDatatype MPILongDouble = ((mpi::MPIDatatype)0x4c00080c)
 
MPIDatatype MPILongLongInt = ((mpi::MPIDatatype)0x4c000809)
 
MPIDatatype MPIUnsignedLongLong = ((mpi::MPIDatatype)0x4c000819)
 
MPIDatatype MPILongLong = ((mpi::MPIDatatype)0x4c000809)
 
MPIDatatype MPIComplex = ((mpi::MPIDatatype)1275070494)
 
MPIDatatype MPIDoubleComplex = ((mpi::MPIDatatype)1275072546)
 
MPIComm MPICommWorld = ((mpi::MPIComm)0x44000000)
 
MPIComm MPICommSelf = ((mpi::MPIComm)0x44000001)
 
MPIComm MPICommNull = ((mpi::MPIComm)0x04000000)
 
MPIGroup MPIGroupNull = ((mpi::MPIGroup)0x08000000)
 
MPIDatatype MPIDatatypeNull = ((mpi::MPIDatatype)0x0c000000)
 
MPIRequest MPIRequestNull = ((mpi::MPIRequest)0x2c000000)
 
MPIErrhandler MPIErrHandlerNull
 
MPIOp MPIOpNull = ((mpi::MPIOp)0x18000000)
 
MPIOp MPIMax = (mpi::MPIOp)(0x58000001)
 
MPIOp MPIMin = (mpi::MPIOp)(0x58000002)
 
MPIOp MPISum = (mpi::MPIOp)(0x58000003)
 
MPIOp MPIProd = (mpi::MPIOp)(0x58000004)
 
MPIOp MPILAnd = (mpi::MPIOp)(0x58000005)
 
MPIOp MPIBAnd = (mpi::MPIOp)(0x58000006)
 
MPIOp MPILOr = (mpi::MPIOp)(0x58000007)
 
MPIOp MPIBOr = (mpi::MPIOp)(0x58000008)
 
MPIOp MPILXOr = (mpi::MPIOp)(0x58000009)
 
MPIOp MPIBXOr = (mpi::MPIOp)(0x5800000a)
 
MPIOp MPIMinLoc = (mpi::MPIOp)(0x5800000b)
 
MPIOp MPIMaxLoc = (mpi::MPIOp)(0x5800000c)
 
MPIOp MPIReplace = (mpi::MPIOp)(0x5800000d)
 
int MPIThreadSingle = 0
 
int MPIThreadFunneled = 1
 
int MPIThreadMultiple = 2
 
int MPIThreadSerialized = 3
 

Typedef Documentation

◆ ErrorCode

using dftefe::utils::mpi::ErrorCode = typedef int

The following provides a unified framework to use typedefs that will be valid both with and without the use of an MPI library. This allows the user to write application code in terms of the following typedefs, and as a result, compile the code successfully both with and without MPI. The idea is that while not using an MPI library, we uses aliases (typedefs) for the MPI datatypes (e.g.m MPIFloat, MPIByte, etc.) On the other hand, while not using an MPI library, the same aliases are equated to int (integer). The choice of int is arbitrary, one can use any other low-memory datatype (e.e., char, unsigned cha, etc)

There are several useful and widely used macros that are defined in mpi.h (e.g., MPIAnyTag, MPIStatusIgnore, etc.). Thus, for the case where an MPI library is not used, we define those macros with default integral values. As as result, one can use those macros in an application code, irrespective of the use of an MPI library.

◆ MPI_Status

using dftefe::utils::mpi::MPI_Status = typedef struct { int count = 0

◆ MPIComm

using dftefe::utils::mpi::MPIComm = typedef int

◆ MPIDatatype

using dftefe::utils::mpi::MPIDatatype = typedef int

◆ MPIErrhandler

using dftefe::utils::mpi::MPIErrhandler = typedef int

◆ MPIGroup

using dftefe::utils::mpi::MPIGroup = typedef int

◆ MPIInfo

using dftefe::utils::mpi::MPIInfo = typedef int

◆ MPIOp

using dftefe::utils::mpi::MPIOp = typedef int

◆ MPIRequest

using dftefe::utils::mpi::MPIRequest = typedef int

◆ MPIStatus

using dftefe::utils::mpi::MPIStatus = typedef int

◆ MPIUserFunction

using dftefe::utils::mpi::MPIUserFunction = typedef void(void *, void *, int *, MPIDatatype *)

Enumeration Type Documentation

◆ MPITags

enum class dftefe::utils::mpi::MPITags : std::uint16_t
strong
Enumerator
DUMMY_MPI_TAG 
MPI_REQUESTERS_NBX_TAG 
MPI_P2P_PATTERN_TAG 
MPI_P2P_COMMUNICATOR_SCATTER_TAG 
MPI_P2P_COMMUNICATOR_GATHER_TAG 

Function Documentation

◆ MPIAllgather()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIAllgather ( const void *  sendbuf,
int  sendcount,
MPIDatatype  sendtype,
void *  recvbuf,
int  recvcount,
MPIDatatype  recvtype,
MPIComm  comm 
)

◆ MPIAllgatherv()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIAllgatherv ( const void *  sendbuf,
int  sendcount,
MPIDatatype  sendtype,
void *  recvbuf,
const int *  recvcounts,
const int *  displs,
MPIDatatype  recvtype,
MPIComm  comm 
)

◆ MPIAllreduce()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIAllreduce ( const void *  sendbuf,
void *  recvbuf,
int  count,
MPIDatatype  datatype,
MPIOp  op,
MPIComm  comm 
)

◆ MPIBarrier()

int dftefe::utils::mpi::MPIBarrier ( MPIComm  comm)
Here is the caller graph for this function:

◆ MPIBcast()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIBcast ( void *  buffer,
int  count,
MPIDatatype  datatype,
int  root,
MPIComm  comm 
)

◆ MPICommCreateGroup()

int dftefe::utils::mpi::MPICommCreateGroup ( MPIComm  comm,
MPIGroup  group,
int  tag,
MPIComm newcomm 
)

◆ MPICommFree()

int dftefe::utils::mpi::MPICommFree ( MPIComm comm)

◆ MPICommGroup()

int dftefe::utils::mpi::MPICommGroup ( MPIComm  comm,
MPIGroup group 
)

◆ MPICommRank()

int dftefe::utils::mpi::MPICommRank ( MPIComm  comm,
int *  rank 
)
Here is the caller graph for this function:

◆ MPICommSize()

int dftefe::utils::mpi::MPICommSize ( MPIComm  comm,
int *  size 
)
Here is the caller graph for this function:

◆ MPIErrIsSuccess()

bool dftefe::utils::mpi::MPIErrIsSuccess ( int  errCode)
Here is the caller graph for this function:

◆ MPIErrIsSuccessAndMsg()

std::pair< bool, std::string > dftefe::utils::mpi::MPIErrIsSuccessAndMsg ( int  errCode)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MPIErrMsg()

std::string dftefe::utils::mpi::MPIErrMsg ( int  errCode)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MPIErrorString()

int dftefe::utils::mpi::MPIErrorString ( int  errorcode,
char *  string,
int *  resultlen 
)

◆ MPIFinalize()

int dftefe::utils::mpi::MPIFinalize ( void  )

◆ MPIFinalized()

int dftefe::utils::mpi::MPIFinalized ( int *  flag)

◆ MPIGroupFree()

int dftefe::utils::mpi::MPIGroupFree ( MPIGroup group)

◆ MPIGroupIncl()

int dftefe::utils::mpi::MPIGroupIncl ( MPIGroup  group,
int  n,
const int  ranks[],
MPIGroup newgroup 
)

◆ MPIGroupTranslateRanks()

int dftefe::utils::mpi::MPIGroupTranslateRanks ( MPIGroup  group1,
int  n,
const int  ranks1[],
MPIGroup  group2,
int  ranks2[] 
)

◆ MPIIbarrier()

int dftefe::utils::mpi::MPIIbarrier ( MPIComm  comm,
MPIRequest request 
)
Here is the caller graph for this function:

◆ MPIInit()

int dftefe::utils::mpi::MPIInit ( int *  argc,
char ***  argv 
)

◆ MPIInitialized()

int dftefe::utils::mpi::MPIInitialized ( int *  flag)

◆ MPIInitThread()

int dftefe::utils::mpi::MPIInitThread ( int *  argc,
char ***  argv,
int  required,
int *  provided 
)

◆ MPIIprobe()

int dftefe::utils::mpi::MPIIprobe ( int  source,
int  tag,
MPIComm  comm,
int *  flag,
MPIStatus status 
)
Here is the caller graph for this function:

◆ MPIIrecv()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIIrecv ( void *  buf,
int  count,
MPIDatatype  datatype,
int  source,
int  tag,
MPIComm  comm,
MPIRequest request 
)

◆ MPIIsend()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIIsend ( const void *  buf,
int  count,
MPIDatatype  datatype,
int  dest,
int  tag,
MPIComm  comm,
MPIRequest request 
)

◆ MPIIssend()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIIssend ( const void *  buf,
int  count,
MPIDatatype  datatype,
int  dest,
int  tag,
MPIComm  comm,
MPIRequest request 
)

◆ MPIOpCreate()

int dftefe::utils::mpi::MPIOpCreate ( MPIUserFunction user_fn,
int  commute,
MPIOp op 
)

◆ MPIOpFree()

int dftefe::utils::mpi::MPIOpFree ( MPIOp op)

◆ MPIRecv()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIRecv ( void *  buf,
int  count,
MPIDatatype  datatype,
int  source,
int  tag,
MPIComm  comm,
MPIStatus status 
)

◆ MPIReduce()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPIReduce ( void *  sendbuf,
void *  recvbuf,
int  count,
MPIDatatype  datatype,
MPIOp  op,
int  root,
MPIComm  comm 
)

◆ MPIRequestFree()

int dftefe::utils::mpi::MPIRequestFree ( MPIRequest request)

◆ MPISend()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPISend ( const void *  buf,
int  count,
MPIDatatype  datatype,
int  dest,
int  tag,
MPIComm  comm 
)

◆ MPISendrecv()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPISendrecv ( const void *  sendbuf,
int  sendcount,
MPIDatatype  sendtype,
int  dest,
int  sendtag,
void *  recvbuf,
int  recvcount,
MPIDatatype  recvtype,
int  source,
int  recvtag,
MPIComm  comm,
MPIStatus status 
)

◆ MPISsend()

template<MemorySpace memorySpace>
int dftefe::utils::mpi::MPISsend ( const void *  buf,
int  count,
MPIDatatype  datatype,
int  dest,
int  tag,
MPIComm  comm 
)

◆ MPITest()

int dftefe::utils::mpi::MPITest ( MPIRequest request,
int *  flag,
MPIStatus status 
)
Here is the caller graph for this function:

◆ MPITestall()

int dftefe::utils::mpi::MPITestall ( int  count,
MPIRequest requests,
int *  flag,
MPIStatus statuses 
)
Here is the caller graph for this function:

◆ MPITypeCommit()

int dftefe::utils::mpi::MPITypeCommit ( MPIDatatype datatype)

◆ MPITypeContiguous()

int dftefe::utils::mpi::MPITypeContiguous ( int  count,
MPIDatatype  oldtype,
MPIDatatype newtype 
)

◆ MPITypeFree()

int dftefe::utils::mpi::MPITypeFree ( MPIDatatype datatype)

◆ MPITypeVector()

int dftefe::utils::mpi::MPITypeVector ( int  count,
int  blocklength,
int  stride,
MPIDatatype  oldtype,
MPIDatatype newtype 
)

◆ MPIWait()

int dftefe::utils::mpi::MPIWait ( MPIRequest request,
MPIStatus status 
)
Here is the caller graph for this function:

◆ MPIWaitall()

int dftefe::utils::mpi::MPIWaitall ( int  count,
MPIRequest  requests[],
MPIStatus  statuses[] 
)
Here is the caller graph for this function:

◆ MPIWtime()

double dftefe::utils::mpi::MPIWtime ( void  )

Variable Documentation

◆ cancelled

int dftefe::utils::mpi::cancelled = 0

◆ MPI_ERROR

int dftefe::utils::mpi::MPI_ERROR = 0

◆ MPI_SOURCE

int dftefe::utils::mpi::MPI_SOURCE = 0

◆ MPI_TAG

int dftefe::utils::mpi::MPI_TAG = 0

◆ MPIAnySource

int dftefe::utils::mpi::MPIAnySource = -1
extern

◆ MPIAnyTag

int dftefe::utils::mpi::MPIAnyTag = -1
extern

◆ MPIBAnd

mpi::MPIOp dftefe::utils::mpi::MPIBAnd = (mpi::MPIOp)(0x58000006)
extern

◆ MPIBOr

mpi::MPIOp dftefe::utils::mpi::MPIBOr = (mpi::MPIOp)(0x58000008)
extern

◆ MPIBXOr

mpi::MPIOp dftefe::utils::mpi::MPIBXOr = (mpi::MPIOp)(0x5800000a)
extern

◆ MPIByte

mpi::MPIDatatype dftefe::utils::mpi::MPIByte = ((mpi::MPIDatatype)0x4c00010d)
extern

◆ MPIChar

mpi::MPIDatatype dftefe::utils::mpi::MPIChar = ((mpi::MPIDatatype)0x4c000101)
extern

◆ MPICommNull

mpi::MPIComm dftefe::utils::mpi::MPICommNull = ((mpi::MPIComm)0x04000000)
extern

◆ MPICommSelf

mpi::MPIComm dftefe::utils::mpi::MPICommSelf = ((mpi::MPIComm)0x44000001)
extern

◆ MPICommWorld

mpi::MPIComm dftefe::utils::mpi::MPICommWorld = ((mpi::MPIComm)0x44000000)
extern

◆ MPIComplex

mpi::MPIDatatype dftefe::utils::mpi::MPIComplex = ((mpi::MPIDatatype)1275070494)
extern

◆ MPIDatatypeNull

mpi::MPIDatatype dftefe::utils::mpi::MPIDatatypeNull = ((mpi::MPIDatatype)0x0c000000)
extern

◆ MPIDouble

mpi::MPIDatatype dftefe::utils::mpi::MPIDouble = ((mpi::MPIDatatype)0x4c00080b)
extern

◆ MPIDoubleComplex

mpi::MPIDatatype dftefe::utils::mpi::MPIDoubleComplex = ((mpi::MPIDatatype)1275072546)
extern

◆ MPIErrCodesIgnore

int * dftefe::utils::mpi::MPIErrCodesIgnore = nullptr
extern

◆ MPIErrHandlerNull

mpi::MPIErrhandler dftefe::utils::mpi::MPIErrHandlerNull
extern
Initial value:
=
((mpi::MPIErrhandler)0x14000000)

◆ MPIFloat

mpi::MPIDatatype dftefe::utils::mpi::MPIFloat = ((mpi::MPIDatatype)0x4c00040a)
extern

◆ MPIGroupNull

mpi::MPIGroup dftefe::utils::mpi::MPIGroupNull = ((mpi::MPIGroup)0x08000000)
extern

◆ MPIInPlace

void * dftefe::utils::mpi::MPIInPlace = (void *)-1
extern

◆ MPIInt

mpi::MPIDatatype dftefe::utils::mpi::MPIInt = ((mpi::MPIDatatype)0x4c000405)
extern

◆ MPILAnd

mpi::MPIOp dftefe::utils::mpi::MPILAnd = (mpi::MPIOp)(0x58000005)
extern

◆ MPILong

mpi::MPIDatatype dftefe::utils::mpi::MPILong = ((mpi::MPIDatatype)0x4c000407)
extern

◆ MPILongDouble

mpi::MPIDatatype dftefe::utils::mpi::MPILongDouble = ((mpi::MPIDatatype)0x4c00080c)
extern

◆ MPILongLong

mpi::MPIDatatype dftefe::utils::mpi::MPILongLong = ((mpi::MPIDatatype)0x4c000809)
extern

◆ MPILongLongInt

mpi::MPIDatatype dftefe::utils::mpi::MPILongLongInt = ((mpi::MPIDatatype)0x4c000809)
extern

◆ MPILOr

mpi::MPIOp dftefe::utils::mpi::MPILOr = (mpi::MPIOp)(0x58000007)
extern

◆ MPILXOr

mpi::MPIOp dftefe::utils::mpi::MPILXOr = (mpi::MPIOp)(0x58000009)
extern

◆ MPIMax

mpi::MPIOp dftefe::utils::mpi::MPIMax = (mpi::MPIOp)(0x58000001)
extern

◆ MPIMaxLoc

mpi::MPIOp dftefe::utils::mpi::MPIMaxLoc = (mpi::MPIOp)(0x5800000c)
extern

◆ MPIMin

mpi::MPIOp dftefe::utils::mpi::MPIMin = (mpi::MPIOp)(0x58000002)
extern

◆ MPIMinLoc

mpi::MPIOp dftefe::utils::mpi::MPIMinLoc = (mpi::MPIOp)(0x5800000b)
extern

◆ MPIOpNull

mpi::MPIOp dftefe::utils::mpi::MPIOpNull = ((mpi::MPIOp)0x18000000)
extern

◆ MPIProd

mpi::MPIOp dftefe::utils::mpi::MPIProd = (mpi::MPIOp)(0x58000004)
extern

◆ MPIReplace

mpi::MPIOp dftefe::utils::mpi::MPIReplace = (mpi::MPIOp)(0x5800000d)
extern

◆ MPIRequestNull

mpi::MPIRequest dftefe::utils::mpi::MPIRequestNull = ((mpi::MPIRequest)0x2c000000)
extern

◆ MPIShort

mpi::MPIDatatype dftefe::utils::mpi::MPIShort = ((mpi::MPIDatatype)0x4c000203)
extern

◆ MPISignedChar

mpi::MPIDatatype dftefe::utils::mpi::MPISignedChar = ((mpi::MPIDatatype)0x4c000118)
extern

◆ MPIStatusesIgnore

mpi::MPIStatus * dftefe::utils::mpi::MPIStatusesIgnore = nullptr
extern

◆ MPIStatusIgnore

mpi::MPIStatus * dftefe::utils::mpi::MPIStatusIgnore = nullptr
extern

◆ MPISuccess

int dftefe::utils::mpi::MPISuccess = 0
extern
Note
There are special MPI related macros that are usually defined in mpi.h. But since this part pertains to the case where an MPI library is not used, we will have to define those macros with some default values, so that the user side code can seamlessly use these macros both the cases (i.e., with and without MPI)

◆ MPISum

mpi::MPIOp dftefe::utils::mpi::MPISum = (mpi::MPIOp)(0x58000003)
extern

◆ MPIThreadFunneled

int dftefe::utils::mpi::MPIThreadFunneled = 1
extern

◆ MPIThreadMultiple

int dftefe::utils::mpi::MPIThreadMultiple = 2
extern

◆ MPIThreadSerialized

int dftefe::utils::mpi::MPIThreadSerialized = 3
extern

◆ MPIThreadSingle

int dftefe::utils::mpi::MPIThreadSingle = 0
extern

◆ MPIUnsigned

mpi::MPIDatatype dftefe::utils::mpi::MPIUnsigned = ((mpi::MPIDatatype)0x4c000406)
extern

◆ MPIUnsignedChar

mpi::MPIDatatype dftefe::utils::mpi::MPIUnsignedChar = ((mpi::MPIDatatype)0x4c000102)
extern

◆ MPIUnsignedLong

mpi::MPIDatatype dftefe::utils::mpi::MPIUnsignedLong = ((mpi::MPIDatatype)0x4c000408)
extern

◆ MPIUnsignedLongLong

mpi::MPIDatatype dftefe::utils::mpi::MPIUnsignedLongLong = ((mpi::MPIDatatype)0x4c000819)
extern

◆ MPIUnsignedShort

mpi::MPIDatatype dftefe::utils::mpi::MPIUnsignedShort = ((mpi::MPIDatatype)0x4c000204)
extern

◆ MPIWChar

mpi::MPIDatatype dftefe::utils::mpi::MPIWChar = ((mpi::MPIDatatype)0x4c00040e)
extern