src/test/mpi-grid.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
    
    #include "grid/multigrid.h"
    
    int main()
    {
      foreach_dimension()
        periodic (right);
    
      L0 = 2.*pi;
      init_grid (8);
      output_cells (stdout);
    
      vector u[];
      scalar s[];
      foreach()
        u.x[] = u.y[] = s[] = sin(x)*cos(y)*cos(z);
    
      foreach()
        foreach_neighbor(2) {
    #if 0
          fprintf (stderr, "%g %g %g %g %g %g\n", x, y, z, s[],
    	       s[] - sin(x)*cos(y)*cos(z), u.y[]);
    #else
          assert (fabs (s[] - sin(x)*cos(y)*cos(z)) < 1e-14);
          assert (fabs (u.x[] - sin(x)*cos(y)*cos(z)) < 1e-14);
          assert (fabs (u.y[] - sin(x)*cos(y)*cos(z)) < 1e-14);
    #endif
        }
    }