⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cbb.h

📁 采用相互垂直的两个振子构成圆极化天线的FDTD程序.可以计算其圆极化波瓣宽度等天线指标
💻 H
📖 第 1 页 / 共 2 页
字号:
 
/***********************************************************************************************************************************************************************************************************************************/
   /*x向磁场*/
int chuanbo3(int M)
{int loop1,loop2,loop3;
 for(loop1=0;loop1<Nx+1;loop1++)
	{for(loop2=0;loop2<Ny;loop2++)
	  {for(loop3=0;loop3<Nz;loop3++)
 {   if(loop1>NNN-1&&loop1<Nx-NNN&&loop2>NNN-1&&loop2<Ny-NNN&&loop3>NNN-1&&loop3<Nz-NNN)
		{sgmx=0;sgmy=0;sgmz=0;
		 sgmmx=0;sgmmy=0;sgmmz=0;
		}
	     else
		 { 
		  if(loop1>=0&&loop1<=NNN-1)
		 {  sgmx=sgmmax*(NNN-loop1-1)/NNN*(NNN-loop1-1)/NNN;
		    sgmmx=sgmx*142122.3034;
		 }
		  else if(loop1>=Nx-NNN&&loop1<Nx)
		 {  sgmx=sgmmax*(NNN+loop1-Nx)/NNN*(NNN+loop1-Nx)/NNN;
		    sgmmx=sgmx*142122.3034;
		 }
		  else
		  {sgmx=0;sgmmx=0;}


           if(loop2>=0&&loop2<=NNN-1)
		 {  sgmy=sgmmax*(NNN-loop2-1)/NNN*(NNN-loop2-1)/NNN;
		    sgmmy=sgmy*142122.3034;
		 }
		  else if(loop2>=Ny-NNN&&loop2<Ny)
		 {  sgmy=sgmmax*(NNN+loop2-Ny)/NNN*(NNN+loop2-Ny)/NNN;
		    sgmmy=sgmy*142122.3034;
		 }
		  else
		  {sgmy=0;sgmmy=0;}


		   if(loop3>=0&&loop3<=NNN-1)
		 {  sgmz=sgmmax*(NNN-loop3-1)/NNN*(NNN-loop3-1)/NNN;
		    sgmmz=sgmz*142122.3034;
		 }
		  else if(loop3>=Nz-NNN&&loop3<Nz)
		 {  sgmz=sgmmax*(NNN+loop3-Nz)/NNN*(NNN+loop3-Nz)/NNN;
		    sgmmz=sgmz*142122.3034;
		 }
		  else
		  {sgmz=0;sgmmz=0;}


		 }
	if(loop1==Nx/2&&loop2==Ny/2&&((loop3>=Nz/2-DD1/2-1&&loop3<Nz/2-1)||(loop3>Nz/2&&loop3<=Nz/2+DD1/2)))  
	{
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*1/((dy-r0)*dz)*((Ezx[loop1][loop2+1][loop3]*dz+Ezy[loop1][loop2+1][loop3]*dz));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1/((dy-r0)*dz)*((Eyz[loop1][loop2][loop3+1]*(dy-r0)+Eyx[loop1][loop2][loop3+1]*(dy-r0)-Eyz[loop1][loop2][loop3]*(dy-r0)-Eyx[loop1][loop2][loop3]*(dy-r0))); 
	}
    else if(loop1==Nx/2&&loop2==Ny/2-1&&((loop3>=Nz/2-DD1/2-1&&loop3<Nz/2-1)||(loop3>Nz/2&&loop3<=Nz/2+DD1/2)))  
	{
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmy*dt)*1/((dy-r0)*dz)*((Ezx[loop1][loop2][loop3]*dz+Ezy[loop1][loop2][loop3]*dz));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1/((dy-r0)*dz)*((Eyz[loop1][loop2][loop3+1]*(dy-r0)+Eyx[loop1][loop2][loop3+1]*(dy-r0)-Eyz[loop1][loop2][loop3]*(dy-r0)-Eyx[loop1][loop2][loop3]*(dy-r0))); 
	}
    else  if(((loop1>=Nx/2-DD2/2-1&&loop1<=Nx/2-1)||(loop1>Nx/2&&loop1<=Nx/2+DD2/2+1))&&loop2==Ny/2+movedis&&loop3==Nz/2)
	  {
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Ezx[loop1][loop2+1][loop3]*dz+Ezy[loop1][loop2+1][loop3]*dz-Ezx[loop1][loop2][loop3]*(dz-r1)-Ezy[loop1][loop2][loop3]*(dz-r1)));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Eyz[loop1][loop2][loop3+1]*dy+Eyx[loop1][loop2][loop3+1]*dy-Eyz[loop1][loop2][loop3]*(dy-r1)-Eyx[loop1][loop2][loop3]*(dy-r1)));
	 }
	else if(((loop1>=Nx/2-DD2/2-1&&loop1<=Nx/2-1)||(loop1>Nx/2&&loop1<=Nx/2+DD2/2+1))&&loop2==Ny/2+movedis&&loop3==Nz/2-1)
	  {
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Ezx[loop1][loop2+1][loop3]*dz+Ezy[loop1][loop2+1][loop3]*dz-Ezx[loop1][loop2][loop3]*(dz-r1)-Ezy[loop1][loop2][loop3]*(dz-r1)));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Eyz[loop1][loop2][loop3+1]*(dy-r1)+Eyx[loop1][loop2][loop3+1]*(dy-r1)-Eyz[loop1][loop2][loop3]*dy-Eyx[loop1][loop2][loop3]*dy));
	 }
	else if(((loop1>=Nx/2-DD2/2-1&&loop1<=Nx/2-1)||(loop1>Nx/2&&loop1<=Nx/2+DD2/2+1))&&loop2==Ny/2-1+movedis&&loop3==Nz/2)
	  {
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Ezx[loop1][loop2+1][loop3]*(dz-r1)+Ezy[loop1][loop2+1][loop3]*(dz-r1)-Ezx[loop1][loop2][loop3]*dz-Ezy[loop1][loop2][loop3]*dz));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Eyz[loop1][loop2][loop3+1]*dy+Eyx[loop1][loop2][loop3+1]*dy-Eyz[loop1][loop2][loop3]*(dy-r1)-Eyx[loop1][loop2][loop3]*(dy-r1)));
	 }
	else if(((loop1>=Nx/2-DD2/2-1&&loop1<=Nx/2-1)||(loop1>Nx/2&&loop1<=Nx/2+DD2/2+1))&&loop2==Ny/2-1+movedis&&loop3==Nz/2-1)
	  {
	      Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Ezx[loop1][loop2+1][loop3]*(dz-r1)+Ezy[loop1][loop2+1][loop3]*(dz-r1)-Ezx[loop1][loop2][loop3]*dz-Ezy[loop1][loop2][loop3]*dz));
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*1.0/(dy*dz-Pi*r1*r1/4)*((Eyz[loop1][loop2][loop3+1]*(dy-r1)+Eyx[loop1][loop2][loop3+1]*(dy-r1)-Eyz[loop1][loop2][loop3]*dy-Eyx[loop1][loop2][loop3]*dy));
	 }
     else{   
          Hxy[loop1][loop2][loop3]=((2*u-sgmmy*dt)/(2*u+sgmmy*dt))*Hxy[loop1][loop2][loop3]-(2*dt)/(2*u+sgmmy*dt)*((Ezx[loop1][loop2+1][loop3]+Ezy[loop1][loop2+1][loop3]-Ezx[loop1][loop2][loop3]-Ezy[loop1][loop2][loop3])/dy);
          Hxz[loop1][loop2][loop3]=((2*u-sgmmz*dt)/(2*u+sgmmz*dt))*Hxz[loop1][loop2][loop3]+(2*dt)/(2*u+sgmmz*dt)*((Eyz[loop1][loop2][loop3+1]+Eyx[loop1][loop2][loop3+1]-Eyz[loop1][loop2][loop3]-Eyx[loop1][loop2][loop3])/dz);
		}
		   if(loop1>NNN-1&&loop1<Nx-NNN&&loop2>NNN-1&&loop2<Ny-NNN&&loop3>NNN-1&&loop3<Nz-NNN)
		   { Hxy[loop1][loop2][loop3]+= Hxz[loop1][loop2][loop3];
		     Hxz[loop1][loop2][loop3]=0;}
	   } 
	  }
	  }
 
 /**************************************************************************************************************************************************************************************************************************************/
      /*y向磁场*/
	  for(loop1=0;loop1<Nx;loop1++)
	  {for(loop2=0;loop2<Ny+1;loop2++)
	  {for(loop3=0;loop3<Nz;loop3++)
	  {   if(loop1>NNN-1&&loop1<Nx-NNN&&loop2>NNN-1&&loop2<Ny-NNN&&loop3>NNN-1&&loop3<Nz-NNN)
		{sgmx=0;sgmy=0;sgmz=0;
		 sgmmx=0;sgmmy=0;sgmmz=0;
		}
	     else
		 { 
		  if(loop1>=0&&loop1<=NNN-1)
		 {  sgmx=sgmmax*(NNN-loop1-1)/NNN*(NNN-loop1-1)/NNN;
		    sgmmx=sgmx*142122.3034;
		 }
		  else if(loop1>=Nx-NNN&&loop1<Nx)
		 {  sgmx=sgmmax*(NNN+loop1-Nx)/NNN*(NNN+loop1-Nx)/NNN;
		    sgmmx=sgmx*142122.3034;
		 }
		  else
		  {sgmx=0;sgmmx=0;}


           if(loop2>=0&&loop2<=NNN-1)
		 {  sgmy=sgmmax*(NNN-loop2-1)/NNN*(NNN-loop2-1)/NNN;
		    sgmmy=sgmy*142122.3034;
		 }
		  else if(loop2>=Ny-NNN&&loop2<Ny)
		 {  sgmy=sgmmax*(NNN+loop2-Ny)/NNN*(NNN+loop2-Ny)/NNN;
		    sgmmy=sgmy*142122.3034;
		 }
		  else
		  {sgmy=0;sgmmy=0;}


		   if(loop3>=0&&loop3<=NNN-1)
		 {  sgmz=sgmmax*(NNN-loop3-1)/NNN*(NNN-loop3-1)/NNN;
		    sgmmz=sgmz*142122.3034;
		 }
		  else if(loop3>=Nz-NNN&&loop3<Nz)
		 {  sgmz=sgmmax*(NNN+loop3-Nz)/NNN*(NNN+loop3-Nz)/NNN;
		    sgmmz=sgmz*142122.3034;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -