166 const bool isLocallyReplicated_in)
168 namespace SVSU = SpmdVectorSpaceUtilities;
174 localSubDim_ = this->localSubDim();
177 comm = this->getComm();
181 numProcs = comm->getSize();
188 Ordinal sumLocalSubDims = localSubDim_;
190 bool isSerialOrLocallyReplicated =
false;
191 bool isEmpty =
false;
192 bool isDistributed =
false;
194 if (isLocallyReplicated_in) {
196 isSerialOrLocallyReplicated =
true;
197 if (sumLocalSubDims == 0) {
204 sumLocalSubDims = SVSU::computeGlobalDim(*comm, localSubDim_);
206 if (sumLocalSubDims == 0) {
214 sumLocalSubDims / numProcs == globalDim
216 sumLocalSubDims % numProcs == 0
222 isSerialOrLocallyReplicated =
true;
232 isDistributed =
true;
242 defaultLocalOffset_ = 0;
243 defaultGlobalDim_ = 0;
245 else if (isSerialOrLocallyReplicated) {
246 isLocallyReplicated_ =
true;
247 mapCode_ = localSubDim_;
248 defaultLocalOffset_ = 0;
249 defaultGlobalDim_ = localSubDim_;
253 defaultGlobalDim_ = sumLocalSubDims;
254 mapCode_ = SVSU::computeMapCode(*comm, localSubDim_);
255 defaultLocalOffset_ = SVSU::computeLocalOffset(*comm, localSubDim_);
258 smallVecSpcFcty_ = defaultSpmdVectorSpaceFactory<Scalar>(comm);