Block-Structured AMR Software Framework
AMReX_ParallelReduce.H File Reference
#include <AMReX_Config.H>
#include <AMReX.H>
#include <AMReX_Functional.H>
#include <AMReX_ParallelDescriptor.H>
#include <AMReX_Print.H>
#include <AMReX_Vector.H>
#include <type_traits>

Go to the source code of this file.

Namespaces

 amrex
 
 amrex::detail
 
 amrex::ParallelAllGather
 
 amrex::ParallelGather
 
 amrex::ParallelAllReduce
 
 amrex::ParallelReduce
 

Enumerations

enum  amrex::detail::ReduceOp : int {
  amrex::detail::max = 0 , amrex::detail::min , amrex::detail::sum , amrex::detail::lor ,
  amrex::detail::land
}
 

Functions

template<typename T >
void amrex::detail::Reduce (ReduceOp, T *, int, int, MPI_Comm)
 
template<typename T >
void amrex::detail::Reduce (ReduceOp, T &, int, MPI_Comm)
 
template<typename T >
void amrex::detail::Reduce (ReduceOp, Vector< std::reference_wrapper< T > > const &, int, MPI_Comm)
 
template<typename T >
void amrex::detail::Gather (const T *, int, T *, int, MPI_Comm)
 
template<typename T >
void amrex::detail::Gather (const T &, T *, int, MPI_Comm)
 
template<typename T >
void amrex::ParallelAllGather::AllGather (const T *v, int cnt, T *vs, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllGather::AllGather (const T &v, T *vs, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelGather::Gather (const T *v, int cnt, T *vs, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelGather::Gather (const T &v, T *vs, int root, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelAllReduce::Max (KeyValuePair< K, V > &vi, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelAllReduce::Max (KeyValuePair< K, V > *vi, int cnt, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelAllReduce::Min (KeyValuePair< K, V > &vi, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelAllReduce::Min (KeyValuePair< K, V > *vi, int cnt, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Max (T &v, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Max (T *v, int cnt, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Max (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Min (T &v, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Min (T *v, int cnt, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Min (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Sum (T &v, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Sum (T *v, int cnt, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelAllReduce::Sum (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
 
void amrex::ParallelAllReduce::Or (bool &v, MPI_Comm comm)
 
void amrex::ParallelAllReduce::And (bool &v, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelReduce::Max (KeyValuePair< K, V > &vi, int root, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelReduce::Max (KeyValuePair< K, V > *vi, int cnt, int root, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelReduce::Min (KeyValuePair< K, V > &vi, int root, MPI_Comm comm)
 
template<typename K , typename V >
void amrex::ParallelReduce::Min (KeyValuePair< K, V > *vi, int cnt, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Max (T &v, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Max (T *v, int cnt, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Max (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Min (T &v, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Min (T *v, int cnt, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Min (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Sum (T &v, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Sum (T *v, int cnt, int root, MPI_Comm comm)
 
template<typename T >
void amrex::ParallelReduce::Sum (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
 
void amrex::ParallelReduce::Or (bool &v, int root, MPI_Comm comm)
 
void amrex::ParallelReduce::And (bool &v, int root, MPI_Comm comm)