message: timers for ex1
diff: #include "mfem.hpp"
  #include <fstream>
  #include <iostream>
  +#include <chrono>
  +#include <ctime>
  using namespace std;
  using namespace mfem;
  @@ -58,10 +60,11 @@ using namespace mfem;
  int main(int argc, char *argv[])
  {
  // 1. Parse command-line options.
  - const char *mesh_file = "../data/star.mesh";
  + const char *mesh_file = "../data/beam-hex.mesh";
  + //const char *mesh_file = "../data/star.mesh";
  int order = 1;
  bool static_cond = false;
  - bool pa = false;
  + bool pa = true;
  const char *device_config = "cpu";
  bool visualization = true;
  @@ -165,6 +168,7 @@ int main(int argc, char *argv[])
  BilinearForm *a = new BilinearForm(fespace);
  if (pa) { a->SetAssemblyLevel(AssemblyLevel::PARTIAL); }
  a->AddDomainIntegrator(new DiffusionIntegrator(one));
  + //a->AddDomainIntegrator(new MassIntegrator(one));
  // 10. Assemble the bilinear form and the corresponding linear system,
  // applying any necessary transformations such as: eliminating boundary
  @@ -196,7 +200,16 @@ int main(int argc, char *argv[])
  }
  else // No preconditioning for now in partial assembly mode.
  {
  + auto start = std::chrono::system_clock::now();
  CG(*A, B, X, 1, 2000, 1e-12, 0.0);
  + cudaDeviceSynchronize();
  + auto end = std::chrono::system_clock::now();
  +
  + std::chrono::duration<double> elapsed_seconds = end-start;
  + std::time_t end_time = std::chrono::system_clock::to_time_t(end);
  +
  + std::cout << "finished computation at " << std::ctime(&end_time)
  + << "elapsed time: " << elapsed_seconds.count() << "s\n";
  }
  // 12. Recover the solution as a finite element grid function.
  