| ²é¿´: 748 | »Ø¸´: 0 | ||
ÎÒÔÊÇÎÒÒÔΪгæ (СÓÐÃûÆø)
|
[ÇóÖú]
ÇóÌÕÀÏʦÊýÖµ´«ÈÈѧ4.8½Ú³¤·½ÐνØÃæ¶ÔÁ÷»»ÈÈC³ÌÐò£¬»òÕß°ïæ¿´¿´³ÌÐòÄÄÀï²»¶Ô
|
|
Çó´óÉñ°ïæ¿´¿´loop2£¬ÇóNu¹ý³Ì£¬ÄÄÀï²»¶Ô£¬fReºÍÊéÉϲ¶à #include <math.h> #include <stdio.h> #define NT 70 void main() { /*¶¨Òå±äÁ¿*/ int N,M,i,j,Iter; double W[NT][NT],W0[NT][NT],sita[NT][NT],sita0[NT][NT],T[NT][NT],De,Re,Nu; double dltx,dlty,dx,dy,Wm,D,x,y,a,b; double Eps,DT,DTmax,SD; double ap,aw,ae,as,an,JF,b1,b2,JA,ap1; FILE*fp; /*¶ÁÈë²ÎÊý*/ printf("ÇëÊäÈëx·½Ïò½ÚµãÊýN y·½Ïò½ÚµãÊýM\n" ;scanf("%d%d",&N,&M); printf("ÇëÊäÈë½çÃæ³¤¶Èa ½çÃæ¿í¶Èb\n" ;scanf("%lf%lf",&a,&b); /*ÒÑÖª²ÎÊý*/ SD=0; JF=0; dltx=a; dlty=b; De=2*dltx*dlty/(dltx+dlty); D=a;/*ÌØÕ÷³ß´ç*/ N; M; Eps=1.e-6;/*¼ÆË㾫¶È*/ /*»ù±¾²ÎÊý*/ dx=dltx/(N-1); dy=dlty/(M-1); ae=aw=dy/dx; an=as=dx/dy; /*Ëٶȱ߽çÌõ¼þ´¦Àí*/ /*¹ÌÌå±íÃæËÙ¶ÈΪ0Öµ*/ for(j=0;j<M;j++) { W[0][j]=0; W[N-1][j]=0; } for(i=1;i<N-1;i++) { W[0]=0; W[M-1]=0; } /*Ëٶȳ¡¸³³õÖµ*/ for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { W[j]=0.00008; W0[j]=W[j];/*¶ÔÉÏÒ»´Îµü´úÖµ¸³Öµ*/ } Iter=0; /*Gauss-Seidelµü´ú¼ÆËãËÙ¶È*/ loop1: for(j=1;j<M-1;j++) { for(i=1;i<N-1;i++) { ap=ae+aw+an+as; b1=(dx*dy)/(D*D); W[j]=ae/ap*W[i+1][j]+aw/ap*W[i-1][j]+an/ap*W[j+1]+as/ap*W[j-1]+b1/ap; } } /*¼ÆËãÁ½´Îµü´ú×î´óÎó²î*/ Iter=Iter+1; DTmax=0.0; for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { DT=fabs(W[j]-W0[j]); W0[j]=W[j]; if(DT>DTmax) DTmax=DT; } if(DTmax>Eps) goto loop1; for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { SD+=W[j]*dx*dy; } Wm=SD/(a*b); printf("ÎÞÁ¿¸ÙËÙ¶ÈÆ½¾ùÖµ:\n" ;printf("Wm=%5.6f\n",Wm); /*±ß½çÌõ¼þ´¦Àí*/ /*¹ÌÌå±íÃæÎÞÁ¿¸ÙΪ0,È¡T=JA*sita½øÐеü´úÇóJA*/ for(j=0;j<M;j++) { sita[0][j]=0; sita[N-1][j]=0; } for(i=1;i<N-1;i++) { sita[0]=0; sita[M-1]=0; } /*sita³¡¸³³õÖµ*/ for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { sita[j]=0.003; sita0[j]=sita[j];/*¶ÔÉÏÒ»´Îµü´úÖµ¸³Öµ*/ } Iter=0; /*Gauss-Seidelµü´ú¼ÆËã*/ loop2: for(j=1;j<M-1;j++) { for(i=1;i<N-1;i++) { JF+=W[j]*sita[j]; } } JA=a*b/JF/Wm; for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { b2=dx*dy*JA*W[j]/(D*D*Wm); ap1=ap-b2; sita[j]=ae/ap1*sita[i+1][j]+aw/ap1*sita[i-1][j]+an/ap1*sita[j+1]+as/ap1*sita[j-1]; } /*¼ÆËãÁ½´Îµü´ú×î´óÎó²î*/ Iter=Iter+1; DTmax=0.0; for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { DT=fabs(sita[j]-sita0[j]); sita0[j]=sita[j]; if(DT>DTmax) DTmax=DT; } if(DTmax>Eps) goto loop2; /*Re¼ÆËã*/ printf("ReÊýΪ:\n" ;Re=2*(De/D)*(De/D)/Wm; printf("%5.6f\n",Re); /*Nu¼ÆËã*/ printf("NuÊýΪ:\n" ;Nu=0.25*(De/D)*(De/D)*JA; printf("%5.6f\n",Nu); for(j=1;j<M-1;j++) for(i=1;i<N-1;i++) { T[j]=JA*sita[j]; } fp=fopen("result.dat","w" ;printf("ÎÞÁ¿¸ÙζÈ:\n" ;for(j=M-1;j>=0;j--) { for(i=0;i<N;i++) { fprintf(fp,"%5.6f",T[j]); } printf("\n" ;} fclose(fp); } ·¢×ÔСľ³æIOS¿Í»§¶Ë |
» ²ÂÄãϲ»¶
**
ÒѾÓÐ1È˻ظ´
0702Ò»Ö¾Ô¸¼ª´óBÇøÇóµ÷¼Á ±¾¿ÆÆÚ¼ä·¢±íһƪSci
ÒѾÓÐ3È˻ظ´
ÎïÀíѧIÂÛÎÄÈóÉ«/·ÒëÔõôÊÕ·Ñ?
ÒѾÓÐ273È˻ظ´
»ùµ×STO,±¡Ä¤SRO£¬XRDÀïÃæµÄÕñµ´£¬ÊÇlaueÕðµ´»¹ÊÇkiessigÕñµ´? ÔõôÅжϣ¿
ÒѾÓÐ2È˻ظ´
BÇøÑ§Éúµ÷¼Á-À¼Öݽ»Í¨´óѧ²ÄÁÏ¿ÆÑ§Ó빤³ÌѧԺ
ÒѾÓÐ11È˻ظ´
ɽÎ÷´óͬ´óѧÎïÀíѧרҵ»¹Óе÷¼ÁÃû¶î£¬»¶Óµ÷¼Á£¡
ÒѾÓÐ13È˻ظ´
¹ðÁÖÀí¹¤´óѧÎïÀíѧרҵÕÐÊÕµ÷¼Á
ÒѾÓÐ13È˻ظ´
VASP µÄÒ»×é GPU / CPU »ù×¼²âÊԼǼ
ÒѾÓÐ0È˻ظ´
ÃÀ¹ú¶¥¼¶ÎïÀíÆÚ¿¯¡¶Ó¦ÓÃÎïÀí¿ì±¨¡·£¨APL£©µÄ±à¼ÆÛÆºÍÆçÊÓ×÷Õß¼°AIPµÄ¹ÙÁÅÖ÷Òå°ÁÂý
ÒѾÓÐ6È˻ظ´
½òÀí¹¤´óѧ¾§Ìå²ÄÁÏÈ«¹úÖØµãʵÑéÊÒÁõºì¾ü½ÌÊÚ¿ÎÌâ×éÕÐÊÕ²©Ê¿ÉúÒ»Ãû
ÒѾÓÐ0È˻ظ´













;
»Ø¸´´ËÂ¥