13#ifndef CD_PARALLELOPSIMPLEM_H
14#define CD_PARALLELOPSIMPLEM_H
23#include <CD_NamespaceHeader.H>
28 CH_TIME(
"ParallelOps::barrier");
38 CH_TIME(
"ParallelOps::partition");
61 CH_TIME(
"ParallelOps::min(Real)");
69 MayDay::Error(
"In file ParallelOps::min -- MPI communication error");
81 CH_TIME(
"ParallelOps::min(int)");
89 MayDay::Error(
"In file ParallelOps::min -- MPI communication error");
100 CH_TIME(
"ParallelOps::min(long long int)");
108 MayDay::Error(
"In file ParallelOps::min -- MPI communication error");
119 CH_TIME(
"ParallelOps::min(Real, RealVect)");
179 CH_TIME(
"ParallelOps::max(Real)");
186 MayDay::Error(
"In file ParallelOps::max -- MPI communication error");
198 CH_TIME(
"ParallelOps::max(int)");
206 MayDay::Error(
"In file ParallelOps::max -- MPI communication error");
217 CH_TIME(
"ParallelOps::max(long long)");
225 MayDay::Error(
"In file ParallelOps::max -- MPI communication error");
236 CH_TIME(
"ParallelOps::max(Real, RealVect)");
296 CH_TIME(
"ParallelOps::maxRank(Real)");
306 Real maxVal = -std::numeric_limits<Real>::max();
326 CH_TIME(
"ParallelOps::minRank(Real)");
336 Real maxVal = std::numeric_limits<Real>::max();
356 CH_TIME(
"ParallelOps::sum(Real)");
363 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
375 CH_TIME(
"ParallelOps::sum(Real)");
382 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
394 CH_TIME(
"ParallelOps::sum(long)");
401 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
413 CH_TIME(
"ParallelOps::sum(long long)");
420 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
429inline unsigned long long
432 CH_TIME(
"ParallelOps::sum(unsigned long long)");
435 unsigned long long ret = 0;
439 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
451 CH_TIME(
"ParallelOps::sum(Real)");
456 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
464 CH_TIME(
"ParallelOps::sum(int)");
469 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
477 CH_TIME(
"ParallelOps::sum(long int)");
482 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
490 CH_TIME(
"ParallelOps::sum(long long int)");
495 MayDay::Error(
"In file ParallelOps::sum -- MPI communication error");
503 CH_TIME(
"ParallelOps::average(Real)");
515 CH_TIME(
"ParallelOps::standardDeviation(Real)");
542 CH_TIME(
"ParallelOps::gather(int)");
558 CH_TIME(
"ParallelOps::gather(Real)");
571#include <CD_NamespaceFooter.H>
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26
Real max(const Real &a_input) noexcept
Get the maximum of the input, reduced over MPI ranks (in the Chombo communicator)
Definition CD_ParallelOpsImplem.H:177
std::pair< Real, int > maxRank(const Real &a_val) noexcept
Get the maximum value and the rank having the maximum value.
Definition CD_ParallelOpsImplem.H:294
Real average(const Real &a_val) noexcept
Compute the average (across MPI ranks) of the input value.
Definition CD_ParallelOpsImplem.H:501
Real standardDeviation(const Real &a_value) noexcept
Compute the standard deviation of the input value.
Definition CD_ParallelOpsImplem.H:513
Vector< int > gather(const int &a_localValue) noexcept
Gather local values – return a vector of local values.
Definition CD_ParallelOpsImplem.H:540
std::pair< Real, int > minRank(const Real &a_val) noexcept
Get the minimum value and the rank having the minimum value.
Definition CD_ParallelOpsImplem.H:324
Real min(const Real &a_input) noexcept
Get the minimum of the input, reduced over MPI ranks (in the Chombo communicator)
Definition CD_ParallelOpsImplem.H:59
Real sum(const Real &a_value) noexcept
Compute the sum across all MPI ranks.
Definition CD_ParallelOpsImplem.H:354
std::pair< int, int > partition(int a_N) noexcept
Partition the input number such that each MPI rank gets an equal chunk. We assume that N is the lengt...
Definition CD_ParallelOpsImplem.H:36
void barrier() noexcept
MPI barrier.
Definition CD_ParallelOpsImplem.H:26