亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cpmlfdtd3d.c

?? FDTD
?? C
?? 第 1 頁 / 共 4 頁
字號:

	/*******************************************************************
	//     3-D FDTD code with CPML absorbing boundary conditions - Dipole
	//******************************************************************
	//
	//     This C code implements the finite-difference time-domain
	//     solution of Maxwell's curl equations over a three-dimensional
	//     Cartesian space lattice.  The grid is terminated by CPML ABCs.
	//     The thickness of the PML in each Cartesian direction can be 
	//     varied independently.
	//
	//******************************************************************/
	//Header files (Libraries to be included)
	#include<stdio.h>
	#include<math.h>
	#include<string.h>
	#include<stdlib.h>

	//  Fundamental Constants (MKS units)
    double pi = 3.14159265358979;
    double C = 2.99792458E8;
    double muO;
    double epsO;

	//  Specify Material Relative Permittivity and Conductivity
    double epsR = 1.0;//free space

	//  Specify Number of Time Steps and Grid Size Parameters
    int nMax = 500;  // total number of time steps
    
	// grid size corresponding to the number of Ez field components
    int Imax = 51;
    int Jmax = 126;
    int Kmax = 26;

	//  Specify Grid Cell Size in Each Direction and Calculate the
  	//  Resulting Courant-Stable Time Step
    double dx = 1.0E-3;
    double dy = 1.0E-3;
    double dz = 1.0E-3; // cell size in each direction
    // time step increment
    double dt;

	//  Specify the Impulsive Source (Differentiated Gaussian) parameters
    double tw = 53.0E-12;//pulse width
    double tO;//delay
    double source;//Differentiated Gaussian source
	double amp = 1000;// Amplitude

    //Specify the Time Step at which the data has to be saved for Visualization
    int save_modulus = 10;

	//  Specify the dipole Boundaries(A cuboidal rode- NOT as a cylinder)
    int istart, iend, jstart;
    int  jend, kstart, kend;

	//Output recording point
    int ksource = 12;

	//  Specify the CPML Thickness in Each Direction (Value of Zero
	//  Corresponds to No PML, and the Grid is Terminated with a PEC)
    // PML thickness in each direction
    int nxPML_1, nxPML_2, nyPML_1;
    int nyPML_2, nzPML_1, nzPML_2;

	//  Specify the CPML Order and Other Parameters:
    int m = 3, ma = 1;

    double sig_x_max;
    double sig_y_max;
    double sig_z_max;
    double alpha_x_max;
    double alpha_y_max;
    double alpha_z_max;
    double kappa_x_max;
    double kappa_y_max;
    double kappa_z_max;
	
	//Loop indices
    int i,j,ii,jj,k,kk,n;


	// H & E Field components
    float ***Hx;
    float ***Hy;
    float ***Hz;
    float ***Ex;
    float ***Ey;
    float ***Ez;

	short ***ID1;//medium definition array for Ex
	short ***ID2;//medium definition array for Ey
	short ***ID3;//medium definition array for Ez

	//  CPML components (Taflove 3rd Edition, Chapter 7)
    float ***psi_Ezx_1;
    float ***psi_Ezx_2;
    float ***psi_Hyx_1;
    float ***psi_Hyx_2;
    float ***psi_Ezy_1;
    float ***psi_Ezy_2;
    float ***psi_Hxy_1;
    float ***psi_Hxy_2;
    float ***psi_Hxz_1;
    float ***psi_Hxz_2;
    float ***psi_Hyz_1;
    float ***psi_Hyz_2;
    float ***psi_Exz_1;
    float ***psi_Exz_2;
    float ***psi_Eyz_1;
    float ***psi_Eyz_2;
    float ***psi_Hzx_1;
    float ***psi_Eyx_1;
    float ***psi_Hzx_2;
    float ***psi_Eyx_2;
    float ***psi_Hzy_1;
    float ***psi_Exy_1;
    float ***psi_Hzy_2;
    float ***psi_Exy_2;

    float *be_x_1, *ce_x_1, *alphae_x_PML_1, *sige_x_PML_1, *kappae_x_PML_1;
    float *bh_x_1, *ch_x_1, *alphah_x_PML_1, *sigh_x_PML_1, *kappah_x_PML_1;
    float *be_x_2, *ce_x_2, *alphae_x_PML_2, *sige_x_PML_2, *kappae_x_PML_2;
    float *bh_x_2, *ch_x_2, *alphah_x_PML_2, *sigh_x_PML_2, *kappah_x_PML_2;
    float *be_y_1, *ce_y_1, *alphae_y_PML_1, *sige_y_PML_1, *kappae_y_PML_1;
    float *bh_y_1, *ch_y_1, *alphah_y_PML_1, *sigh_y_PML_1, *kappah_y_PML_1;
    float *be_y_2, *ce_y_2, *alphae_y_PML_2, *sige_y_PML_2, *kappae_y_PML_2;
    float *bh_y_2, *ch_y_2, *alphah_y_PML_2, *sigh_y_PML_2, *kappah_y_PML_2;
    float *be_z_1, *ce_z_1, *alphae_z_PML_1, *sige_z_PML_1, *kappae_z_PML_1;
    float *bh_z_1, *ch_z_1, *alphah_z_PML_1, *sigh_z_PML_1, *kappah_z_PML_1;
    float *be_z_2, *ce_z_2, *alphae_z_PML_2, *sige_z_PML_2, *kappae_z_PML_2;
    float *bh_z_2, *ch_z_2, *alphah_z_PML_2, *sigh_z_PML_2, *kappah_z_PML_2;

	// denominators for the update equations
    float *den_ex;
    float *den_hx;
    float *den_ey;
    float *den_hy;
    float *den_ez;
    float *den_hz;

	//Max number of materials allowed
	int numMaterials = 50;

    //permittivity, permeability and conductivity of diffrent materials
	double *epsilon;
	double *mu;
	double *sigma;

	//E field update coefficients
	float *CA;
	float *CB;

	//H field update coefficients
    float DA;
    float DB;
	
	//Function prototype definitions
	void initialize();//Memeory initialization
	void setUp();//Coefficients, parameters etc will get computed
	void initializeCPML();//CPML coefficient computation
	void compute();//E & H Field update equation
	void buildObject();//Creates the object geometry
	void yeeCube (int, int,int, short);//Sets material properties to a cell
	void writeField(int);//Writes output
	void buildSphere();//Builds a spherical object
	void buildDipole();//Builds a dipole

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	void main() {

		initialize();
		setUp();
		buildObject();
		initializeCPML();
		compute();

	}

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	void initialize() {

		muO = 4.0 * pi * 1.0E-7;
		epsO = 1.0 / (C * C * muO);
		 
		//PML Layers (10 layers)
		nxPML_1 = 11;
		nxPML_2 = 11;
		nyPML_1 = 11;
		nyPML_2 = 11;
		nzPML_1 = 11;
		nzPML_2 = 11;

		//Dynamic memory allocation
	    epsilon = (double *)malloc((numMaterials) * sizeof(double));

		for(i = 0; i < numMaterials; i++) {

			epsilon[i] = epsO;
		}

	    mu = (double *)malloc((numMaterials) * sizeof(double));

		for(i = 0; i < numMaterials; i++) {

			mu[i] = muO;
		}

	    sigma = (double *)malloc((numMaterials) * sizeof(double));

		for(i = 0; i < numMaterials; i++) {

			sigma[i] = 0.0;
		}

	    CA = (float *)malloc((numMaterials) * sizeof(float));

		for(i = 0; i < numMaterials; i++) {

			CA[i] = 0.0;
		}

	    CB = (float *)malloc((numMaterials) * sizeof(float));

		for(i = 0; i < numMaterials; i++) {

			CB[i] = 0.0;
		}

	    Ez = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    Ez[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				Ez[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					Ez[i][j][k] = 0.0;
				}
			}
		}

	    Ey = (float ***)malloc((Imax) * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    Ey[i] = (float **)malloc((Jmax-1) * sizeof(float *));

		    for(j = 0; j < Jmax -1; j++) {

				Ey[i][j] = (float *)malloc((Kmax-1) * sizeof(float));

				for(k = 0; k < Kmax-1; k++) {

					Ey[i][j][k] = 0.0;
				}
			}
		}

	    Ex = (float ***)malloc((Imax-1) * sizeof(float **));

	    for(i = 0; i < Imax-1; i++) {

		    Ex[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				Ex[i][j] = (float *)malloc((Kmax-1) * sizeof(float));

				for(k = 0; k < Kmax-1; k++) {

					Ex[i][j][k] = 0.0;
				}
			}
		}

	    Hx = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    Hx[i] = (float **)malloc((Jmax-1) * sizeof(float *));

		    for(j = 0; j < Jmax-1; j++) {

				Hx[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					Hx[i][j][k] = 0.0;
				}
			}
		}

	    Hy = (float ***)malloc((Imax-1) * sizeof(float **));

	    for(i = 0; i < Imax-1; i++) {

		    Hy[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				Hy[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					Hy[i][j][k] = 0.0;
				}
			}
		}

	    Hz = (float ***)malloc((Imax-1) * sizeof(float **));

	    for(i = 0; i < Imax-1; i++) {

		    Hz[i] = (float **)malloc((Jmax-1) * sizeof(float *));

		    for(j = 0; j < Jmax-1; j++) {

				Hz[i][j] = (float *)malloc((Kmax-1) * sizeof(float));

				for(k = 0; k < Kmax-1; k++) {

					Hz[i][j][k] = 0.0;
				}
			}
		}

	    ID1 = (short ***)malloc(Imax * sizeof(short **));

	    for(i = 0; i < Imax; i++) {

		    ID1[i] = (short **)malloc(Jmax * sizeof(short *));

		    for(j = 0; j < Jmax; j++) {

				ID1[i][j] = (short *)malloc(Kmax * sizeof(short));

				for(k = 0; k < Kmax; k++) {

					ID1[i][j][k] = 0;
				}
			}
		}

	    ID2 = (short ***)malloc(Imax * sizeof(short **));

	    for(i = 0; i < Imax; i++) {

		    ID2[i] = (short **)malloc(Jmax * sizeof(short *));

		    for(j = 0; j < Jmax; j++) {

				ID2[i][j] = (short *)malloc(Kmax * sizeof(short));

				for(k = 0; k < Kmax; k++) {

					ID2[i][j][k] = 0;
				}
			}
		}

	    ID3 = (short ***)malloc(Imax * sizeof(short **));

	    for(i = 0; i < Imax; i++) {

		    ID3[i] = (short **)malloc(Jmax * sizeof(short *));

		    for(j = 0; j < Jmax; j++) {

				ID3[i][j] = (short *)malloc(Kmax * sizeof(short));

				for(k = 0; k < Kmax; k++) {

					ID3[i][j][k] = 0;
				}
			}
		}

	    psi_Ezx_1 = (float ***)malloc(nxPML_1 * sizeof(float **));

	    for(i = 0; i < nxPML_1; i++) {

		    psi_Ezx_1[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Ezx_1[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Ezx_1[i][j][k] = 0.0;
				}
			}
		}

	    psi_Ezx_2 = (float ***)malloc(nxPML_2 * sizeof(float **));

	    for(i = 0; i < nxPML_2; i++) {

		    psi_Ezx_2[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Ezx_2[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Ezx_2[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hyx_1 = (float ***)malloc((nxPML_1-1) * sizeof(float **));

	    for(i = 0; i < nxPML_1-1; i++) {

		    psi_Hyx_1[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Hyx_1[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Hyx_1[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hyx_2 = (float ***)malloc((nxPML_2-1) * sizeof(float **));

	    for(i = 0; i < nxPML_1-1; i++) {

		    psi_Hyx_2[i] = (float **)malloc(Jmax * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Hyx_2[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Hyx_2[i][j][k] = 0.0;
				}
			}
		}

	    psi_Ezy_1 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Ezy_1[i] = (float **)malloc(nyPML_1 * sizeof(float *));

		    for(j = 0; j < nyPML_1; j++) {

				psi_Ezy_1[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Ezy_1[i][j][k] = 0.0;
				}
			}
		}

	    psi_Ezy_2 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Ezy_2[i] = (float **)malloc(nyPML_2 * sizeof(float *));

		    for(j = 0; j < nyPML_2; j++) {

				psi_Ezy_2[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Ezy_2[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hxy_1 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Hxy_1[i] = (float **)malloc((nyPML_1-1) * sizeof(float *));

		    for(j = 0; j < nyPML_1-1; j++) {

				psi_Hxy_1[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Hxy_1[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hxy_2 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Hxy_2[i] = (float **)malloc((nyPML_2-1) * sizeof(float *));

		    for(j = 0; j < nyPML_2-1; j++) {

				psi_Hxy_2[i][j] = (float *)malloc(Kmax * sizeof(float));

				for(k = 0; k < Kmax; k++) {

					psi_Hxy_2[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hxz_1 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Hxz_1[i] = (float **)malloc((Jmax-1) * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Hxz_1[i][j] = (float *)malloc((nzPML_1-1) * sizeof(float));

				for(k = 0; k < nzPML_1-1; k++) {

					psi_Hxz_1[i][j][k] = 0.0;
				}
			}
		}

	    psi_Hxz_2 = (float ***)malloc(Imax * sizeof(float **));

	    for(i = 0; i < Imax; i++) {

		    psi_Hxz_2[i] = (float **)malloc((Jmax-1) * sizeof(float *));

		    for(j = 0; j < Jmax; j++) {

				psi_Hxz_2[i][j] = (float *)malloc((nzPML_2-1) * sizeof(float));

				for(k = 0; k < nzPML_2-1; k++) {

					psi_Hxz_2[i][j][k] = 0.0;
				}
			}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜婷婷国产麻豆精品| 91福利资源站| 欧美最新大片在线看| 精品国产91乱码一区二区三区| 国产精品精品国产色婷婷| 免费xxxx性欧美18vr| 99视频精品在线| 久久久久99精品一区| 五月天激情综合| a级高清视频欧美日韩| 久久久久九九视频| 久久99国产精品久久99| 91精品国产色综合久久久蜜香臀| 亚洲色图视频免费播放| 国产盗摄一区二区| 久久色.com| 精品写真视频在线观看| 欧美一二三区在线观看| 亚洲18色成人| 欧美偷拍一区二区| 玉米视频成人免费看| 91尤物视频在线观看| 国产精品对白交换视频 | 蜜臀精品一区二区三区在线观看| 99久久婷婷国产综合精品电影| 久久午夜老司机| 国产一区三区三区| 久久久精品欧美丰满| 国产一区欧美一区| 国产欧美综合色| 国产精品一区二区三区网站| 精品久久久久久综合日本欧美| 首页综合国产亚洲丝袜| 五月婷婷久久综合| 喷水一区二区三区| 欧美日韩国产区一| 美日韩一区二区三区| 日韩欧美一区二区三区在线| 麻豆精品国产91久久久久久 | 国产成人免费av在线| 欧美videos中文字幕| 国产在线精品不卡| 久久久久综合网| 国产成人a级片| 中文字幕视频一区| 欧美在线影院一区二区| 午夜婷婷国产麻豆精品| 欧美videos中文字幕| 国产一区二区三区免费在线观看| 久久久精品日韩欧美| va亚洲va日韩不卡在线观看| 樱花草国产18久久久久| 在线播放91灌醉迷j高跟美女| 日本强好片久久久久久aaa| 久久久不卡影院| 91老司机福利 在线| 日韩电影在线一区二区| 久久久久久久电影| 欧日韩精品视频| 国产在线一区观看| 日韩一区在线免费观看| 4438x成人网最大色成网站| 国产成人日日夜夜| 亚洲国产欧美在线| 精品成人一区二区| 色国产综合视频| 色综合天天天天做夜夜夜夜做| 亚洲综合色丁香婷婷六月图片| 4438x亚洲最大成人网| 粉嫩高潮美女一区二区三区| 一级中文字幕一区二区| 久久久午夜精品| 欧美日韩高清一区二区不卡| 国产成人av电影在线| 亚洲电影一区二区| 国产精品日韩精品欧美在线| 337p亚洲精品色噜噜| av激情综合网| 久久99久久精品| 一区二区三区日韩| 国产日本亚洲高清| 日韩欧美国产一区二区在线播放| 99久久99久久免费精品蜜臀| 韩日欧美一区二区三区| 亚洲综合av网| 国产精品久久久久久久裸模| 日韩一区二区三区视频在线 | 国产精品一二三在| 丝袜亚洲精品中文字幕一区| 欧美国产日产图区| 日韩欧美一二区| 欧美在线播放高清精品| 懂色av一区二区三区免费观看| 免费观看久久久4p| 亚洲最大成人网4388xx| 国产精品剧情在线亚洲| 久久久美女毛片| 日韩情涩欧美日韩视频| 欧美日韩国产综合一区二区三区| 99久久精品国产观看| 国产91精品免费| 国产伦精品一区二区三区视频青涩 | 国产精品理论片| 国产欧美一区二区三区在线老狼| 日韩欧美国产一区在线观看| 欧美一区二视频| 欧美高清视频www夜色资源网| 色偷偷88欧美精品久久久| 成人小视频免费观看| 国产福利一区二区三区| 国产乱子轮精品视频| 久久国产精品72免费观看| 日韩精品亚洲一区二区三区免费| 五月天视频一区| 日韩精品视频网| 日韩精品一级二级 | 成人综合在线网站| 丁香六月久久综合狠狠色| 国产精品资源网站| 国产成人福利片| 色综合天天狠狠| 欧美三级午夜理伦三级中视频| 欧美日韩激情一区二区三区| 在线不卡一区二区| 精品粉嫩aⅴ一区二区三区四区| 精品久久人人做人人爽| 久久免费的精品国产v∧| 日本一区二区三区免费乱视频| 亚洲欧洲日产国码二区| 亚洲私人影院在线观看| 亚洲国产成人tv| 另类小说欧美激情| 成人精品视频一区| 欧美三电影在线| 26uuu久久天堂性欧美| 国产日韩欧美精品在线| 日韩美女视频一区| 午夜精品福利一区二区蜜股av| 男女视频一区二区| 国产成人精品免费| 欧美亚洲自拍偷拍| 欧美一级在线视频| 中文字幕av一区 二区| 亚洲精品v日韩精品| 免费成人在线视频观看| 高清不卡一区二区| 欧美日韩一区二区三区视频| 精品国精品国产尤物美女| 亚洲色图欧美偷拍| 日本中文字幕不卡| 风间由美中文字幕在线看视频国产欧美 | 国产精品大尺度| 日本成人在线看| 91在线精品一区二区三区| 欧美一区二区三区思思人| 国产精品毛片a∨一区二区三区| 香蕉av福利精品导航| 成人亚洲一区二区一| 欧美一区二区三区播放老司机| 国产欧美视频一区二区三区| 亚洲国产视频一区| 成人精品免费视频| 制服.丝袜.亚洲.中文.综合| 国产精品国产成人国产三级| 久久精品国产精品青草| 欧洲国内综合视频| 国产精品三级av在线播放| 久久爱www久久做| 欧美日韩精品电影| 亚洲色图都市小说| 国产成人精品aa毛片| 91.成人天堂一区| 亚洲一区二区三区不卡国产欧美 | 国产精品视频你懂的| 老司机午夜精品99久久| 欧美中文字幕一区二区三区 | 国产亚洲欧洲一区高清在线观看| 亚洲国产人成综合网站| 91小视频在线免费看| 久久精品一区四区| 寂寞少妇一区二区三区| 欧美色爱综合网| 亚洲一区二区高清| 91丝袜国产在线播放| 国产精品欧美久久久久一区二区| 国产一区福利在线| 日韩精品中文字幕在线一区| 一区二区国产视频| 色综合欧美在线| 亚洲三级在线播放| 成人精品gif动图一区| 国产视频一区二区在线| 国产综合久久久久久鬼色| 精品少妇一区二区三区日产乱码| 日韩国产精品久久| 91精品在线免费观看| 蜜桃视频在线一区| 欧美www视频| 国产成人免费网站| 亚洲欧洲日产国码二区|