#include using namespace std; // Take a time step for the heat equation u_t = D u_{xx} using the 3 point explicit // forward Euler method. This amounts to // uNew[i] = a * uOld[i-1] + b*uOld[i] + c * uOld[i+1] int TimeStep( double* uNew, double* uOld, double dx, double dt, double D, int nu ){ double a = D*dt/(dx*dx); double c = D*dt/(dx*dx); double b = 1 - 2*D*dt/(dx*dx); int maxu = nu-1; for (int i = 1; i < maxu; i++ ) uNew[i] = a * uOld[i-1] + b*uOld[i] + c * uOld[i+1]; return 0; }