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);