/* Three dimensional lattice Boltzmann code for the 370 class */ #include #include #include #define xdim 50 #define ydim 50 #define zdim 50 #define D 3 #define V 15 int Xdim=xdim,Ydim=ydim; int v[V][3]={{0,0,0}, {1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}, {1,1,1},{-1,1,1},{1,-1,1},{-1,-1,1},{1,1,-1},{-1,1,-1}, {1,-1,-1},{-1,-1,-1}}; double w[V] = {2./9., 1./9.,1./9.,1./9.,1./9.,1./9.,1./9., 1./72.,1./72.,1./72.,1./72.,1./72.,1./72.,1./72.,1./72.}; double tet = 1./3.; typedef double dens[V][xdim][ydim][zdim]; dens f1,f2,*f,*ff; double tau=1; // Variables for graphical representation int ZZ=0; double nxy[xdim][ydim],uxy[xdim][ydim][2]; int nxyreq=0,uxyreq=0; void init(dens f){ for (int x=0;xydim/2) u[0]=0.1; else u[0]=-0.1; for (int i=0;i