#include <deal.II/grid/grid_generator.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_renumbering.h>
#include <deal.II/fe/fe_q.h>
#include <deal.II/base/utilities.h>
#include <deal.II/distributed/tria.h>

#include <fstream>
#include <iostream>

using namespace dealii;

int main(int argc, char *argv[])
{
   Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
   MPI_Comm mpi_communicator (MPI_COMM_WORLD);
   parallel::distributed::Triangulation<2> triangulation (mpi_communicator,
                                                          typename Triangulation<2>::MeshSmoothing
                                                          (Triangulation<2>::smoothing_on_refinement |
                                                           Triangulation<2>::smoothing_on_coarsening));
   GridGenerator::hyper_cube (triangulation);
   triangulation.refine_global (5);
   DoFHandler<2> dof_handler (triangulation);
   FE_Q<2> fe (2);
   dof_handler.distribute_dofs (fe);
   DoFRenumbering::Cuthill_McKee(dof_handler);

   return 0;
}
