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

📄 fdmenu.c

📁 matlab编写的三维FDTD程序 pml边界条件 实现电磁波传播数值模拟和仿真
💻 C
📖 第 1 页 / 共 3 页
字号:
	printf("e = ANTENNA TYPE (1=OSU,2=GSSI 300MHZ) %d\n",fd1.anttype);
        printf("n = ABSORBER FREQUENCY IF OSU ANTENNA %d\n",fd1.absfreq);      
	printf("f = RESISTIVE OR DIELECTRIC SHEET OPT. %d\n",fd1.sheet);
        if(fd1.sheet==1) {
           printf("g = SHEET X-DIMENSION: (m)             %f\n",fd1.shtxdim);     
           printf("h = SHEET Y-DIMENSION: (m)             %f\n",fd1.shtydim);     
           printf("i = SHEET THICKNESS: (m)               %f\n",fd1.shtthk);     
           printf("j = SHEET CONDUCTIVITY: (S/m)          %f\n",fd1.shtcond);     
           printf("k = SHEET RELATIVE PERMITTIVITY       %f\n",fd1.shtperm);     
           printf("m = SHEET HEIGHT ABOVE GROUND         %f\n",fd1.shthei);   
        }  
	printf("z = BACK TO MAIN MENU\n");
	scanf(" %c",&ch);
        switch(ch) {
           case '1':
	      printf("X-POSITION OF TRANSMIT ANTENNA (m): ");
	      scanf("%f",&fd1.xcen);
	   break;
           case '2':
	      printf("Y-POSITION OF TRANSMIT ANTENNA (m): ");
	      scanf("%f",&fd1.ycen);
	   break;
           case '3':
	      printf("FLARE ANGLE OF TRANSMIT ANTENNA (degrees):");
	      scanf("%f",&fd1.xang);
	   break;
           case '4':
	      printf("X-POSITION OF RECEIVE ANTENNA (m): ");
	      scanf("%f",&fd1.xrcen);
	   break;
           case '5':
	      printf("Y-POSITION OF RECEIVE ANTENNA (m): ");
	      scanf("%f",&fd1.yrcen);
	   break;
           case '6':
	      printf("FLARE ANGLE OF RECEIVE ANTENNA (degrees):");
	      scanf("%f",&fd1.xrang);
	   break;
           case '7':
	      printf("LENGTH OF TRANSMIT ANTENNA (m): ");
	      scanf("%f",&fd1.xlen);
	   break;
           case '8':
	      printf("LENGTH OF RECEIVE ANTENNA (m): ");
	      scanf("%f",&fd1.xrlen);
	   break;
           case '9':
	      printf("ANTENNA HEIGHT ABOVE INTERFACE: ");
	      scanf("%f",&fd1.anthei);
	   break;
           case 'a':
	      printf("DEPTH OF INTERFACE BELOW TOP OF GRID (m): ");
	      scanf("%f",&fd1.zinter);
	   break;
           case 'b':
	      printf("GROUND CONDUCTIVITY (S/m): ");
	      scanf("%f",&fd1.zcond);
	   break;
           case 'c':
	      printf("GROUND RELATIVE PERMITTIVITY: ");
	      scanf("%f",&fd1.zperm);
	   break;
           case 'd':
	      printf("GROUND MAGNETIC PERMEABILITY: ");
	      scanf("%f",&fd1.zur);
	   break;
           case 'e':
	      printf("ENTER:     \n");
              printf("        1 = THIN DIPOLE TRANSMIT ANTENNA\n");
              printf("        2 = SINGLE GSSI 300 MHZ\n");
              printf("        3 = DUAL GSSI 300 MHZ \n");
              printf("        16 = DUAL OSU ANTENNAS (== MODE)\n");
              printf("        25 = DUAL OSU ANTENNAS (|| MODE)\n");
	      scanf("%d",&fd1.anttype);
	   break;
           case 'f':
	      printf("ENTER '1' TO ACTIVATE DIELECTRIC SHEET, ELSE '0': \n");
	      scanf("%d",&fd1.sheet);
	   break;
           case 'g':
	      printf("ENTER  X-DIMENSION OF SHEET (m) \n");
	      scanf("%f",&fd1.shtxdim);
	   break;
           case 'h':
	      printf("ENTER  Y-DIMENSION OF SHEET (m) \n");
	      scanf("%f",&fd1.shtydim);
	   break;
           case 'i':
	      printf("ENTER SHEET THICKNESS (m) \n");
	      scanf("%f",&fd1.shtthk);
	   break;
           case 'j':
	      printf("ENTER SHEET CONDUCTIVITY (S/m): \n");
	      scanf("%f",&fd1.shtcond);
	   break;
           case 'k':
	      printf("ENTER SHEET RELATIVE PERMITTIVITY:  \n");
	      scanf("%f",&fd1.shtperm);
	   break;
           case 'm':
	      printf("ENTER SHEET HEIGHT ABOVE GROUND: \n");
	      scanf("%f",&fd1.shthei);
	   break;
           case 'n':
	      printf("ENTER ABSDRBER FREQUENCY (75,100,125,150, OR 175 MHz) \n");
	      scanf("%d",&fd1.absfreq);
	   break;
	   case 'z':
           xflag=1;		   
	   break;
       } 
       if(xflag==1) break; 
 }
}

  

