42#include "Thyra_SpmdVectorSpaceUtilities.hpp"
43#include "Teuchos_CommHelpers.hpp"
49Ordinal SpmdVectorSpaceUtilities::computeMapCode(
53 using Teuchos::outArg;
54 using Teuchos::REDUCE_SUM;
55 using Teuchos::reduceAll;
62 const int procRank = comm.
getSize ();
64 Ordinal localCode = localSubDim % (procRank+1) + localSubDim;
65 reduceAll<Ordinal, Ordinal> (comm, REDUCE_SUM, localCode, outArg (mapCode));
70Ordinal SpmdVectorSpaceUtilities::computeLocalOffset(
74 using Teuchos::outArg;
75 using Teuchos::REDUCE_SUM;
79 const Ordinal _localOffset = localSubDim;
80 scan<Ordinal, Ordinal> (comm, REDUCE_SUM, _localOffset, outArg (localOffset));
81 localOffset -= localSubDim;
86Ordinal SpmdVectorSpaceUtilities::computeGlobalDim(
90 using Teuchos::outArg;
91 using Teuchos::REDUCE_SUM;
92 using Teuchos::reduceAll;
95 reduceAll<Ordinal, Ordinal> (comm, REDUCE_SUM, localSubDim, outArg (globalDim));
virtual int getSize() const=0
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.