Base class for output inter-processor communications stream (ie, parallel streams). Not to be used directly, thus contructors are protected.
More...
|
virtual | ~UOPstreamBase () |
| Destructor. More...
|
|
virtual ios_base::fmtflags | flags () const |
| Return flags of output stream. More...
|
|
virtual bool | write (const token &tok) |
| Write token to stream or otherwise handle it. More...
|
|
virtual Ostream & | write (const char c) |
| Write single character. Whitespace is suppressed. More...
|
|
virtual Ostream & | write (const char *str) |
| Write the word-characters of a character string. More...
|
|
virtual Ostream & | write (const word &str) |
| Write word. More...
|
|
virtual Ostream & | write (const string &str) |
| Write string. More...
|
|
virtual Ostream & | writeQuoted (const std::string &str, const bool quoted=true) |
| Write std::string surrounded by quotes. More...
|
|
virtual Ostream & | write (const int32_t val) |
| Write int32_t as a label. More...
|
|
virtual Ostream & | write (const int64_t val) |
| Write int64_t as a label. More...
|
|
virtual Ostream & | write (const float val) |
| Write float. More...
|
|
virtual Ostream & | write (const double val) |
| Write double. More...
|
|
virtual Ostream & | write (const char *data, std::streamsize count) |
| Write binary block with 8-byte alignment. More...
|
|
virtual Ostream & | writeRaw (const char *data, std::streamsize count) |
| Low-level raw binary output. More...
|
|
virtual bool | beginRawWrite (std::streamsize count) |
| Begin marker for low-level raw binary output. More...
|
|
virtual bool | endRawWrite () |
| End marker for low-level raw binary output. More...
|
|
virtual void | indent () |
| Add indentation characters. More...
|
|
virtual void | flush () |
| Flush stream. More...
|
|
virtual void | endl () |
| Add newline and flush stream. More...
|
|
virtual char | fill () const |
| Get the current padding character. More...
|
|
virtual char | fill (const char) |
| Set padding character for formatted field up to field width. More...
|
|
virtual int | width () const |
| Get width of output field. More...
|
|
virtual int | width (const int) |
| Set width of output field. More...
|
|
virtual int | precision () const |
| Get precision of output field. More...
|
|
virtual int | precision (const int) |
| Set precision of output field. More...
|
|
virtual void | rewind () |
| Rewind the send buffer for overwriting. More...
|
|
virtual ios_base::fmtflags | flags (const ios_base::fmtflags) |
| Set flags of stream. More...
|
|
void | print (Ostream &os) const |
| Print stream description to Ostream. More...
|
|
| ClassName ("UPstream") |
| Declare name of the class and its debug switch. More...
|
|
| UPstream (const commsTypes commsType) |
| Construct for given communication type. More...
|
|
commsTypes | commsType () const noexcept |
| Get the communications type of the stream. More...
|
|
commsTypes | commsType (const commsTypes ct) noexcept |
| Set the communications type of the stream. More...
|
|
template<class T > |
Foam::List< T > | listGatherValues (const T &localValue, const label comm) |
|
| Ostream (const Ostream &)=default |
| Copy construct. More...
|
|
virtual | ~Ostream ()=default |
| Destructor. More...
|
|
| Ostream (IOstreamOption streamOpt=IOstreamOption()) |
| Default construct (ASCII, uncompressed), construct with specified stream option. More...
|
|
| Ostream (IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) |
| Construct with format (uncompressed) More...
|
|
virtual Ostream & | write (const keyType &kw) |
| Write keyType. More...
|
|
unsigned short | indentSize () const noexcept |
| Return indent size (spaces per level) More...
|
|
unsigned short | indentSize (unsigned short val) noexcept |
| Change indent size (spaces per level), return old value. More...
|
|
unsigned short | indentLevel () const noexcept |
| Return the indent level. More...
|
|
unsigned short | indentLevel (unsigned short val) noexcept |
| Change the indent level, return old value. More...
|
|
void | incrIndent () noexcept |
| Increment the indent level. More...
|
|
void | decrIndent () |
| Decrement the indent level. More...
|
|
virtual Ostream & | writeKeyword (const keyType &kw) |
| Write the keyword followed by an appropriate indentation. More...
|
|
virtual Ostream & | beginBlock (const keyType &kw) |
| Write begin block group with the given name. More...
|
|
virtual Ostream & | beginBlock () |
| Write begin block group without a name. More...
|
|
virtual Ostream & | endBlock () |
| Write end block group. More...
|
|
virtual Ostream & | endEntry () |
| Write end entry (';') followed by newline. More...
|
|
template<class T > |
Ostream & | writeEntry (const keyType &key, const T &value) |
| Write a keyword/value entry. More...
|
|
template<class T > |
Ostream & | writeEntryIfDifferent (const word &key, const T &value1, const T &value2) |
| Write a keyword/value entry only when the two values differ. More...
|
|
Ostream & | operator() () const |
| Return a non-const reference to const Ostream. More...
|
|
unsigned short & | indentLevel () noexcept |
| Access to indent level. More...
|
|
unsigned short & | indentSize () noexcept |
| Access to indent size. More...
|
|
| IOstream (const IOstream &)=default |
| Copy construct. More...
|
|
virtual | ~IOstream ()=default |
| Destructor. More...
|
|
| IOstream (IOstreamOption streamOpt=IOstreamOption()) |
| Default construct (ASCII, uncompressed), construct with specified stream option. More...
|
|
| IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) |
| Construct with format, version (compression) More...
|
|
virtual const fileName & | name () const |
| The name of the stream. More...
|
|
fileName | relativeName () const |
| Return the name of the stream relative to the current case. More...
|
|
virtual bool | check (const char *operation) const |
| Check IOstream status for given operation. More...
|
|
bool | fatalCheck (const char *operation) const |
| Check IOstream status for given operation. More...
|
|
bool | opened () const noexcept |
| True if stream has been opened. More...
|
|
bool | closed () const noexcept |
| True if stream is closed. More...
|
|
bool | good () const noexcept |
| True if next operation might succeed. More...
|
|
bool | eof () const noexcept |
| True if end of input seen. More...
|
|
bool | fail () const noexcept |
| True if next operation will fail. More...
|
|
bool | bad () const noexcept |
| True if stream is corrupted. More...
|
|
| operator bool () const noexcept |
| Return true if the stream has not failed. More...
|
|
bool | operator! () const noexcept |
| Return true if the stream has failed. More...
|
|
unsigned | labelByteSize () const noexcept |
| The sizeof (label) in bytes associated with the stream. More...
|
|
unsigned | scalarByteSize () const noexcept |
| The sizeof (scalar) in bytes associated with the stream. More...
|
|
void | setLabelByteSize (unsigned nbytes) noexcept |
| Set the sizeof (label) in bytes associated with the stream. More...
|
|
void | setScalarByteSize (unsigned nbytes) noexcept |
| Set the sizeof (scalar) in bytes associated with the stream. More...
|
|
template<class T = label> |
std::enable_if< std::is_integral< T >::value, bool >::type | checkLabelSize () const noexcept |
| Check if the label byte-size associated with the stream is the same as the given type. More...
|
|
template<class T = scalar> |
std::enable_if< std::is_floating_point< T >::value, bool >::type | checkScalarSize () const noexcept |
| Check if the scalar byte-size associated with the stream is the same as the given type. More...
|
|
label | lineNumber () const noexcept |
| Const access to the current stream line number. More...
|
|
label & | lineNumber () noexcept |
| Non-const access to the current stream line number. More...
|
|
label | lineNumber (const label num) noexcept |
| Set the stream line number. More...
|
|
void | setEof () noexcept |
| Set stream state as reached 'eof'. More...
|
|
void | setFail () noexcept |
| Set stream state as 'failed'. More...
|
|
void | setBad () |
| Set stream state to be 'bad'. More...
|
|
ios_base::fmtflags | setf (const ios_base::fmtflags f) |
| Set flags of stream. More...
|
|
ios_base::fmtflags | setf (const ios_base::fmtflags f, const ios_base::fmtflags mask) |
| Set flags of given field of stream. More...
|
|
void | unsetf (const ios_base::fmtflags f) |
| Unset flags of stream. More...
|
|
void | print (Ostream &os, const int streamState) const |
| Print information about the stream state bits. More...
|
|
InfoProxy< IOstream > | info () const |
| Return info proxy. More...
|
|
constexpr | IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
| Default construct (ASCII, UNCOMPRESSED, currentVersion) or construct with format, compression. More...
|
|
constexpr | IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept |
| Construct from components (format, compression, version) More...
|
|
constexpr | IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
| Construct from components (format, version, compression) More...
|
|
| IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept |
| Copy construct with change of format. More...
|
|
streamFormat | format () const noexcept |
| Get the current stream format. More...
|
|
streamFormat | format (const streamFormat fmt) noexcept |
| Set the stream format. More...
|
|
streamFormat | format (const word &formatName) |
| Set the stream format from string value. More...
|
|
compressionType | compression () const noexcept |
| Get the stream compression. More...
|
|
compressionType | compression (const compressionType comp) noexcept |
| Set the stream compression. More...
|
|
compressionType | compression (const word &compName) |
| Set the stream compression from string value. More...
|
|
versionNumber | version () const noexcept |
| Get the stream version. More...
|
|
versionNumber | version (const versionNumber ver) noexcept |
| Set the stream version. More...
|
|
versionNumber | version (const token &tok) |
| Set the stream version from token. More...
|
|
|
enum | commsTypes : char { blocking,
scheduled,
nonBlocking
} |
| Types of communications. More...
|
|
typedef IntRange< int > | rangeType |
| Int ranges are used for MPI ranks (processes) More...
|
|
enum | streamAccess : char { CLOSED = 0,
OPENED
} |
| Enumeration for stream open/closed state. More...
|
|
enum | streamFormat : char { ASCII = 0,
BINARY
} |
| Data format (ascii | binary) More...
|
|
enum | compressionType : char { UNCOMPRESSED = 0,
COMPRESSED
} |
| Compression treatment (UNCOMPRESSED | COMPRESSED) More...
|
|
enum | appendType : char { NON_APPEND = 0,
APPEND
} |
| File appending (NON_APPEND | APPEND) More...
|
|
enum | atomicType : char { NON_ATOMIC = 0,
ATOMIC
} |
| Atomic operations (output) More...
|
|
static label | nComms () noexcept |
| Number of currently defined communicators. More...
|
|
static bool | isUserComm (label communicator) noexcept |
| True if communicator appears to be user-allocated. More...
|
|
static label | allocateCommunicator (const label parent, const labelUList &subRanks, const bool doPstream=true) |
| Allocate a new communicator with subRanks of parent communicator. More...
|
|
static void | freeCommunicator (const label communicator, const bool doPstream=true) |
| Free a previously allocated communicator. More...
|
|
static void | freeCommunicators (const bool doPstream) |
| Free all communicators. More...
|
|
static int | baseProcNo (label comm, int procID) |
| Return physical processor number (i.e. processor number in worldComm) given communicator and processor. More...
|
|
static label | procNo (const label comm, const int baseProcID) |
| Return processor number in communicator (given physical processor number) (= reverse of baseProcNo) More...
|
|
static label | procNo (const label comm, const label currentComm, const int currentProcID) |
| Return processor number in communicator (given processor number and communicator) More...
|
|
static void | addValidParOptions (HashTable< string > &validParOptions) |
| Add the valid option this type of communications library adds/requires on the command line. More...
|
|
static bool | init (int &argc, char **&argv, const bool needsThread) |
| Initialisation function called from main. More...
|
|
static bool | initNull () |
| Special purpose initialisation function. More...
|
|
static label | nRequests () noexcept |
| Number of outstanding requests. More...
|
|
static void | resetRequests (const label n) |
| Truncate outstanding requests to given length. More...
|
|
static void | waitRequests (const label start=0) |
| Wait until all requests (from start onwards) have finished. More...
|
|
static void | waitRequest (const label i) |
| Wait until request i has finished. More...
|
|
static bool | finishedRequest (const label i) |
| Non-blocking comms: has request i finished? More...
|
|
static int | allocateTag (const char *const msg=nullptr) |
|
static void | freeTag (const int tag, const char *const msg=nullptr) |
|
static bool | parRun (const bool on) noexcept |
| Set as parallel run on/off. More...
|
|
static bool & | parRun () noexcept |
| Test if this a parallel run. More...
|
|
static bool | haveThreads () noexcept |
| Have support for threads. More...
|
|
static label | nProcs (const label communicator=worldComm) |
| Number of ranks in parallel run (for given communicator) is 1 for serial run. More...
|
|
static constexpr int | masterNo () noexcept |
| Process index of the master (always 0) More...
|
|
static bool | master (const label communicator=worldComm) |
| Am I the master rank. More...
|
|
static bool | is_subrank (const label communicator=worldComm) |
| Is this process a sub-rank on the communicator. More...
|
|
static int | myProcNo (const label communicator=worldComm) |
| Number of this process (starting from masterNo() = 0) More...
|
|
static label | parent (const label communicator) |
| The parent communicator. More...
|
|
static List< int > & | procID (const label communicator) |
| Process IDs within a given communicator. More...
|
|
static const wordList & | allWorlds () noexcept |
| All worlds. More...
|
|
static const labelList & | worldIDs () noexcept |
| The indices into allWorlds for all processes. More...
|
|
static label | myWorldID () |
| My worldID. More...
|
|
static const word & | myWorld () |
| My world. More...
|
|
static rangeType | allProcs (const label communicator=worldComm) |
| Range of process indices for all processes. More...
|
|
static rangeType | subProcs (const label communicator=worldComm) |
| Range of process indices for sub-processes. More...
|
|
static const List< commsStruct > & | linearCommunication (const label communicator=worldComm) |
| Communication schedule for linear all-to-master (proc 0) More...
|
|
static const List< commsStruct > & | treeCommunication (const label communicator=worldComm) |
| Communication schedule for tree all-to-master (proc 0) More...
|
|
static const List< commsStruct > & | whichCommunication (const label communicator=worldComm) |
| Communication schedule for linear/tree all-to-master (proc 0). Chooses based on the value of UPstream::nProcsSimpleSum. More...
|
|
static int & | msgType () noexcept |
| Message tag of standard messages. More...
|
|
static void | shutdown (int errNo=0) |
| Shutdown (finalize) MPI as required. More...
|
|
static void | abort () |
| Call MPI_Abort with no other checks or cleanup. More...
|
|
static void | exit (int errNo=1) |
| Shutdown (finalize) MPI as required and exit program with errNo. More...
|
|
static void | allToAll (const UList< int32_t > &sendData, UList< int32_t > &recvData, const label communicator=worldComm) |
| Exchange integer data with all processors (in the communicator). More...
|
|
static void | allToAll (const UList< int64_t > &sendData, UList< int64_t > &recvData, const label communicator=worldComm) |
| Exchange integer data with all processors (in the communicator). More...
|
|
static void | mpiGather (const char *sendData, int sendCount, char *recvData, int recvCount, const label communicator=worldComm) |
| Receive identically-sized char data from all ranks. More...
|
|
static void | mpiScatter (const char *sendData, int sendCount, char *recvData, int recvCount, const label communicator=worldComm) |
| Send identically-sized char data to all ranks. More...
|
|
static void | gather (const char *sendData, int sendCount, char *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length char data from all ranks. More...
|
|
static void | scatter (const char *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, char *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length char data to all ranks. More...
|
|
static void | gather (const int32_t *sendData, int sendCount, int32_t *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length int32_t data from all ranks. More...
|
|
static void | scatter (const int32_t *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, int32_t *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length int32_t data to all ranks. More...
|
|
static void | gather (const int64_t *sendData, int sendCount, int64_t *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length int64_t data from all ranks. More...
|
|
static void | scatter (const int64_t *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, int64_t *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length int64_t data to all ranks. More...
|
|
static void | gather (const uint32_t *sendData, int sendCount, uint32_t *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length uint32_t data from all ranks. More...
|
|
static void | scatter (const uint32_t *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, uint32_t *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length uint32_t data to all ranks. More...
|
|
static void | gather (const uint64_t *sendData, int sendCount, uint64_t *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length uint64_t data from all ranks. More...
|
|
static void | scatter (const uint64_t *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, uint64_t *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length uint64_t data to all ranks. More...
|
|
static void | gather (const float *sendData, int sendCount, float *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length float data from all ranks. More...
|
|
static void | scatter (const float *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, float *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length float data to all ranks. More...
|
|
static void | gather (const double *sendData, int sendCount, double *recvData, const UList< int > &recvCounts, const UList< int > &recvOffsets, const label communicator=worldComm) |
| Receive variable length double data from all ranks. More...
|
|
static void | scatter (const double *sendData, const UList< int > &sendCounts, const UList< int > &sendOffsets, double *recvData, int recvCount, const label communicator=worldComm) |
| Send variable length double data to all ranks. More...
|
|
template<class T > |
static List< T > | listGatherValues (const T &localValue, const label communicator=worldComm) |
| Gather individual values into list locations. More...
|
|
template<class T > |
static T | listScatterValues (const UList< T > &allValues, const label communicator=worldComm) |
| Scatter individual values from list locations. More...
|
|
static bool | broadcast (char *buf, const std::streamsize bufSize, const label communicator=worldComm, const int rootProcNo=masterNo()) |
| Broadcast buffer contents to all processes in communicator. The sizes must match on all processes. More...
|
|
static void | reduceAnd (bool &value, const label communicator=worldComm) |
| Logical (and) reduction (cf. MPI AllReduce) More...
|
|
static void | reduceOr (bool &value, const label communicator=worldComm) |
| Logical (or) reduction (cf. MPI AllReduce) More...
|
|
static constexpr int | firstSlave () noexcept |
| Process index of first sub-process. More...
|
|
static int | lastSlave (const label communicator=worldComm) |
| Process index of last sub-process. More...
|
|
static unsigned int | defaultPrecision () noexcept |
| Return the default precision. More...
|
|
static unsigned int | defaultPrecision (unsigned int prec) noexcept |
| Reset the default precision. More...
|
|
static streamFormat | formatEnum (const word &formatName, const streamFormat deflt=streamFormat::ASCII) |
| The stream format enum corresponding to the string (ascii | binary). More...
|
|
static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
| Failsafe construct streamFormat from optional dictionary lookup. More...
|
|
static compressionType | compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED) |
| The compression enum corresponding to the string. More...
|
|
static compressionType | compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED) |
| Failsafe construct compressionType from optional dictionary lookup. More...
|
|
static const Enum< commsTypes > | commsTypeNames |
| Enumerated names for the communication types. More...
|
|
static bool | floatTransfer |
| Should compact transfer be used in which floats replace doubles reducing the bandwidth requirement at the expense of some loss in accuracy. More...
|
|
static int | nProcsSimpleSum |
| Number of processors to change from linear to tree communication. More...
|
|
static commsTypes | defaultCommsType |
| Default commsType. More...
|
|
static int | nPollProcInterfaces |
| Number of polling cycles in processor updates. More...
|
|
static int | maxCommsSize |
| Optional maximum message size (bytes) More...
|
|
static const int | mpiBufferSize |
| MPI buffer-size (bytes) More...
|
|
static label | worldComm |
| Default world communicator (all processors). May differ from globalComm if local worlds are in use. More...
|
|
static label | warnComm |
| Debugging: warn for use of any communicator differing from warnComm. More...
|
|
static constexpr label | globalComm = 0 |
| Communicator for all processors, irrespective of any local worlds. More...
|
|
static constexpr label | selfComm = 1 |
| A communicator within the current rank only. More...
|
|
static unsigned int | precision_ |
| Default precision. More...
|
|
static const Enum< streamFormat > | formatNames |
| Stream format names (ascii, binary) More...
|
|
static const versionNumber | currentVersion |
| The current version number (2.0) More...
|
|
static constexpr const unsigned short | entryIndentation_ = 16 |
| Indentation of the entry from the start of the keyword. More...
|
|
static fileName | staticName_ |
| Name for any generic stream - normally treat as readonly. More...
|
|