void outputit() {
char ch;
short int xflag=0,dum1;
float compstab;
 for( ;;) {
	printf("1 = FULL Ex GRID OPTION:              %d\n",fd1.fullEx);      
	printf("2 = FULL Ey GRID OPTION:              %d\n",fd1.fullEy);      
	printf("3 = FULL Ez GRID OPTION:              %d\n",fd1.fullEz);
	printf("4 = TIME PROFILE ACTIVATION FLAG:     %d\n",fd1.tmproflg); 
        if(fd1.tmproflg==3) { 
         printf("5 = Z POSITION OF PLANE 1 RELATIVE TO INTERFACE (m):        %f\n",fd1.pvala);     
         printf("6 = Z POSITION OF PLANE 2 RELATIVE TO INTERFACE (m):        %f\n",fd1.pvalb);     
         printf("7 = Z POSITION OF PLANE 3 RELATIVE TO INTERFACE (m):        %f\n",fd1.pvalc);
         printf("8 = TIME VALUE TO INITIATE WRITING PLANE 1 (ns):            %f\n",fd1.delaya);     
         printf("9 = TIME VALUE TO INITIATE WRITING PLANE 2 (ns):            %f\n",fd1.delayb);     
         printf("a = TIME VALUE TO INITIATE WRITING PLANE 3 (ns):            %f\n",fd1.delayc);
        }     
	printf("c = TIME PROFILE WRITTING INCREMENT:  %d\n",fd1.timpro);      
	printf("d = TIME PROFILE XCOORD (m):          %f\n",fd1.timx);      
	printf("e = TIME PROFILE YCOORD (m):          %f\n",fd1.timy);      
	printf("f = DUMP ALL GRID VALUES TO OUTPUT FILE: %d\n",fd1.dump); 
	printf("i = FIELD PATTERN ACTIVATION FLAG:    %d\n",fd1.patact); 
	printf("j = RADIUS OF FIELD PATTERN MEASUREMENT: %f\n",fd1.patrad); 
	printf("k = PHI OF FIELD PATTERN MEASUREMENT:  %f\n",fd1.patphi); 
        if(fd1.dump==1) {
           printf("g = DUMP OUTPUT FILE NAME (not activated): %s\n",fd1.dumpfile);
           printf("h = TIMESTEP TO DUMP VALUES (not activated): %d\n",fd1.dumptime);
        }                  
	printf("z = BACK TO MAIN MENU\n");
	scanf(" %c",&ch);
        switch(ch) {
           case '1':
	      printf("ENTER '1' TO ACTIVATE OUTPUT OF Ex GRID, ELSE '0': ");
	      scanf("%d",&fd1.fullEx);
	   break;
           case '2':
	      printf("ENTER '1' TO ACTIVATE OUTPUT OF Ey GRID, ELSE '0': ");
	      scanf("%d",&fd1.fullEy);
	   break;
           case '3':
	      printf("ENTER '1' TO ACTIVATE OUTPUT OF Ez GRID, ELSE '0': ");
	      scanf("%d",&fd1.fullEz);
	   break;
	   case '4':
	      printf("ENTER TIME PROFILE ACTIVATION FLAG:\n");
              printf("0 = none\n");
              printf("1 = 2 vertical  profiles\n");
              printf("2 = 1 horizontal profile\n");
              printf("3 = 2 vertical profiles and 3 horizontal profiles\n");
	      scanf("%d",&fd1.tmproflg);
	   break;
           case '5':
              printf("ENTER Z POSITION OF PLANE 1 RELATIVE TO INTERFACE (m): ");
              scanf("%f",&fd1.pvala);
           break;
           case '6':
              printf("ENTER Z POSITION OF PLANE 2 RELATIVE TO INTERFACE (m): ");
              scanf("%f",&fd1.pvalb);
           break;
           case '7':
              printf("ENTER Z POSITION OF PLANE 3 RELATIVE TO INTERFACE (m): ");
              scanf("%f",&fd1.pvalc);
           break;
           case '8':
              printf("ENTER TIME TO INITIATE OUTPUT OF PLANE 1 TO FILE (ns): ");
              scanf("%f",&fd1.delaya);
           break;
           case '9':
              printf("ENTER TIME TO INITIATE OUTPUT OF PLANE 2 TO FILE (ns): ");
              scanf("%f",&fd1.delayb);
           break;
           case 'a':
              printf("ENTER TIME TO INITIATE OUTPUT OF PLANE 3 TO FILE (ns): ");
              scanf("%f",&fd1.delayc);
           break;
	   case 'c':
	      printf("ENTER NUMBER OF TIMESTEPS BETWEEN WRITES TO OUTPUT FILES: ");
	      scanf("%d",&fd1.timpro);
           break;
	   case 'd':
	      printf("ENTER TIME PROFILE XCOORD (m): ");
	      scanf("%f",&fd1.timx);
	   break;
	   case 'e':
	      printf("ENTER TIME PROFILE YCOORD (m): ");
	      scanf("%f",&fd1.timy);
	   break;
	   case 'f':
	      printf("OUTPUT ALL GRID VALUES TO FILE FOR LATER USE OR ANALYSIS:  (0,1): ");
	      scanf("%d",&fd1.dump);
	   break;
	   case 'g':
	      printf("ENTER DUMP OUTPUT FILENAME:  ");
	      scanf("%s",fd1.dumpfile);
	   break;
	   case 'h':
	      printf("ENTER TIMESTEP TO DUMP ALL DATA: ");
	      scanf("%d",&fd1.dumptime);
	   break;
	   case 'i':
	      printf("ENTER '1' TO ACTIVATE PATTERN STORAGE, ELSE '0'");
	      scanf("%d",&fd1.patact);
	   break;
	   case 'j':
	      printf("ENTER RADIUS (METERS) OF FIELD PATTERN MEASUREMENT ");
	      scanf("%f",&fd1.patrad);
	   break;
	   case 'k':
	      printf("ENTER THETA VALUE (DEGREES) OF FIELD PATTERN MEASUREMENT ");
	      scanf("%f",&fd1.patphi);
	   break;
	   case 'z':		   
	   xflag=1;
           break;
       }
       if(xflag==1) break;  
 }
}

