message: Restricting new code to the 3D case
diff: @@ -2011,15 +2011,18 @@ void ParMesh::ExchangeFaceNbrData(Table *gr_sface, int *s2l_face)
  send_face_nbr_vertices.AddConnection(fn, v[j]);
  }
  - const int nf = elements[el]->GetNFaces();
  - GetElementFaces(el, fcs, cor);
  -
  send_face_nbr_elemdata.AddConnection(fn, GetAttribute(el));
  send_face_nbr_elemdata.AddConnection(
  fn, GetElementBaseGeometry(el));
  send_face_nbr_elemdata.AddConnections(fn, v, nv);
  +
  + if (Dim == 3)
  + {
  + const int nf = elements[el]->GetNFaces();
  + GetElementFaces(el, fcs, cor);
  send_face_nbr_elemdata.AddConnections(fn, cor, nf);
  }
  + }
  send_face_nbr_facedata.AddConnection(fn, el);
  int info = faces_info[lface].Elem1Inf;
  // change the orientation in info to be relative to the shared face
  @@ -2064,7 +2067,7 @@ void ParMesh::ExchangeFaceNbrData(Table *gr_sface, int *s2l_face)
  for (int el = 0; el < num_elems; el++)
  {
  const int nv = elements[elems[el]]->GetNVertices();
  - const int nf = elements[elems[el]]->GetNFaces();
  + const int nf = (Dim == 3) ? elements[elems[el]]->GetNFaces() : 0;
  elemdata += 2; // skip the attribute and the geometry type
  for (int j = 0; j < nv; j++)
  {
  @@ -2150,6 +2153,8 @@ void ParMesh::ExchangeFaceNbrData(Table *gr_sface, int *s2l_face)
  }
  el->SetVertices(recv_elemdata);
  recv_elemdata += nv;
  + if (Dim == 3)
  + {
  int nf = el->GetNFaces();
  int * fn_ori = face_nbr_el_ori.GetRow(elem_off);
  for (int j = 0; j < nf; j++)
  @@ -2157,6 +2162,7 @@ void ParMesh::ExchangeFaceNbrData(Table *gr_sface, int *s2l_face)
  fn_ori[j] = recv_elemdata[j];
  }
  recv_elemdata += nf;
  + }
  face_nbr_elements[elem_off++] = el;
  }
  }
  