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

📄 fdtd_1_1p3_1.cpp

📁 FDTD 1-d C++ sourece
💻 CPP
字号:
/* 书中1.1中第三个问题程序*/
 # include <math.h>
 # include <stdlib.h>
 # include <stdio.h>

 # define KE 200              /* KE is the number of cells to be used */

 void main ()
 {
  float ex[KE],hy[KE];
  int n,k,kc,ke,NSTEPS;
  float T;
  float t0,spread,pulse;
  FILE *fp;

  /* Initialize */
  for (k=0;k<KE;k++)
  {
   ex[k]=0;
   hy[k]=0;
  }

  

  kc=KE/2;                    /* Center of the problem space */
  t0=40.0;                    /* Center of the incident pulse */
  spread=12;                  /* Width of the incident pulse */
  T=0;
  NSTEPS=1;

  while (NSTEPS>0)
  {
   printf ("NSTEPS -->  ");   /* NSTEPS is the number of times the */
   scanf (" %d", &NSTEPS);    /* main loop has executed */
   printf (" %d \n",NSTEPS);
   n=0;

   for (n=1;n<=NSTEPS;n++)
   {
    T=T+1;                        /* T keeps track of the total number */
				 /* of times the main loop is executed */
    /* Main FDTD Loop */

    /* Calculate the Ex field */
    for (k=1;k<KE;k++)
    {
     ex[k]=ex[k]+.5*(hy[k-1]-hy[k]);
    }

    /* Put a Gaussian pulse in the middle */

    
	//   ex[kc-20]=pulse;
//	ex[kc+20]=pulse;
    printf ("%5.1f %6.2f \n",t0-T,ex[kc]);

    /* Calculatee the Hy field */
    for (k=0;k<KE-1;k++)
    {
     hy[k]=hy[k]+.5*(ex[k]-ex[k+1]);
    }

	pulse=exp(-.5*(pow((t0-T)/spread,2.0)));
    hy[kc]=pulse;
   }

    /* End of the Main FDTD Loop */

	/* At the end of the calculation,print out
	  the Ex and Hy fields */
    for (k=1;k<=KE;k++)
    {
     printf ("%3d  %6.2f  %6.2f \n",k,ex[k],hy[k]);
    }

    /* Write the E field out ot a file "Ex" */
    fp=fopen( "Ex","w");
    for (k=1;k<=KE;k++)
    {
     fprintf (fp," %6.2f \n",ex[k]);
    }
    fclose(fp);

    /* Write the H field out ot a file "Hy" */
    fp=fopen( "Hy","w");
    for (k=1;k<=KE;k++)
    {
     fprintf (fp," %6.2f \n",hy[k]);
    }
    fclose(fp);

    printf("T= %5.0f \n",T);
  }
 }

⌨️ 快捷键说明

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