亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
精品电影一区二区| 欧美日韩电影在线| 国产精品网友自拍| 99国产精品国产精品毛片| 欧美精彩视频一区二区三区| 91视频免费观看| 亚洲国产日韩一级| 欧美一卡二卡在线观看| 久久精品国产一区二区| 国产亚洲制服色| 色诱视频网站一区| 日本午夜一区二区| 精品动漫一区二区三区在线观看| 成人黄色软件下载| 亚洲国产欧美在线人成| 欧美一级精品大片| 成人性生交大片免费看中文网站| 亚洲一区中文在线| 精品免费一区二区三区| 97久久精品人人做人人爽50路| 亚洲国产精品影院| 国产日韩亚洲欧美综合| 欧美亚洲尤物久久| 国产精品综合二区| 亚洲麻豆国产自偷在线| 日韩免费高清av| 日本精品一级二级| 韩国v欧美v日本v亚洲v| 伊人婷婷欧美激情| 精品人伦一区二区色婷婷| 色综合久久综合中文综合网| 久久国产精品72免费观看| 亚洲欧洲综合另类| 久久九九久精品国产免费直播| 欧美午夜理伦三级在线观看| 国产精品综合视频| 免费成人在线观看| 亚洲综合小说图片| 日本一区二区不卡视频| 欧美日韩国产综合草草| 成人精品在线视频观看| 日本成人中文字幕| 亚洲亚洲精品在线观看| 亚洲国产精品精华液ab| 日韩一级高清毛片| 欧美性猛交一区二区三区精品| 国产精品影视在线| 久久99精品国产91久久来源| 一区二区三区波多野结衣在线观看 | 日韩三级中文字幕| 91免费观看视频在线| 国产精品亚洲一区二区三区在线| 亚洲高清久久久| 亚洲精品少妇30p| 国产精品久久久久精k8 | 国产精品一区二区三区四区| 天堂蜜桃91精品| 亚洲一区二区黄色| 中文字幕一区二区三区在线播放 | 欧美日韩不卡一区| 色爱区综合激月婷婷| 成人精品电影在线观看| 九一九一国产精品| 日本欧美一区二区| 日本大胆欧美人术艺术动态| 天天做天天摸天天爽国产一区 | 亚洲视频狠狠干| 国产视频在线观看一区二区三区 | 国产成人精品aa毛片| 日本女人一区二区三区| 日韩电影免费在线看| 日韩成人一级大片| 日韩avvvv在线播放| 五月天欧美精品| 日本欧美久久久久免费播放网| 天天色综合成人网| 秋霞午夜鲁丝一区二区老狼| 日韩av中文字幕一区二区| 日韩av一区二区三区四区| 麻豆免费看一区二区三区| 久久成人精品无人区| 国产一区福利在线| 成人精品免费网站| 色综合天天综合网天天看片| 日本高清不卡一区| 欧美日韩一区二区三区视频| 欧美日韩国产不卡| 日韩一区二区三区免费看 | 暴力调教一区二区三区| 成人av动漫网站| 欧美在线你懂的| 欧美日韩成人激情| 久久久午夜电影| 国产精品白丝在线| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产成人精品视频| 蜜臀av一区二区在线免费观看| 精品一区二区成人精品| 成人免费毛片片v| 欧美日韩综合不卡| 日韩一区二区电影在线| 国产日韩高清在线| 亚洲一区二区精品久久av| 麻豆精品在线观看| 成人av在线播放网址| 欧美午夜在线观看| www成人在线观看| 亚洲女同一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 91久久精品国产91性色tv| 欧美美女激情18p| 国产欧美视频一区二区| 亚洲人一二三区| 精品一区二区三区不卡| 91浏览器打开| 欧美成人精品高清在线播放| 中文字幕亚洲精品在线观看 | 日韩精品一区国产麻豆| 成人免费在线观看入口| 秋霞午夜鲁丝一区二区老狼| av一本久道久久综合久久鬼色| 制服丝袜在线91| 国产精品伦理一区二区| 日本欧美在线观看| 色婷婷亚洲综合| 国产欧美一区二区三区沐欲| 亚洲国产精品影院| youjizz久久| 精品成人一区二区三区| 亚洲一级二级在线| 成人av资源在线观看| 精品乱码亚洲一区二区不卡| 亚洲精品国产无套在线观| 国产精品一二一区| 69精品人人人人| 一区二区三区视频在线观看| 国产成人av电影免费在线观看| 日韩一级片网站| 亚洲成人在线观看视频| 91污片在线观看| 国产精品欧美极品| 国产在线不卡视频| 日韩视频中午一区| 天涯成人国产亚洲精品一区av| 日本韩国精品在线| 国产精品久久久久国产精品日日| 精品制服美女久久| 日韩区在线观看| 视频一区中文字幕国产| 在线免费观看日本一区| 亚洲视频电影在线| av电影天堂一区二区在线| 国产婷婷色一区二区三区四区| 久久99精品久久只有精品| 91精品国产综合久久精品麻豆| 夜夜揉揉日日人人青青一国产精品| 99久久综合狠狠综合久久| 欧美国产综合一区二区| 国产一区二区久久| 久久久久国产精品免费免费搜索| 久久99最新地址| 久久久久久久久久久久久夜| 国模一区二区三区白浆| 精品国产免费视频| 精品一区二区在线看| 久久亚洲精华国产精华液 | 97久久超碰精品国产| 中文字幕一区二区不卡| 91美女视频网站| 一区二区三区在线视频免费 | 91视频免费观看| 亚洲激情一二三区| 在线观看一区二区视频| 亚洲影视资源网| 欧美一区二区三区视频| 奇米精品一区二区三区四区 | 成人夜色视频网站在线观看| 中文av一区特黄| www.欧美日韩国产在线| 亚洲男人天堂av网| 欧美喷潮久久久xxxxx| 免费观看在线综合色| 26uuu精品一区二区| 欧美mv日韩mv亚洲| 国产在线乱码一区二区三区| 欧美国产乱子伦| 91麻豆免费视频| 午夜不卡av免费| 精品国产乱码久久久久久牛牛| 国产精品资源在线观看| 自拍偷拍欧美精品| 欧美高清www午色夜在线视频| 精品一区二区三区在线观看国产 | 欧美喷潮久久久xxxxx| 日韩精品91亚洲二区在线观看| 日韩视频免费观看高清完整版在线观看| 国内不卡的二区三区中文字幕 | av在线播放一区二区三区| 亚洲精品国产无天堂网2021| 91精品国产综合久久久久久久久久 |