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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? fdtd_1d_exhy.cpp

?? 利用c++語(yǔ)言寫(xiě)的三維FDTD
?? CPP
字號(hào):
#include "stdafx.h"
#include "FDTD_1D_ExHy.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFDTD_1D_ExHy::CFDTD_1D_ExHy(void)
{
	Ex = NULL; 
	Hy = NULL;
	
	Hy_n_1[0] = 0.0;   Hy_n_1[1] = 0.0;
	Hy_n[0]   = 0.0;   Hy_n[1]   = 0.0;

	nr_threads = 1;
}

CFDTD_1D_ExHy::~CFDTD_1D_ExHy(void)
{
	if (Ex)
	{
		free(Ex);
		Ex = NULL;
	}

	if (Hy)
	{
		free(Hy);
		Hy = NULL;
	}
}

///////////////////////////////////////////////////////////////////////////////////////
//Initialize the number of threads
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Init_nr_THR(int nr_Threads)
{
	nr_threads = nr_Threads;
}

///////////////////////////////////////////////////////////////////////////////////////
//Initialize the class parameters
///////////////////////////////////////////////////////////////////////////////////////
int CFDTD_1D_ExHy::Init(long n_z, double dt, double dz, double eps_r, double mu_r)
{
	nz = n_z;
	nzMIN1 = nz -1;

	Ex = (double *)calloc(nz,sizeof(double));
	if (!Ex)
	{
		return 1;
	}

	Hy = (double *)calloc(nz,sizeof(double));
	if (!Hy)
	{
		free(Ex);
		Ex = NULL;
		return 1;
	}

	double pi = 180.0*atan(1.0)/45.0;
	//permittivity of free space 
	double eps_0 = 8.8541878176203898505365630317107502606083701665994498081024171524053950954599821142852891607182008932e-12; // [F/m]
	//permeability of free space 
    double mu_0  = 1.2566370614359172953850573533118011536788677597500423283899778369231265625144835994512139301368468271e-6;  // [H/m]
	
	K_E = dt/(eps_0*eps_r*dz);
	K_H = dt/(mu_0*mu_r*dz);

	double speed = 1.0/sqrt(eps_0*eps_r*mu_0*mu_r); //the speed of the light in the vacuum

	K_MUR_1 = ( speed*dt - dz )/( speed*dt + dz );
	K_MUR_2 =  2.0*dz/( speed*dt + dz );

	return 0;
}

///////////////////////////////////////////////////////////////////////////////////////
//Initialize a sinusoidal source
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Init_Sin_Source(double E_0, double om, double Phi)
{
	double pi = 180.0*atan(1.0)/45.0;

	E0 = E_0;
	omega = om;
	phi = Phi;

	alfa = 3.0*omega/(2.0*pi);

	Source_Type = 1;
}

///////////////////////////////////////////////////////////////////////////////////////
//Initialize  a Gaussian source
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Init_Gauss_Source(double E_0, double t_0, double t_w)
{
	E0 = E_0;
	t0 = t_0;
	tw = t_w;
	
	Source_Type = 2;
}

///////////////////////////////////////////////////////////////////////////////////////
//Initialize a sinusoidal modulated Gaussian pulse
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Init_GaussSin(double E_0, double om, double Phi, double t_0, double t_w)
{
	E0 = E_0;
	omega = om;
	phi = Phi;
	t0 = t_0;
	tw = t_w;

	Source_Type = 3;
}

///////////////////////////////////////////////////////////////////////////////////////
//Calculate Ex field
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::calc_Ex(double time)
{
	long k;

	#pragma omp parallel for default(shared) private(k) schedule(dynamic,nr_threads)
	for (k = 1; k < nz; k++)
	{
		Ex[k] += K_E*( Hy[k-1] - Hy[k] );
	}

	switch (Source_Type)
	{
		case 1:
			Ex[0] = (1.0-exp(-alfa*time))*E0*cos(omega*time + phi);
			break;
		case 2:
			Ex[0] = E0*exp( - (time - t0)*(time - t0)/(tw*tw) );
			break;
		case 3:
			Ex[0] = E0*cos(omega*(time-t0) + phi)*exp( - (time - t0)*(time - t0)/(tw*tw) );
			break;
	}
	
	
}

///////////////////////////////////////////////////////////////////////////////////////
//Calculate Hy field
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::calc_Hy()
{
	long k;

	#pragma omp parallel for default(shared) private(k) schedule(dynamic,nr_threads)
	for (k = 0; k < nzMIN1; k++)
	{
		Hy[k] += K_H*( Ex[k] - Ex[k+1] );
	}

	Hy[nz-1] = -Hy_n_1[1] + K_MUR_1*(Hy_n_1[0] + Hy[nz-2]) + K_MUR_2*(Hy_n[0] + Hy_n[1]);
	
	Hy_n_1[0] = Hy_n[0]; 
	Hy_n_1[1] = Hy_n[1];
	Hy_n[0]   = Hy[nz-1]; 
	Hy_n[1]   = Hy[nz-2];
}

