#include <deal.II/grid/tria.h>
#include <deal.II/hp/dof_handler.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/fe/fe_face.h>
#include <deal.II/dofs/dof_accessor.h>

using namespace dealii;

int main()
 {
   Triangulation<2> triangulation;
   GridGenerator::hyper_cube(triangulation);
   triangulation.refine_global(1);
   Triangulation<2>::active_cell_iterator cell = triangulation.begin_active();
   cell->set_refine_flag();
   triangulation.execute_coarsening_and_refinement ();
   hp::DoFHandler<2>      dof_handler(triangulation);
   hp::DoFHandler<2>::active_cell_iterator cell2 = dof_handler.begin_active(), endc = dof_handler.end();
   for (;cell2!=endc;++cell2)
   {
     if (cell2->level()==2)
     {
       cell2->set_active_fe_index(1);
     }
   }
   hp::FECollection<2>    fe_collection;
   fe_collection.push_back(FE_FaceQ<2>(1));
   fe_collection.push_back(FE_FaceQ<2>(2));
   dof_handler.distribute_dofs(fe_collection);
 }