void automenu() {
char ch;
short int xflag=0,dum1;
for(;;) {
	printf("1 = OUTPUT DATASET NAME               %s\n",fd1.filauto);      
	printf("2 = DEPTH INCREMENT   (m)             %f\n",fd1.zinc);      
	printf("3 = X INCREMENT       (m)             %f\n",fd1.xinc);      
	printf("4 = Y INCREMENT       (m)             %f\n",fd1.yinc);
        printf("5 = NUMBER OF DISTANCE STEPS:         %d\n",fd1.numsteps);
	printf("z = EXIT MENU                         \n");      
	scanf(" %c",&ch);
        switch(ch) {
           case '1':
	      printf("ENTER NEW OUTPUT DATASET NAME: ");
	      scanf("%s",fd1.filauto);
	   break;
	   case '2':
	      printf("ENTER TARGET DEPTH INCREMENT: ");
	      scanf("%f",&fd1.zinc);
           break;
	   case '3':
	      printf("ENTER TARGET X INCREMENT: ");
	      scanf("%f",&fd1.xinc);
           break;
	   case '4':
	      printf("ENTER TARGET Y INCREMENT: ");
	      scanf("%f",&fd1.yinc);
           break;
	   case '5':
	      printf("ENTER # OF TIMESTEPS: ");
	      scanf("%d",&fd1.numsteps);
           break;
	   case 'z':
           xflag=1;
           break;
       } 
       if(xflag==1) break;      
 }
}
void newparms() {
char ch;
short int xflag=0,dum1;
for(;;) {
	printf("1 = POINT DIPOLE ACTIVATION FLAG          :                  %d\n",fd1.pdflag);           
	printf("2 = LONG COAX REL. MAGNETIC PERMEABILITY :                   %f\n",fd1.coaxurt);      
	printf("3 = LONG COAX REL. PERMITTIVITY          :                   %f\n",fd1.coaxert);      
	printf("4 = LONG COAX CONDUCTIVITY               :                   %f\n",fd1.coaxst);      
	printf("5 = SHORT COAX REL. MAGNETIC PERMEABILITY :                  %f\n",fd1.coaxurr);      

⌨️ 快捷键说明

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