///////////////////////////////////////////////////////////////////////////////////////
//Reinitialize with zero all the field components
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Reset_Field_Comp(void)
{
	long k;
	for (k = 0; k < nz; k++)
	{
		Ex[k] = 0.0;
		Hy[k] = 0.0;
	}

	Hy_n_1[0] = 0.0; 
	Hy_n_1[1] = 0.0;
	Hy_n[0]   = 0.0;
	Hy_n[1]   = 0.0;
}

///////////////////////////////////////////////////////////////////////////////////////
//Get the address of Ex and Hy
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_ExHy::Get_Data(double *&X, double *&Y)
{
	X = Ex;
	Y = Hy;
}

///////////////////////////////////////////////////////////////////////////////////////
//Save out the workspace data - the possibility to continue computations
///////////////////////////////////////////////////////////////////////////////////////
int CFDTD_1D_ExHy::Save_FDTD_1D_Workspace(char *path_name)
{	
	char *file_name = NULL;
	file_name =(char *) calloc(256,sizeof(char));
	if (!file_name)
	{
		if (file_name)
			free(file_name);
		return 1;
	}
	//save Ex_1D
	strcpy(file_name,path_name);
	strcat(file_name,"/Ex_1D");
	if (save_1D_binary(Ex, nz, 0, file_name))
	{
		free(path_name);
		free(file_name);
		return 2; //faild to save data
	}

	//save Hy_1D
	strcpy(file_name,path_name);
	strcat(file_name,"/Hy_1D");
	if(save_1D_binary(Hy, nz, 0, file_name))
	{
		free(path_name);
		free(file_name);
		return 2; //faild to save data
	}

	//save Hy_n
	strcpy(file_name,path_name);
	strcat(file_name,"/Hy_n_1D");
	if(save_1D_binary(Hy_n, 2, 0, file_name))
	{
		free(path_name);
		free(file_name);
		return 2; //faild to save data
	}

	//save Hy_n_1
	strcpy(file_name,path_name);
	strcat(file_name,"/Hy_n_1_1D");
	if(save_1D_binary(Hy_n_1, 2, 0, file_name))
	{
		free(path_name);
		free(file_name);
		return 2; //faild to save data
	}

	free(path_name);
	free(file_name);

	return 0;
}

