src/test/indexing.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  
/* parallel Z-indexing */

  #include "refine_unbalanced.h"

  int main (int argc, char ** argv)
  {
    int depth = 4;
    origin (-0.5, -0.5, -0.5);
    init_grid (1);

    foreach_cell() {
      cell.pid = pid();
      cell.flags |= active;
    }
    tree->dirty = true;

    refine_unbalanced (level < depth - 2 ||
  		     level <= depth*(1. - sqrt(x*x + y*y + z*z)),
  		     NULL);

    scalar reference[];
    int i = 0;
    foreach()
      reference[] = i++;

    mpi_partitioning();

    scalar index[];
    z_indexing (index, true);

    output_cells (stdout);
    foreach() {
      fprintf (stderr, "%g %g %g %g %g\n", x, y, z, index[], reference[]);
      assert (index[] == reference[]);
    }
  }