// Maxwell_2D ¸¦ ÅëÇØ¼­ ¾òÀº ÆòÇü »óÅÂÀÇ °ªÀ» ºÒ·¯¼­ °è»êÇÔ #include #include #include #include #define ITER 50 #define T 0.005 // ´ÜÀ§ ½Ã°£ #define N 10000 // ÀÔÀÚÀÇ °¹¼ö #define L 3000 // ¹Ú½ºÀÇ ³Êºñ #define R 3 // ÀÔÀÚ Áö¸§ int main() { int i,j,k,l; double vx[N],x[N]; double vy[N],y[N]; double pi,tmp1,tmp2; double initialE; double finalE; double v[N],vsquare[N]; int low[N]; //energy 0.9 - 1.1 int high[N]; //energy 2.8 - 3.2 double eng_low[N]; //energy 0.9 - 1.1 double eng_high[N]; //energy 2.8 - 3.2 int low_num, high_num; int low_limit, high_limit; int low_find, high_find; double eng; int iter; int elapse; FILE *logger; FILE *fp1; FILE *fp2; char outfile1[100]; char outfile2[100]; char outfile3[100]; srand(time(NULL)); FILE *vxx = fopen("vx.dat","r"); FILE *vyy = fopen("vy.dat","r"); FILE *xx = fopen("x.dat","r"); FILE *yy = fopen("y.dat","r"); fflush(stdin); for(i=0;i 0.9 ) // ³·Àº ¿¡³ÊÁö ±¸º°, ¹øÈ£¸¦ low[]¿¡ ¼ø¼­´ë·Î ÀúÀå { low[low_num]=i; low_num++; } if( eng < 3.2 && eng > 2.8 ) // ³ôÀº ¿¡³ÊÁö ±¸º°, ¹øÈ£¸¦ high[]¿¡ ¼ø¼­´ë·Î ÀúÀå { high[high_num]=i; high_num++; } } low_limit=low_num*0.5; high_limit=high_num*0.5; system("cls"); fprintf(logger,"# of low : %d \t # of high %d\n",low_num,high_num); printf("# of low : %d \t # of high %d\n",low_num,high_num); printf("Limit of low : %d \t Limit of high %d\n",low_limit,high_limit); while(high_find < high_limit && low_find < low_limit ) { for(j=0;jL) vx[j]=-fabs(vx[j]); //0,L °æ°è¸é¿¡¼­ µÇƦ if(x[j]<0) vx[j]=fabs(vx[j]); if(y[j]>L) vy[j]=-fabs(vy[j]); //0,L °æ°è¸é¿¡¼­ µÇƦ if(y[j]<0) vy[j]=fabs(vy[j]); } for(j=0;j