sandbox/Antoonvh/genarr_rise.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
    
    #define GHOSTS 2
    #include "utils.h"
    
    #define OFFSET(l)  (((1 << ((2*l)+2)) - 1)/3)
    #define _O (-GHOSTS)
    #define C_IND(i,j,l) ((i + _O) + (1 << l)*(j + _O))
    #define INDEX (OFFSET(level - 1) + C_IND(point.i, point.j, level)) 
    
    scalar b[];
    
    int main() {
      foreach_dimension()
        periodic(left);
      for (int t = 1; t<= 5; t += 2) {
        char fname[99];
        sprintf(fname, "%d-dump%d", t, 9);
        restore (fname);
        b.restriction = restriction_vertex;
        restriction ({b});
        printf ("%d\n", depth());
        sprintf(fname, "%d-risedata", t);
        FILE * fp = fopen (fname, "wb");
        foreach_cell() {
          fseek (fp, INDEX*sizeof(double), SEEK_SET);
          fwrite (&b[], 1, sizeof(double), fp);
        }
        fclose (fp);
      }
    }