134 const bool isLocallyReplicated_in)
136 namespace SVSU = SpmdVectorSpaceUtilities;
142 localSubDim_ = this->localSubDim();
145 comm = this->getComm();
149 numProcs = comm->getSize();
156 Ordinal sumLocalSubDims = localSubDim_;
158 bool isSerialOrLocallyReplicated =
false;
159 bool isEmpty =
false;
160 bool isDistributed =
false;
162 if (isLocallyReplicated_in) {
164 isSerialOrLocallyReplicated =
true;
165 if (sumLocalSubDims == 0) {
172 sumLocalSubDims = SVSU::computeGlobalDim(*comm, localSubDim_);
174 if (sumLocalSubDims == 0) {
182 sumLocalSubDims / numProcs == globalDim
184 sumLocalSubDims % numProcs == 0
190 isSerialOrLocallyReplicated =
true;
200 isDistributed =
true;
210 defaultLocalOffset_ = 0;
211 defaultGlobalDim_ = 0;
213 else if (isSerialOrLocallyReplicated) {
214 isLocallyReplicated_ =
true;
215 mapCode_ = localSubDim_;
216 defaultLocalOffset_ = 0;
217 defaultGlobalDim_ = localSubDim_;
221 defaultGlobalDim_ = sumLocalSubDims;
222 mapCode_ = SVSU::computeMapCode(*comm, localSubDim_);
223 defaultLocalOffset_ = SVSU::computeLocalOffset(*comm, localSubDim_);
226 smallVecSpcFcty_ = defaultSpmdVectorSpaceFactory<Scalar>(comm);