Beispiel #1
0
int main(int argc, char* argv[])
{
  // Create mesh
  UnitCubeMesh mesh(SIZE, SIZE, SIZE);

  // First call
  BoundingBoxTree tree;
  tree.build(mesh);
  Point point(-1.0, -1.0, 0.0);
  tree.compute_closest_entity(point);
  cout << "Built tree, searching for closest point" << endl;

  // Call repeatedly
  tic();
  for (int i = 0; i < NUM_REPS; i++)
  {
    tree.compute_closest_entity(point);
    point.coordinates()[1] += 2.0 / static_cast<double>(NUM_REPS);
  }
  const double t = toc();

  // Report result
  info("BENCH %g", t);

  return 0;
}
Beispiel #2
0
double bench_dolfin(const Mesh& mesh)
{
  cout << "Running DOLFIN bench" << endl;

  // First call
  BoundingBoxTree tree;
  tree.build(mesh);
  Point point(-1.0, -1.0, 0.0);
  tree.compute_closest_entity(point, mesh);

  cout << "Built tree, searching for closest point" << endl;

  // Call repeatedly
  tic();
  for (int i = 0; i < NUM_REPS; i++)
  {
    //std::pair<unsigned int, double> ret = tree.compute_closest_entity(point, mesh);
    //cout << ret.first << " " << ret.second << endl;
    tree.compute_closest_entity(point, mesh);
    point.coordinates()[1] += 2.0 / static_cast<double>(NUM_REPS);
  }

  return toc();
}