message: One more fix of dof_owner/group init, now it runs OK on vulcan 64K cores.
diff: @@ -1814,32 +1814,38 @@ int ParFiniteElementSpace
  {
  Array<int> dofs;
  - int num_ent[3] =
  + // initialize dof_group[], dof_owner[]
  + for (int entity = 0; entity <= 2; entity++)
  {
  - pncmesh->GetNVertices() + pncmesh->GetNGhostVertices(),
  - pncmesh->GetNEdges() + pncmesh->GetNGhostEdges(),
  - pncmesh->GetNFaces() + pncmesh->GetNGhostFaces()
  - };
  + const NCMesh::NCList &list = pncmesh->GetNCList(entity);
  - // initialize dof_group[], dof_owner[]
  - for (int entity = 0; entity < pmesh->Dimension(); entity++)
  + std::size_t lsize[3] =
  + { list.conforming.size(), list.masters.size(), list.slaves.size() };
  +
  + for (int l = 0; l < 3; l++)
  {
  - for (int index = 0; index < num_ent[entity]; index++)
  + for (std::size_t i = 0; i < lsize[l]; i++)
  {
  - GroupId owner = pncmesh->GetEntityOwnerId(entity, index);
  - GroupId group = pncmesh->GetEntityGroupId(entity, index);
  + const MeshId &id =
  + (l == 0) ? list.conforming[i] :
  + (l == 1) ? (const MeshId&) list.masters[i]
  + /* */ : (const MeshId&) list.slaves[i];
  - GetBareDofs(entity, index, dofs);
  + GroupId owner = pncmesh->GetEntityOwnerId(entity, id.index);
  + GroupId group = pncmesh->GetEntityGroupId(entity, id.index);
  - for (int i = 0; i < dofs.Size(); i++)
  + GetBareDofs(entity, id.index, dofs);
  +
  + for (int j = 0; j < dofs.Size(); j++)
  {
  - int dof = dofs[i];
  + int dof = dofs[j];
  dof_owner[dof] = owner;
  dof_group[dof] = group;
  }
  }
  }
  }
  + }
  // *** STEP 3: count true DOFs and calculate P row/column partitions ***
  