int CFDTD_1D_ExHy::Load_FDTD_1D_Workspace(char *path)
{
	char *file_name = NULL;
	file_name =(char *) calloc(256,sizeof(char));
	if (!file_name)
	{
		return 1;
	}
	
	//load Ex_1D
	strcpy(file_name,path);
	strcat(file_name,"/Ex_1D_0.dat");
	if (load_1D_binary(Ex, nz, file_name))
	{
		free(file_name);
		return 2; //faild to load data
	}

	//load Hy_1D
	strcpy(file_name,path);
	strcat(file_name,"/Hy_1D_0.dat");
	if (load_1D_binary(Hy, nz, file_name))
	{
		free(file_name);
		return 2; //faild to load data
	}

	//load Hy_n
	strcpy(file_name,path);
	strcat(file_name,"/Hy_n_1D_0.dat");
	if (load_1D_binary(Hy_n, 2, file_name))
	{
		free(file_name);
		return 2; //faild to load data
	}

	//load Hy_n_1
	strcpy(file_name,path);
	strcat(file_name,"/Hy_n_1_1D_0.dat");
	if (load_1D_binary(Hy_n_1, 2, file_name))
	{
		free(file_name);
		return 2; //faild to load data
	}

	free(file_name);

	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区调教| 久久亚洲综合色| 亚洲色图.com| 91老司机福利 在线| 亚洲精品亚洲人成人网在线播放| 99久久精品国产导航| 亚洲色图在线播放| 欧美三级视频在线播放| 青青草国产精品亚洲专区无| 欧美一区二区三区免费| 国产精品自拍网站| 日韩一区欧美一区| 欧美日韩一级视频| 久久99精品国产.久久久久久| 337p粉嫩大胆色噜噜噜噜亚洲| 粉嫩av亚洲一区二区图片| 亚洲精品视频一区| 欧美一区二区成人6969| 国产成人在线网站| 亚洲一区av在线| 精品剧情v国产在线观看在线| 成人免费的视频| 天堂蜜桃91精品| 国产精品美女久久久久久久网站| 欧美专区日韩专区| 国产成人在线视频网站| 亚洲一区二区三区激情| 久久久精品国产免大香伊| 欧美亚洲国产一区二区三区va| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品国产一区二区三区忘忧草| 国产超碰在线一区| 午夜婷婷国产麻豆精品| 国产欧美一区二区在线| 欧美日韩成人综合在线一区二区 | 久久精品在线免费观看| 在线亚洲一区观看| 国产精品一品二品| 视频一区二区不卡| 亚洲天堂久久久久久久| 欧美xxxx老人做受| 欧美美女bb生活片| 91猫先生在线| 丁香婷婷深情五月亚洲| 日本不卡高清视频| 亚洲一二三四在线| 国产精品白丝在线| 国产日韩欧美a| 91精品国产色综合久久不卡电影| 色哟哟国产精品免费观看| 国产一区二区三区四区五区入口| 亚洲福利视频一区二区| 自拍视频在线观看一区二区| 精品国产欧美一区二区| 欧美在线色视频| 欧美一级视频精品观看| 99r精品视频| 国产经典欧美精品| 精品亚洲成a人| 蜜桃av一区二区在线观看| 亚洲成人久久影院| 亚洲一区二区欧美| 亚洲最色的网站| 最新国产精品久久精品| 国产三区在线成人av| 久久在线观看免费| 日韩欧美电影在线| 精品国偷自产国产一区| 日韩女优av电影| 精品国产乱码久久久久久图片| 在线播放中文字幕一区| 欧美日韩大陆在线| 制服丝袜中文字幕一区| 欧美人狂配大交3d怪物一区| 91九色02白丝porn| 欧美日韩国产美女| 91精品欧美久久久久久动漫| 777xxx欧美| 日韩免费性生活视频播放| 日韩精品一区二区三区蜜臀 | 日韩欧美激情四射| 日韩一二三四区| 欧美大黄免费观看| 2024国产精品视频| 国产女同互慰高潮91漫画| 国产精品女人毛片| 亚洲欧美日韩国产综合| 一区二区三区在线观看动漫| 亚洲国产成人av| 日本大胆欧美人术艺术动态| 美女脱光内衣内裤视频久久影院| 精品一区二区三区在线视频| 国产一区二区三区观看| 风间由美中文字幕在线看视频国产欧美| 国产精品亚洲人在线观看| 高清不卡一区二区| 在线观看视频一区| 91精品国模一区二区三区| 精品日韩在线观看| 国产精品情趣视频| 亚洲一区二区三区在线| 免费在线一区观看| 成人中文字幕电影| 欧美性一二三区| 日韩午夜激情视频| 国产精品不卡一区| 日韩成人精品在线观看| 国内精品国产成人国产三级粉色 | 亚洲精品成人悠悠色影视| 亚洲国产精品久久不卡毛片| 伦理电影国产精品| 91麻豆精品在线观看| 欧美一区二区三区思思人| 国产色产综合色产在线视频| 洋洋成人永久网站入口| 人禽交欧美网站| 色综合久久综合网97色综合| 亚洲激情五月婷婷| 精品一区二区日韩| 91小视频免费看| 欧美电视剧免费观看| 亚洲三级在线看| 国产一区高清在线| 欧美日韩国产123区| 国产欧美日韩另类视频免费观看| 亚洲福中文字幕伊人影院| 国产高清亚洲一区| 欧美人牲a欧美精品| 国产精品成人免费在线| 精品无人码麻豆乱码1区2区| 91国产免费看| 国产精品三级久久久久三级| 日韩av二区在线播放| av欧美精品.com| 2欧美一区二区三区在线观看视频| 一区二区三区四区不卡在线 | 欧美精品777| 1区2区3区精品视频| 精品一区二区在线观看| 欧美另类变人与禽xxxxx| 成人欧美一区二区三区白人| 精品一区二区三区免费观看| 欧美综合欧美视频| 自拍偷拍欧美精品| 成人精品视频.| 亚洲精品在线电影| 日本va欧美va欧美va精品| 欧美亚一区二区| 日韩伦理av电影| 成人av综合一区| 国产清纯白嫩初高生在线观看91| 免费成人在线观看视频| 91精品国产综合久久婷婷香蕉| 一区二区三区不卡在线观看| 99国产麻豆精品| 国产精品久久久久影院色老大 | 中文字幕一区二区三区在线观看| 精品一区二区在线播放| 精品少妇一区二区三区在线播放| 午夜精品久久久久影视| 欧美视频在线观看一区二区| 一区二区在线免费观看| 色综合久久中文字幕| 亚洲欧美精品午睡沙发| 91污在线观看| 亚洲免费观看在线视频| 成人av电影免费观看| 亚洲欧洲另类国产综合| 不卡区在线中文字幕| 亚洲色图色小说| 欧美影院午夜播放| 五月天激情小说综合| 欧美日本韩国一区二区三区视频| 午夜久久福利影院| 日韩精品一区在线观看| 国产一区二区三区久久悠悠色av| 久久久不卡网国产精品一区| 国产精品一区在线观看乱码| 欧美激情一区二区三区四区| 成人不卡免费av| 一区二区三区四区在线播放| 欧美色图片你懂的| 精品伊人久久久久7777人| 国产女主播在线一区二区| 91无套直看片红桃| 粉嫩av一区二区三区在线播放| 午夜欧美一区二区三区在线播放| 欧美三片在线视频观看| 美女视频黄 久久| 国产拍欧美日韩视频二区| 9人人澡人人爽人人精品| 亚洲成av人片在线观看| 精品国产乱码久久久久久图片 | 欧美日韩在线亚洲一区蜜芽| 日本欧美久久久久免费播放网| 精品国产一区二区三区四区四| 成人黄色av网站在线| 亚洲国产综合在线| 久久噜噜亚洲综合| 欧洲av在线精品|