#include #include #define EPSILON 0.00001 #define N 100 #define time_steps 100 int main (int argc, char *argv[]) { int i,j; int step; double time; double eps, enew; double time_max = 3.0; double alpha = 0.06; double dx = 1.0/N; double dy = 1.0/time_steps; double dt = time_max/time_steps; double dxinv = 1.0/dx; double dyinv = 1.0/dy; double dtinv = 1.0/dt; double divinv = 1.0/(dtinv + 2 * alpha * (dxinv * dxinv + dyinv * dyinv)); double t[N][N]; double told[N][N]; double minval, maxval; long clock(),cputime; char fname[40]; FILE *out; clock(); // initialize interior values for (i=1; i<(N-1); i++) for (j=1; j<(N-1); j++) told[i][j] = 0.0; // set initial boundary conditions for (i=0; i eps) { eps = enew; } } } for (i=0; i EPSILON); // Dump raster date to a file minval = 0.0; maxval = 0.0; for (i=0; i maxval) { maxval = t[i][j]; } } } sprintf(fname,"Output\\heat%03d.raw",step); out = fopen(fname,"w+b"); for (i=0; i