postProcess/getDataSlice.c
#include “navier-stokes/centered.h”
char filename[512]; int nx, ny; double xmin, ymin, xmax, ymax; scalar * list = NULL; scalar f[];
int main(int a, char const *arguments[]){
L0 = 40; origin(-0.5L0, -0.5L0);
if (a != 8) { fprintf (stderr, “usage: getDataSlice
list = list_add (list, f); list = list_add (list, u.x); list = list_add (list, u.y);
if (!restore (file = filename)) { fprintf (stderr, “error: could not restore %s”, filename); return 1; } boundary((scalar *){f, u.x, u.y});
FILE * fp = ferr; nx++; ny++; double Deltax = 0.999999(xmax-xmin)/(nx - 1); double Deltay = 0.999999(ymax-ymin)/(ny - 1); int len = list_len(list); double ** field = (double **) matrix_new (nx, ny, lensizeof(double)); for (int i = 0; i < nx; i++) { double x = Deltaxi + xmin; for (int j = 0; j < ny; j++) { double y = Deltay*j + ymin; int k = 0; for (scalar s in list){ field[i][len*j + k++] = interpolate (s, x, y); } } }
for (int i = 0; i < nx; i++) { double x = Deltaxi + xmin; for (int j = 0; j < ny; j++) { double y = Deltayj + ymin; fprintf (fp, “%g %g”, x, y); int k = 0; for (scalar s in list){ fprintf (fp, ” %g”, field[i][len*j + k++]); } fputc (‘’, fp); } } fflush (fp); matrix_free (field);
}