Skip to content
Snippets Groups Projects
Select Git revision
  • 53c4b256ab8bfd98f18c37d64ced69f1e78d5082
  • main default protected
  • feature-gp
3 results

02_two_dim.py

Blame
  • vtk_export.c 971 B
    
    #include <stdlib.h>
    #include <stdio.h>
    
    #define Q(i, j, k) Q[((k) + (n) * ((j) + (m) * (i)))]
    
    
    
    void save_vtk(double *Q, double *x, double *y, int m, int n) {
      
      int i, j;
      FILE *fp = fopen("result.vtk", "w");
      
      /* Write vtk Datafile header */
      fprintf(fp, "# vtk DataFile Version 2.0\n");
      fprintf(fp, "VTK\nASCII\nDATASET POLYDATA\n");
    
      /* Store water height as polydata */
      fprintf(fp, "\nPOINTS %d double\n", m*n);
      
      for (j = 0; j < n; j++) 
        for (i = 0; i < m; i++)
          fprintf(fp, "%e %e %e\n", x[i], y[j], Q(0, i, j));
    
      fprintf(fp,"\nVERTICES %d %d\n", n, n *(m+1));
      for (j = 0; j < n; j++)  {
        fprintf(fp, "%d ", m);
        for (i = 0; i < m; i++) 
          fprintf(fp, "%d ", i+j*m);
        fprintf(fp,"\n");
      }
    
      /* Store lookup table */
      fprintf(fp,
    	  "POINT_DATA %d\nSCALARS height double 1\nLOOKUP_TABLE default\n",m*n);
      for (j = 0; j < n; j++)
        for (i = 0; i < m; i++)
          fprintf(fp, "%e\n", Q(0, i, j));
      fclose(fp);     
    }