PstreamReduceOps.H File Reference

Inter-processor communication reduction functions. More...

Include dependency graph for PstreamReduceOps.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Foam
 Namespace for OpenFOAM.
 

Macros

#define Pstream_CommonReductions(Native)
 
#define Pstream_FloatReductions(Native)
 
#define Pstream_BitwiseReductions(Native)
 
#define Pstream_SumReduce(Native)
 

Functions

template<class T , class BinaryOp >
void reduce (const List< UPstream::commsStruct > &comms, T &value, const BinaryOp &bop, const int tag, const label comm)
 Reduce inplace (cf. MPI Allreduce) using specified communication schedule. More...
 
template<class T , class BinaryOp >
void reduce (T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce inplace (cf. MPI Allreduce) using linear/tree communication schedule. More...
 
template<class T , class BinaryOp >
void reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm)
 Reduce inplace (cf. MPI Allreduce) multiple values (same size on all ranks!) More...
 
template<class T , class BinaryOp >
void reduce (T &Value, const BinaryOp &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce inplace (cf. MPI Iallreduce) single value. Sets request. More...
 
template<class T , class BinaryOp >
void reduce (T &Value, const BinaryOp &, const int tag, const label comm, label &request)
 Non-blocking reduce inplace (cf. MPI Iallreduce) single value. Sets request. More...
 
template<class T , class BinaryOp >
void reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce inplace (cf. MPI Iallreduce) of multiple values (same size on all ranks!). Sets request. More...
 
template<class T , class BinaryOp >
void reduce (T values[], const int size, const BinaryOp &, const int tag, const label comm, label &request)
 Non-blocking reduce inplace (cf. MPI Iallreduce) of multiple values (same size on all ranks!). Sets request. More...
 
void reduce (bool &value, const andOp< bool > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Logical (and) inplace reduction. Uses UPstream::reduceAnd. More...
 
void reduce (bool &value, const orOp< bool > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Logical (or) inplace reduction. Uses UPstream::reduceOr. More...
 
void reduce (int32_t values[], const int size, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple int32_t values (same size on all ranks!) More...
 
void reduce (int32_t &value, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single int32_t value. More...
 
template<unsigned N>
void reduce (FixedList< int32_t, N > &values, const minOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple int32_t values. More...
 
void reduce (int32_t values[], const int size, const maxOp< int32_t > &, const int tag, const label comm)
 Reduce (max) multiple int32_t values (same size on all ranks!) More...
 
void reduce (int32_t &value, const maxOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single int32_t value. More...
 
template<unsigned N>
void reduce (FixedList< int32_t, N > &values, const maxOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple int32_t values. More...
 
void reduce (int32_t values[], const int size, const sumOp< int32_t > &, const int tag, const label comm)
 Reduce (sum) multiple int32_t values (same size on all ranks!) More...
 
void reduce (int32_t &value, const sumOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single int32_t value. More...
 
template<unsigned N>
void reduce (FixedList< int32_t, N > &values, const sumOp< int32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple int32_t values. More...
 
void reduce (int64_t values[], const int size, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple int64_t values (same size on all ranks!) More...
 
void reduce (int64_t &value, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single int64_t value. More...
 
template<unsigned N>
void reduce (FixedList< int64_t, N > &values, const minOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple int64_t values. More...
 
void reduce (int64_t values[], const int size, const maxOp< int64_t > &, const int tag, const label comm)
 Reduce (max) multiple int64_t values (same size on all ranks!) More...
 
void reduce (int64_t &value, const maxOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single int64_t value. More...
 
template<unsigned N>
void reduce (FixedList< int64_t, N > &values, const maxOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple int64_t values. More...
 
void reduce (int64_t values[], const int size, const sumOp< int64_t > &, const int tag, const label comm)
 Reduce (sum) multiple int64_t values (same size on all ranks!) More...
 
void reduce (int64_t &value, const sumOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single int64_t value. More...
 
template<unsigned N>
void reduce (FixedList< int64_t, N > &values, const sumOp< int64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple int64_t values. More...
 
void reduce (uint32_t values[], const int size, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple uint32_t values (same size on all ranks!) More...
 
void reduce (uint32_t &value, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single uint32_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint32_t, N > &values, const minOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple uint32_t values. More...
 
void reduce (uint32_t values[], const int size, const maxOp< uint32_t > &, const int tag, const label comm)
 Reduce (max) multiple uint32_t values (same size on all ranks!) More...
 
void reduce (uint32_t &value, const maxOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single uint32_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint32_t, N > &values, const maxOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple uint32_t values. More...
 
void reduce (uint32_t values[], const int size, const sumOp< uint32_t > &, const int tag, const label comm)
 Reduce (sum) multiple uint32_t values (same size on all ranks!) More...
 
void reduce (uint32_t &value, const sumOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single uint32_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint32_t, N > &values, const sumOp< uint32_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple uint32_t values. More...
 
void reduce (uint64_t values[], const int size, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple uint64_t values (same size on all ranks!) More...
 
void reduce (uint64_t &value, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single uint64_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint64_t, N > &values, const minOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple uint64_t values. More...
 
void reduce (uint64_t values[], const int size, const maxOp< uint64_t > &, const int tag, const label comm)
 Reduce (max) multiple uint64_t values (same size on all ranks!) More...
 
void reduce (uint64_t &value, const maxOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single uint64_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint64_t, N > &values, const maxOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple uint64_t values. More...
 
void reduce (uint64_t values[], const int size, const sumOp< uint64_t > &, const int tag, const label comm)
 Reduce (sum) multiple uint64_t values (same size on all ranks!) More...
 
void reduce (uint64_t &value, const sumOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single uint64_t value. More...
 
template<unsigned N>
void reduce (FixedList< uint64_t, N > &values, const sumOp< uint64_t > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple uint64_t values. More...
 
void reduce (float values[], const int size, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple float values (same size on all ranks!) More...
 
void reduce (float &value, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single float value. More...
 
template<unsigned N>
void reduce (FixedList< float, N > &values, const minOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple float values. More...
 
void reduce (float values[], const int size, const maxOp< float > &, const int tag, const label comm)
 Reduce (max) multiple float values (same size on all ranks!) More...
 
void reduce (float &value, const maxOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single float value. More...
 
template<unsigned N>
void reduce (FixedList< float, N > &values, const maxOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple float values. More...
 
void reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm)
 Reduce (sum) multiple float values (same size on all ranks!) More...
 
void reduce (float &value, const sumOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single float value. More...
 
template<unsigned N>
void reduce (FixedList< float, N > &values, const sumOp< float > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple float values. More...
 
void reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce (sum) multiple float values. Sets request. More...
 
void reduce (float values[], const int size, const sumOp< float > &, const int tag, const label comm, label &requestID)
 Non-blocking reduce (sum) multiple float values. Sets request. More...
 
void reduce (float &value, const sumOp< float > &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce (sum) single float value. Sets request. More...
 
void reduce (float &value, const sumOp< float > &, const int tag, const label comm, label &requestID)
 Non-blocking reduce (sum) single float value. Sets request. More...
 
void reduce (double values[], const int size, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple double values (same size on all ranks!) More...
 
void reduce (double &value, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) single double value. More...
 
template<unsigned N>
void reduce (FixedList< double, N > &values, const minOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (min) multiple double values. More...
 
void reduce (double values[], const int size, const maxOp< double > &, const int tag, const label comm)
 Reduce (max) multiple double values (same size on all ranks!) More...
 
void reduce (double &value, const maxOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) single double value. More...
 
template<unsigned N>
void reduce (FixedList< double, N > &values, const maxOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (max) multiple double values. More...
 
void reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm)
 Reduce (sum) multiple double values (same size on all ranks!) More...
 
void reduce (double &value, const sumOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) single double value. More...
 
template<unsigned N>
void reduce (FixedList< double, N > &values, const sumOp< double > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (sum) multiple double values. More...
 
void reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce (sum) multiple double values. Sets request. More...
 
void reduce (double values[], const int size, const sumOp< double > &, const int tag, const label comm, label &requestID)
 Non-blocking reduce (sum) multiple double values. Sets request. More...
 
void reduce (double &value, const sumOp< double > &, const int tag, const label comm, UPstream::Request &req)
 Non-blocking reduce (sum) single double value. Sets request. More...
 
void reduce (double &value, const sumOp< double > &, const int tag, const label comm, label &requestID)
 Non-blocking reduce (sum) single double value. Sets request. More...
 
void reduce (unsigned char values[], const int size, const bitOrOp< unsigned char > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (bit-or) multiple unsigned char values (same size on all ranks!) More...
 
void reduce (unsigned char &value, const bitOrOp< unsigned char > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (bit-or) single unsigned char value. More...
 
void reduce (unsigned int values[], const int size, const bitOrOp< unsigned int > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (bit-or) multiple unsigned int values (same size on all ranks!) More...
 
void reduce (unsigned int &value, const bitOrOp< unsigned int > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce (bit-or) single unsigned int value. More...
 
template<class T >
void sumReduce (T &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Reduce inplace (cf. MPI Allreduce) the sum of both value and count (for averaging) More...
 
void sumReduce (float &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Sum of both float value and count (for averaging) More...
 
void sumReduce (double &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Sum of both double value and count (for averaging) More...
 
template<class T , class BinaryOp >
T returnReduce (const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
 Perform reduction on a copy, using specified binary operation. More...
 
bool returnReduceAnd (const bool value, const label comm=UPstream::worldComm)
 Perform logical (and) MPI Allreduce on a copy. Uses UPstream::reduceAnd. More...
 
bool returnReduceOr (const bool value, const label comm=UPstream::worldComm)
 Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr. More...
 

Detailed Description

Inter-processor communication reduction functions.

Original source file PstreamReduceOps.H

InNamespace Foam

Definition in file PstreamReduceOps.H.

Macro Definition Documentation

◆ Pstream_CommonReductions

#define Pstream_CommonReductions (   Native)

Definition at line 207 of file PstreamReduceOps.H.

◆ Pstream_FloatReductions

#define Pstream_FloatReductions (   Native)

Definition at line 311 of file PstreamReduceOps.H.

◆ Pstream_BitwiseReductions

#define Pstream_BitwiseReductions (   Native)
Value:
\ \
void reduce \
( \
Native values[], \
const int size, \
const bitOrOp<Native>&, \
const int tag = UPstream::msgType(), \
const label comm = UPstream::worldComm \
); \
\ \
void reduce \
( \
Native& value, \
const bitOrOp<Native>&, \
const int tag = UPstream::msgType(), \
const label comm = UPstream::worldComm \
);
void reduce(unsigned int &value, const bitOrOp< unsigned int > &, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Reduce (bit-or) single unsigned int value.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
Definition: HashOps.H:164

Definition at line 365 of file PstreamReduceOps.H.

◆ Pstream_SumReduce

#define Pstream_SumReduce (   Native)
Value:
\ \
void sumReduce \
( \
Native& value, \
label& count, \
const int tag = UPstream::msgType(), \
const label comm = UPstream::worldComm \
);
unsigned int count(const UList< bool > &bools, const bool val=true)
Count number of &#39;true&#39; entries.
Definition: BitOps.H:73
void sumReduce(double &value, label &count, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Sum of both double value and count (for averaging)

Definition at line 433 of file PstreamReduceOps.H.