/* Driver for routine sor */ #include #include #define NRANSI #include "nr.h" #include "nrutil.h" #define NSTEP 4 #define JMAX 33 #define PI 3.1415926 int main(void) { int i,j,midl; double **a,**b,**c,**d,**e,**f,**u,rjac; a=dmatrix(1,JMAX,1,JMAX); b=dmatrix(1,JMAX,1,JMAX); c=dmatrix(1,JMAX,1,JMAX); d=dmatrix(1,JMAX,1,JMAX); e=dmatrix(1,JMAX,1,JMAX); f=dmatrix(1,JMAX,1,JMAX); u=dmatrix(1,JMAX,1,JMAX); for (i=1;i<=JMAX;i++) for (j=1;j<=JMAX;j++) { a[i][j]=b[i][j]=c[i][j]=d[i][j]=1.0; e[i][j]=(-4.0); f[i][j]=u[i][j]=0.0; } midl=JMAX/2+1; f[midl][midl]=2.0/((JMAX-1)*(JMAX-1)); rjac=cos(PI/JMAX); sor(a,b,c,d,e,f,u,JMAX,rjac); printf("SOR solution:\n"); for (i=1;i<=JMAX;i+=NSTEP) { for (j=1;j<=JMAX;j+=NSTEP) printf("%8.4f",u[i][j]); printf("\n"); } printf("\n Test that solution satisfies difference equations:\n"); for (i=NSTEP+1;i