?? xiangyang28.cpp
字號:
}
for(i=NNN+DDD;i<Nx-NNN-DDD;i++) //左面x向電磁場
for(k=NNN+DDD;k<=Nz-NNN-DDD;k++)
{
fz.shi+=Jzl[i-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jzl[i-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(i-Nx/2.0)*si[loop1]*co[loop2]-cansh2*(Ny/2-NNN-DDD)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fz.xu+=Jzl[i-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jzl[i-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(i-Nx/2.0)*si[loop1]*co[loop2]-cansh2*(Ny/2-NNN-DDD)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fmz.shi-=Jmzl[i-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jmzl[i-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(i+0.5-Nx/2.0)*si[loop1]*co[loop2]-cansh2*(Ny/2-NNN-DDD)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
fmz.xu-=Jmzl[i-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jmzl[i-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(i+0.5-Nx/2.0)*si[loop1]*co[loop2]-cansh2*(Ny/2-NNN-DDD)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
}
for(j=NNN+DDD;j<=Ny-NNN-DDD;j++) //后面z向電磁場
for(k=NNN+DDD;k<Nz-NNN-DDD;k++)
{
fz.shi+=Jzf[j-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jzb[j-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fz.xu+=Jzf[j-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jzb[j-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fmz.shi-=Jmzf[j-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jmzb[j-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j+0.5-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
fmz.xu-=Jmzf[j-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jmzb[j-NNN-DDD][k-NNN-DDD].xiangwei+cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j+0.5-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
}
for(j=NNN+DDD;j<=Ny-NNN-DDD;j++) //前面z向電磁場
for(k=NNN+DDD;k<Nz-NNN-DDD;k++)
{
fz.shi-=Jzb[j-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jzf[j-NNN-DDD][k-NNN-DDD].xiangwei-cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fz.xu-=Jzb[j-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jzf[j-NNN-DDD][k-NNN-DDD].xiangwei-cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k+0.5-Nz/2.0)*co[loop1]);
fmz.shi+=Jmzb[j-NNN-DDD][k-NNN-DDD].zhengfu*cos(-Jmzf[j-NNN-DDD][k-NNN-DDD].xiangwei-cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j+0.5-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
fmz.xu+=Jmzb[j-NNN-DDD][k-NNN-DDD].zhengfu*sin(-Jmzf[j-NNN-DDD][k-NNN-DDD].xiangwei-cansh1*(Nx/2-NNN-DDD)*si[loop1]*co[loop2]+cansh2*(j+0.5-Ny/2.0)*si[loop1]*si[loop2]+cansh3*(k-Nz/2.0)*co[loop1]);
}
tt1=120*Pi*(fx.shi*co[loop1]*co[loop2]+fy.shi*co[loop1]*si[loop2]-fz.shi*si[loop1])+(-fmx.shi*si[loop2]+fmy.shi*co[loop2]);
tt2=120*Pi*(fx.xu*co[loop1]*co[loop2]+fy.xu*co[loop1]*si[loop2]-fz.xu*si[loop1])+(-fmx.xu*si[loop2]+fmy.xu*co[loop2]);
fxhs.sita.shi=tt1;
fxhs.sita.xu=tt2;
tt1=120*Pi*(fx.shi*si[loop2]-fy.shi*co[loop2])+(fmx.shi*co[loop1]*co[loop2]+fmy.shi*co[loop1]*si[loop2]-fmz.shi*si[loop1]);
tt2=120*Pi*(fx.xu*si[loop2]-fy.xu*co[loop2])+(fmx.xu*co[loop1]*co[loop2]+fmy.xu*co[loop1]*si[loop2]-fmz.xu*si[loop1]);
Efai=sqrt(tt1*tt1+tt2*tt2);
fxhs.fai.shi=tt1;
fxhs.fai.xu=tt2;
fx.shi=0;fx.xu=0;
fy.shi=0;fy.xu=0;
fmx.shi=0;fmx.xu=0;
fmy.shi=0;fmy.xu=0;
fz.shi=0;fz.xu=0;
fmz.shi=0;fmz.xu=0;
printf("%d\n",loop1);
}
void distill(int M)
{ FILE *out;
int i,j,k,loop1=0,loop2=0;
if ((out=fopen("1","a"))==NULL)
{printf("cannot open outfile\n");
}
else
{fprintf(out,"%f \n",(Hyz[NNN+DDD][NNN+DDD][Nz-NNN-DDD-1]+Hyz[NNN+DDD][NNN+DDD][Nz-NNN-DDD])/2);
}
fclose(out);
for(i=NNN+DDD;i<Nx-NNN-DDD;i++)
{
for(j=NNN+DDD;j<=Ny-NNN-DDD;j++)
{
if((Hyz[i][j][Nz-NNN-DDD-1]+Hyz[i][j][Nz-NNN-DDD])/2.0>Jxu[loop1][loop2].zhengfu)
{Jxu[loop1][loop2].zhengfu=(Hyz[i][j][Nz-NNN-DDD-1]+Hyz[i][j][Nz-NNN-DDD])/2.0;Jxu[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hyz[i][j][NNN+DDD-1]+Hyz[i][j][NNN+DDD])/2.0>Jxd[loop1][loop2].zhengfu)
{Jxd[loop1][loop2].zhengfu=(Hyz[i][j][NNN+DDD-1]+Hyz[i][j][NNN+DDD])/2.0;Jxd[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Eyz[i][j][Nz-NNN-DDD]>Jmxu[loop1][loop2].zhengfu)
{Jmxu[loop1][loop2].zhengfu=Eyz[i][j][Nz-NNN-DDD];Jmxu[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Eyz[i][j][NNN+DDD]>Jmxd[loop1][loop2].zhengfu)
{Jmxd[loop1][loop2].zhengfu=Eyz[i][j][NNN+DDD];Jmxd[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
/******************************************************************/
for(i=NNN+DDD;i<Nx-NNN-DDD;i++)
{
for(k=NNN+DDD;k<=Nz-NNN-DDD;k++)
{
if((Hzx[i][Ny-NNN-DDD-1][k]+Hzx[i][Ny-NNN-DDD][k])/2.0>Jxr[loop1][loop2].zhengfu)
{Jxr[loop1][loop2].zhengfu=(Hzx[i][Ny-NNN-DDD-1][k]+Hzx[i][Ny-NNN-DDD][k])/2.0;Jxr[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Ezx[i][Ny-NNN-DDD][k]>Jmxr[loop1][loop2].zhengfu)
{Jmxr[loop1][loop2].zhengfu=Ezx[i][Ny-NNN-DDD][k];Jmxr[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hzx[i][NNN+DDD-1][k]+Hzx[i][NNN+DDD][k])/2.0>Jxl[loop1][loop2].zhengfu)
{Jxl[loop1][loop2].zhengfu=(Hzx[i][NNN+DDD-1][k]+Hzx[i][NNN+DDD][k])/2.0;Jxl[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Ezx[i][NNN+DDD][k]>Jmxl[loop1][loop2].zhengfu)
{Jmxl[loop1][loop2].zhengfu=Ezx[i][NNN+DDD][k];Jmxl[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
/******************************************************************/
for(i=NNN+DDD;i<Nx-NNN-DDD;i++)
{
for(k=NNN+DDD;k<=Nz-NNN-DDD;k++)
{
if((Hxy[i][Ny-NNN-DDD-1][k]+Hxy[i][Ny-NNN-DDD][k])/2.0>Jzr[loop1][loop2].zhengfu)
{Jzr[loop1][loop2].zhengfu=(Hxy[i][Ny-NNN-DDD-1][k]+Hxy[i][Ny-NNN-DDD][k])/2.0;Jzr[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Exy[i][Ny-NNN-DDD][j]>Jmzr[loop1][loop2].zhengfu)
{Jmzr[loop1][loop2].zhengfu=Exy[i][Ny-NNN-DDD][k];Jmzr[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hxy[i][NNN+DDD-1][k]+Hxy[i][NNN+DDD][k])/2.0>Jzl[loop1][loop2].zhengfu)
{Jzl[loop1][loop2].zhengfu=(Hxy[i][NNN+DDD-1][k]+Hxy[i][NNN+DDD][k])/2.0;Jzl[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Exy[i][NNN+DDD][k]>Jmzl[loop1][loop2].zhengfu)
{Jmzl[loop1][loop2].zhengfu=Exy[i][NNN+DDD][k];Jmzl[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
/******************************************************************/
for(i=NNN+DDD;i<=Nx-NNN-DDD;i++)
{
for(j=NNN+DDD;j<Ny-NNN-DDD;j++)
{
if((Hxy[i][j][Nz-NNN-DDD-1]+Hxy[i][j][Nz-NNN-DDD])/2.0>Jyu[loop1][loop2].zhengfu)
{Jyu[loop1][loop2].zhengfu=(Hxy[i][j][Nz-NNN-DDD-1]+Hxy[i][j][Nz-NNN-DDD])/2.0;Jyu[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Exy[i][j][Nz-NNN-DDD]>Jmyu[loop1][loop2].zhengfu)
{Jmyu[loop1][loop2].zhengfu=Exy[i][j][Nz-NNN-DDD];Jmyu[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hxy[i][j][NNN+DDD-1]+Hxy[i][j][NNN+DDD])/2.0>Jyd[loop1][loop2].zhengfu)
{Jyd[loop1][loop2].zhengfu=(Hxy[i][j][NNN+DDD-1]+Hxy[i][j][NNN+DDD])/2.0;Jyd[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Exy[i][j][NNN+DDD]>Jmyd[loop1][loop2].zhengfu)
{Jmyd[loop1][loop2].zhengfu=Exy[i][j][NNN+DDD];Jmyd[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
/******************************************************************/
for(j=NNN+DDD;j<=Ny-NNN-DDD;j++)
{
for(k=NNN+DDD;k<Nz-NNN-DDD;k++)
{
if((Hzx[Nx-NNN-DDD-1][j][k]+Hzx[Nx-NNN-DDD][j][k])/2.0>Jyf[loop1][loop2].zhengfu)
{Jyf[loop1][loop2].zhengfu=(Hzx[Nx-NNN-DDD-1][j][k]+Hzx[Nx-NNN-DDD][j][k])/2.0;Jyf[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Ezx[Nx-NNN-DDD][j][k]>Jmyf[loop1][loop2].zhengfu)
{Jmyf[loop1][loop2].zhengfu=Ezx[Nx-NNN-DDD][j][k];Jmyf[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hzx[NNN+DDD-1][j][k]+Hzx[NNN+DDD][j][k])/2.0>Jyb[loop1][loop2].zhengfu)
{Jyb[loop1][loop2].zhengfu=(Hzx[NNN+DDD-1][j][k]+Hzx[NNN+DDD][j][k])/2.0;Jyb[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Ezx[NNN+DDD][j][k]>Jmyb[loop1][loop2].zhengfu)
{Jmyb[loop1][loop2].zhengfu=Ezx[NNN+DDD][j][k];Jmyb[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
/******************************************************************/
for(j=NNN+DDD;j<=Ny-NNN-DDD;j++)
{
for(k=NNN+DDD;k<Nz-NNN-DDD;k++)
{
if((Hyz[Nx-NNN-DDD-1][j][k]+Hyz[Nx-NNN-DDD][j][k])/2.0>Jzf[loop1][loop2].zhengfu)
{Jzf[loop1][loop2].zhengfu=(Hyz[Nx-NNN-DDD-1][j][k]+Hyz[Nx-NNN-DDD][j][k])/2.0;Jzf[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Eyz[Nx-NNN-DDD][j][k]>Jmzf[loop1][loop2].zhengfu)
{Jmzf[loop1][loop2].zhengfu=Eyz[Nx-NNN-DDD][j][k];Jmzf[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if((Hyz[NNN+DDD-1][j][k]+Hyz[NNN+DDD][j][k])/2.0>Jzb[loop1][loop2].zhengfu)
{Jzb[loop1][loop2].zhengfu=(Hyz[NNN+DDD-1][j][k]+Hyz[NNN+DDD][j][k])/2.0;Jzb[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
if(Eyz[NNN+DDD][j][k]>Jmzb[loop1][loop2].zhengfu)
{Jmzb[loop1][loop2].zhengfu=Eyz[NNN+DDD][j][k];Jmzb[loop1][loop2].xiangwei=(M-NN+100)/100.0*2.0*pi;}
loop2++;
}
loop1++;loop2=0;
}
loop1=0;loop2=0;
}
void zukang()
{
int loop1;
float tt,df=0;
for(loop1=1;loop1<300;loop1++)
{ df+=(1/dt)/Np;
pr[loop1-1]=chu(pp2[loop1-1],pp1[loop1-1]);
zk[loop1-1].shi=pr[loop1-1].xu/(2*Pi*loop1/(dt*NN)*dt);
zk[loop1-1].xu=1/(2*Pi*loop1/(dt*Np)*ee*er*dx*dy/dz)-pr[loop1-1].shi/(2*Pi*loop1/(dt*Np)*dt);
}
}
void zhubobi()
{
int loop1;float tt1,tt2;
for(loop1=1;loop1<300;loop1++)
{
tt1=sqrt((zk[loop1-1].shi+50)*(zk[loop1-1].shi+50)+zk[loop1-1].xu*zk[loop1-1].xu);
tt2=sqrt((zk[loop1-1].shi-50)*(zk[loop1-1].shi-50)+zk[loop1-1].xu*zk[loop1-1].xu);
rou[loop1-1]=(tt1+tt2)/(tt1-tt2);
}
}
/*
void zukang(int M)
{
int i;
float can;
struct bb pr;
can=f*dt*NN-floor(f*dt*NN);
printf("%f\n",can);
if(can>=0.5)
i=floor(f*dt*NN)+1;
else
i=floor(f*dt*NN);
printf("\n%d\n",i);
pr=chu(pp2[i],pp1[i]);
zk[M].shi=pr.xu/(2*Pi*f*dt);
zk[M].xu=1/(2*Pi*f*ee*er*dx*dy/dz)-pr.shi/(2*Pi*f*dt);
printf("輸入阻抗:%f+(%f)*i",zk[M].shi,zk[M].xu);
if(M==12)
printf("狂爽!!!");
}
*/
struct bb chu(struct bb p,struct bb q)
{
struct bb t1;
t1.shi=(p.shi*q.shi+p.xu*q.xu)/(q.shi*q.shi+q.xu*q.xu);
t1.xu=(p.xu*q.shi-p.shi*q.xu)/(q.shi*q.shi+q.xu*q.xu);
return t1;
}
/*
void zhubobi(int M)
{
float tt1,tt2;
tt1=sqrt((zk[M].shi+50)*(zk[M].shi+50)+zk[M].xu*zk[M].xu);
tt2=sqrt((zk[M].shi-50)*(zk[M].shi-50)+zk[M].xu*zk[M].xu);
rou[M]=(tt1+tt2)/(tt1-tt2);
}
*/
void ffft(float *p1,float *p2)
{ int loop,loop1;
for(loop=0;loop<NN;loop++)
{ for(loop1=1;loop1<Np;loop1++) //NN點fft變換
{
pp2[loop1-1].shi+=*(p1+loop)*cos(2*Pi/Np*(loop-1)*(loop1-1));
pp2[loop1-1].xu-=*(p1+loop)*sin(2*Pi/Np*(loop-1)*(loop1-1));
}
printf("%d\n",loop);
}
for(loop=0;loop<NN;loop++)
{ for(loop1=1;loop1<Np;loop1++) //NN點fft變換
{
pp1[loop1-1].shi+=*(p2+loop)*cos(2*Pi/Np*(loop-1)*(loop1-1));
pp1[loop1-1].xu-=*(p2+loop)*sin(2*Pi/Np*(loop-1)*(loop1-1));
}
printf("%d\n",loop);
}
}
/*
void waitui(int M)
{
int loop1,loop2;
for (loop1=0;loop1<=1000;loop1++)
for (loop2=0;loop2<=DD/2;loop2++)
{fxhs[loop1].shi-=current1[loop2].zhengfu*dz/(2*(c/f))*120*Pi*sin((85+loop1*0.01)/180.0*Pi)*sin(current1[loop2].xiangwei+2*Pi/(c/f)*(D/2+loop2+0.5)*dz*cos((85+loop1*0.01)/180.0*Pi)-2*Pi/(c/f)*100)*1.0/100;
fxhs[loop1].xu+=current1[loop2].zhengfu*dz/(2*(c/f))*120*Pi*sin((85+loop1*0.01)/180.0*Pi)*cos(current1[loop2].xiangwei+2*Pi/(c/f)*(D/2+loop2+0.5)*dz*cos((85+loop1*0.01)/180.0*Pi)-2*Pi/(c/f)*100)*1.0/100;
fxhs[loop1].shi-=current2[loop2].zhengfu*dz/(2*(c/f))*120*Pi*sin((85+loop1*0.01)/180.0*Pi)*sin(current2[loop2].xiangwei-2*Pi/(c/f)*(D/2+loop2+0.5)*dz*cos((85+loop1*0.01)/180.0*Pi)-2*Pi/(c/f)*100)*1.0/100;
fxhs[loop1].xu+=current2[loop2].zhengfu*dz/(2*(c/f))*120*Pi*sin((85+loop1*0.01)/180.0*Pi)*cos(current2[loop2].xiangwei-2*Pi/(c/f)*(D/2+loop2+0.5)*dz*cos((85+loop1*0.01)/180.0*Pi)-2*Pi/(c/f)*100)*1.0/100;
}
}
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -