| ²é¿´: 1118 | »Ø¸´: 5 | ||
| µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû | ||
»¨¿ªÊ±½Ú0931Ìú³æ (³õÈëÎÄ̳)
|
[ÇóÖú]
ÇóÖú¸ñ×Óboltzmann·½·¨Ä£ÄâÆ½°å¼äÆøÌåÁ÷¶¯ ÒÑÓÐ1È˲ÎÓë
|
|
|
¿ÕÆøÒÔÉùËÙ´ÓÆ½°å¼ä½øÈ룬ƽ°åºñ¶È10΢Ã×£¬Ïë²ÉÓøñ×ÓboltzmannÄ£ÄâÆøÌåÁ÷¶¯£¬Ã»Ñ§¹ýCÓïÑÔ£¬±ßѧ±ß¸Ä¡£ÎÊÌ⻹ÊǺܴ󣬱ÏÒµÂÛÎÄ׿±£¬ÇóÖ¸µ¼¡£²»Ê¤¸Ð¼¤¡£ #include <cmath> #include <iostream> #include <cstdlib> #include <iomanip> #include <fstream> #include <sstream> #include <string> using namespace std; const int Q=9; //D2Q9Ä£ÐÍ const int NX=120;//X·½Ïò const int NY=40;//Y·½Ïò //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,Kn; void init(); double feq(int k,double rho,double u[2]); double rhosum[NX][NY] = {0}; double Psum[NX][NY] = {0}; void evolution(); void output(int m) ; void Error(); int main() { using namespace std; init(); for(n=0; ;n++) { evolution(); if (n%1000==0) { Error(); cout<<"the "<<n<<" th computation result:"<<endl<< "The u,v of point (NX/2,NY/2)is:" <<setprecision(6) <<u[NX/2][NY/2][0]<<","<<u[NX/2][NY/2][1]<<endl; cout<<"The max relative error of uv is: " <<setiosflags(ios::scientific)<< error <<endl; if(n>=100) { if(n%1000==0) output(n); if(error<1.0e-12) break; } } } return 0; } void init() { dx=1.0; dy=1.0; P0=0.5; Lx=dx*double(NY); Ly=dy*double(NX); dt=dx; c=dx/dt;//1.0 rho0=1.03; Kn=0.5; tau_f=8; //tau_f=P0*Lx*Kn*sqrt(6/3.14)+0.5; //Re=8; // niu=0.1*Lx/Re; //tau_f=3.0*niu+0.5; std::cout<<"tau_f="<<tau_f<<endl; for(i=0;i<=NX;i++)//³õʼ»¯ for(j=0;j<=NY;j++) { u[j][0]=0; u[j][1]=0; rho[j]=rho0; u[0][j][0]=0.57; for (k=0;k<Q;k++) { f[j][k]=feq(k,rho[j],u[j]); } } } double feq(int k,double rho,double u[2])//¼ÆËãÆ½ºâ̬·Ö²¼º¯Êý { double eu,uv,feq; eu=(e[k][0]*u[0]+e[k][1]*u[1]); uv=(u[0]*u[0]+u[1]*u[1]); feq=w[k]*rho*(1.0+3.0*eu+4.5*eu*eu-1.5*uv); return feq; } void evolution() { for(i=1;i<NX;i++)//ÑÝ»¯ for(j=1;j<NY;j++) for(k=0;k<Q;k++) { ip=i-e[k][0]; jp=j-e[k][1]; F[j][k]=f[ip][jp][k]+(feq(k,rho[ip][jp], u[ip][jp])-f[ip][jp][k])/tau_f; } for(i=1;i<NX;i++)//¼ÆËãºê¹ÛÁ¿ for(j=1;j<NY;j++) { u0[j][0]=u[j][0]; u0[j][1]=u[j][1]; rho[j]=0; u[j][0]=0; u[j][1]=0; for(k=0;k<Q;k++) { f[j][k]=F[j][k]; rho[j]+=f[j][k]; u[j][0]+=e[k][0]*f[j][k]; u[j][1]+=e[k][1]*f[j][k]; rhosum[j] += f[j][k]; } Psum[j] = rhosum[j] * c * c / 3; u[j][0]/=rho[j]; u[j][1]/=rho[j]; } //±ß½ç´¦Àí //×óÓұ߽ç for(i=0;i<=NX;i++)//ÉÏϱ߽ç for(k=0;k<Q;k++) { rho[0]=rho[1]; f[0][k]=feq(k,rho[0],u[0])+f[1][k] -feq(k,rho[1],u[1]); rho[NY]=rho[NY-1]; u[NY][0]=0; u[NY][1]=0; u[0][0]=0; u[0][1]=0; f[NY][k]=feq(k,rho[NY],u[NY])+f[NY-1] [k]-feq(k,rho[NY-1],u[NY-1]); } } void output(int m)//Êä³ö { ostringstream name; name<<"cavity_"<< m<<".dat"; ofstream out(name.str().c_str()); out<<"Title=\"LBM Lid Driven Flow\"\n"<< "VARIABLES=\"X\",\"Y\", \"U\",\"V\",\"rhosum\",\"Psum\"\n" <<"ZONE T=\"BOX\",I="<<NX+1<<",J="<<NY+1<<",F=POINT"<<endl; for(j=0;j<=NY;j++) for(i=0;i<=NX;i++) { out<< double(i)/Lx<<","<<double(j)/Ly<<","<<u[j][0]<<","<<u[j][1]<<","<<rhosum[j]<<","<<Psum[j]<<"\n" <<endl; } } void Error() { double temp1,temp2; temp1=0; temp2=0; for(i=1;i<NX;i++) for(j=1;j<NY;j++) { temp1+=( (u[j][0]-u0[j][0])*(u[j][0]-u0[j][0]) +(u[j][1]-u0[j][1])*(u[j][1]-u0[j][1])); temp2+= (u[j][0]*u[j][0]+u[j][1]*u[j][1]); } temp1=sqrt(temp1); temp2=sqrt(temp2); error=temp1/(temp2); } |
» ²ÂÄãϲ»¶
0858¶¯Á¦¹¤³Ì290Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Çóµ÷¼Á£¬ÈÏÕæÌ¤Êµ£¬³Ô¿àÄÍÀÍ£¬ÓпÆÑÐDZÁ¦
ÒѾÓÐ0È˻ظ´
½ðÊô²ÄÁÏÂÛÎÄÈóÉ«/·ÒëÔõôÊÕ·Ñ?
ÒѾÓÐ259È˻ظ´
0858ÄÜÔ´¶¯Á¦ÇóBÇøµ÷¼Á£¬¶¯Á¦¹¤³ÌÒ²¿ÉÒÔ£¡
ÒѾÓÐ0È˻ظ´
¹ØÓÚChinese Journal of AeronauticsÆÚ¿¯ÊÕ²»ÊÕ°æÃæ·ÑµÄͶ¸åÇóÖúÌù
ÒѾÓÐ0È˻ظ´
µ÷¼Á ¶¯Á¦¹¤³Ì322 Ò»Ö¾Ô¸ÖÐʯÓÍ»ª¶«
ÒѾÓÐ2È˻ظ´
¶«ÄÏ´óѧ364Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Çóµ÷¼Á£¬×Ü·Ö391
ÒѾÓÐ3È˻ظ´
pvaË®Äý½ºµç³Ø
ÒѾÓÐ0È˻ظ´
328Çóµ÷¼Á
ÒѾÓÐ0È˻ظ´
¶þÔªÈÛÈÚÑÎÎïÐÔ»ñÈ¡
ÒѾÓÐ0È˻ظ´
»¨¿ªÊ±½Ú0931
Ìú³æ (³õÈëÎÄ̳)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 21
- Ìû×Ó: 19
- ÔÚÏß: 5.8Сʱ
- ³æºÅ: 3159261
- ×¢²á: 2014-04-24
5Â¥2015-12-29 10:43:57
ÀÏ´ó¶ÁÊé
ͳæ (ÕýʽдÊÖ)
- Ó¦Öú: 5 (Ó×¶ùÔ°)
- ½ð±Ò: 165.4
- É¢½ð: 305
- ºì»¨: 2
- Ìû×Ó: 560
- ÔÚÏß: 338.5Сʱ
- ³æºÅ: 2471699
- ×¢²á: 2013-05-19
- רҵ: µç»¯Ñ§·ÖÎö
2Â¥2015-11-24 23:28:52
¶À¹Â694
ÖÁ×ðľ³æ (ÖªÃû×÷¼Ò)
- Ó¦Öú: 231 (´óѧÉú)
- ½ð±Ò: 6733.6
- É¢½ð: 9022
- ºì»¨: 41
- ɳ·¢: 23
- Ìû×Ó: 5601
- ÔÚÏß: 1898.6Сʱ
- ³æºÅ: 2134245
- ×¢²á: 2012-11-18
- ÐÔ±ð: GG
- רҵ: ¶àÏàÁ÷ÈÈÎïÀíѧ
¡¾´ð°¸¡¿Ó¦Öú»ØÌû
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
|
ÄãÊǸù¾ÝºÎÑÅÁáÊéÀïµÄ³ÌÐò¸ÄµÄ£¿Ã»Ï¸¿´£¬Ê×ÏÈËý³ÌÐòÀïÊDz»¿ÉѹģÐÍ£¬ËÙ¶ÈÒª±£Ö¤Ð¡ÓÚ0.3ÂíºÕ£¬¶øÄãµÄÎÊÌâÊÇ¿ÉѹÁ÷£¬Ä¿Ç°×î³£ÓõĿÉѹģÐÍÊǶàËÙÄ£Ðꡃ ·¢×ÔСľ³æAndroid¿Í»§¶Ë |

3Â¥2015-11-24 23:39:03
¹Â¶ÀµÄÂþ²½
ľ³æ (СÓÐÃûÆø)
- Ó¦Öú: 6 (Ó×¶ùÔ°)
- ½ð±Ò: 4314.8
- É¢½ð: 677
- ºì»¨: 2
- Ìû×Ó: 87
- ÔÚÏß: 351.1Сʱ
- ³æºÅ: 2591375
- ×¢²á: 2013-08-11
- ÐÔ±ð: GG
- רҵ: ´«ÈÈ´«ÖÊѧ

4Â¥2015-11-29 19:43:42













»Ø¸´´ËÂ¥