logo资料库

顶盖驱动流的格子Boltzmann模拟代码.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
#include #include #include #include #include #include #include using namespace std; const int Q=9; const int NX=256; const int NY=256; const double U=0.1; int e[Q][2]={{0,0},{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,1},{-1,-1},{1,-1}}; double w[Q]={4.0/9,1.0/9,1.0/9,1.0/9,1.0/9,1.0/36,1.0/36,1.0/36,1.0/36}; double rho[NX+1][NY+1],u[NX+1][NY+1][2],u0[NX+1][NY+1][2],f[NX+1][NY+1][Q],F[NX +1][NY+1][Q]; int i,j,k,ip,jp,n; double c,Re,dx,dy,Lx,Ly,dt,rho0,P0,tau_f,niu,error; void init(); double feq(int k,double rho,double u[2]); void evolution(); void output(int m); void Error(); int main() { (NX/2,NY/2)is : " <=1000) { using namespace std; init(); for(n=0;;n++) { evolution(); if(n%100==0) { Error(); cout<<"The"<
} } } return 0; if(n%1000==0) output(n); if(error<1.0e-6) break; dx=1.0; dy=1.0; Lx=dx*double(NY); Ly=dy*double(NX); dt=dx; c=dx/dt; rho0=1.0; Re=100; niu=U*Lx/Re; tau_f=3.0*niu+0.5; std::cout<<"tau_f= "<
u0[i][j][0]=u[i][j][0]; u0[i][j][1]=u[i][j][1]; rho[i][j]=0; u[i][j][0]=0; u[i][j][1]=0; for(k=0;k
f[i][NY][k]=feq(k,rho[i][NY],u[i][NY])+(f[i][NY-1] [k]-feq(k,rho[i][NY-1],u[i][NY-1]))*(1-1/tau_f); } } } for(i=0;i<=NX;i++) { } void output(int m) { ostringstream name; name<<"cavity_100_"<
分享到:
收藏