message: Added support for vector spaces in FiniteElementSpace::H2L_GlobalRestrictionMatrix
diff: @@ -495,9 +495,10 @@ FiniteElementSpace::H2L_GlobalRestrictionMatrix (FiniteElementSpace *lfes)
  {
  SparseMatrix *R;
  DenseMatrix loc_restr;
  - Array<int> l_dofs, h_dofs;
  + Array<int> l_dofs, h_dofs, l_vdofs, h_vdofs;
  - R = new SparseMatrix (lfes -> GetNDofs(), ndofs);
  + int vdim = lfes->GetVDim();
  + R = new SparseMatrix (vdim * lfes -> GetNDofs(), vdim * ndofs);
  Geometry::Type cached_geom = Geometry::INVALID;
  const FiniteElement *h_fe = NULL;
  @@ -520,7 +521,16 @@ FiniteElementSpace::H2L_GlobalRestrictionMatrix (FiniteElementSpace *lfes)
  cached_geom = geom;
  }
  - R -> SetSubMatrix (l_dofs, h_dofs, loc_restr, 1);
  + for (int vd = 0; vd < vdim; vd++)
  + {
  + l_dofs.Copy(l_vdofs);
  + lfes->DofsToVDofs(vd, l_vdofs);
  +
  + h_dofs.Copy(h_vdofs);
  + this->DofsToVDofs(vd, h_vdofs);
  +
  + R -> SetSubMatrix (l_vdofs, h_vdofs, loc_restr, 1);
  + }
  }
  R -> Finalize();
  