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

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

?? fdtd_1d_hzey_lorentz.cpp

?? 2Dfdtd算法
?? CPP
字號:
// FDTD_1D_HzEy_LORENTZ.cpp: implementation of the CFDTD_1D_HzEy_LORENTZ class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "fdtd_2D_TE_PML_Lorentz_period.h"
#include "FDTD_1D_HzEy_LORENTZ.h"
#include "Math.h"
#include "Matrix.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CFDTD_1D_HzEy_LORENTZ::CFDTD_1D_HzEy_LORENTZ()
{
	Hz_1D = NULL; Dy = NULL; Ey_1D = NULL;
	Sy = NULL; Sy_2 = NULL;
	K_E1_a = NULL; K_E1_b = NULL; 
	K_E2_a = NULL; K_E2_b = NULL;
	
	pi = 3.1415926535897932384626433832795;
	eps_0 = 8.854e-12; // [F/m]
	mu_0 = 4*pi*1e-7; // [H/m]
}

CFDTD_1D_HzEy_LORENTZ::~CFDTD_1D_HzEy_LORENTZ()
{
	Free_Mem_1D();
}

///////////////////////////////////////////////////////////////////////////////////////
//Init Main Parameters
///////////////////////////////////////////////////////////////////////////////////////
BOOL CFDTD_1D_HzEy_LORENTZ::Init_Main_Param_1D(int n_x, int n_pml, double *&par_mat, 
											   double d_t, double d_x)
{
	//dimension of the computational space
    nx = n_x;
	dt = d_t;
	dx = d_x;
	n_PML = n_pml;

	n_L_mat = par_mat[0];//number of Lorentz terms 
	eps_inf = par_mat[1];
	mu_r = par_mat[2+3*n_L_mat];

	Hz_1D = (double *) calloc(nx,sizeof(double));
	if(!Hz_1D)
	{
		return FALSE;
	}
	
	Dy = (double *) calloc(nx-1,sizeof(double));
	if(!Dy)
	{
		Free_Mem_1D();
		return FALSE;
	}

	Ey_1D = (double *) calloc(nx-1,sizeof(double));
	if(!Ey_1D)
	{
		Free_Mem_1D();
		return FALSE;
	}

	Sy = Init_Matrix_2D<double>(nx-1,n_L_mat);
	if(!Sy)
	{
		Free_Mem_1D();
		return FALSE;
	}

	Sy_2 = Init_Matrix_2D<double>(nx-1,n_L_mat);
	if(!Sy_2)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	//////////////////////////
	K_E1_a = (double *) calloc(nx,sizeof(double));
	if(!K_E1_a)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	K_E1_b = (double *) calloc(nx,sizeof(double));
	if(!K_E1_b)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	K_E2_a = (double *) calloc(nx-1,sizeof(double));
	if(!K_E2_a)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	K_E2_b = (double *) calloc(nx-1,sizeof(double));
	if(!K_E2_b)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	//////////////////////////
	K_a = (double *) calloc(n_L_mat,sizeof(double));
	if(!K_a)
	{
		Free_Mem_1D();
		return FALSE;
	}
	 
	K_b = (double *) calloc(n_L_mat,sizeof(double));
	if(!K_b)
	{
		Free_Mem_1D();
		return FALSE;
	}
	
	K_c = (double *) calloc(n_L_mat,sizeof(double));
	if(!K_c)
	{
		Free_Mem_1D();
		return FALSE;
	}

	double am, delta_0, omega_0;
	
	for (i =0; i<n_L_mat; i++)
	{
		am = par_mat[2+3*i];
		delta_0 = par_mat[2+3*i+1];
		omega_0 = par_mat[2+3*i+2];
		
		K_a[i] = 2*(2 - omega_0*omega_0*dt*dt)/
			        ( 2 + delta_0*omega_0*dt);
		K_b[i] = (-2 + delta_0*omega_0*dt)/
			        ( 2 + delta_0*omega_0*dt);
		K_c[i] = 2*am*omega_0*omega_0*dt*dt/
					( 2 + delta_0*omega_0*dt);
	}
	
	return TRUE;
}

//////////////////////////////////////////////////////////////////////
//Initialize the parameters of a Gaussian pulse
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Init_Gauss_1D(double H_0, double t_0, double t_w)
{
	source_type = 1;
	H0 = H_0;
	t0 = t_0;
	tw = t_w;
}

//////////////////////////////////////////////////////////////////////
//Initialize the parameters of a Sinusoidal plane wave
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Init_Sinus_1D(double H_0, double om, double Phi)
{
	source_type = 2;
	H0 = H_0;
	omega = om;
	phi = Phi;
}


//////////////////////////////////////////////////////////////////////
//Initialize the parameters of a Wave Packet (sinusoidal modulated Gauss pulse)
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Init_Wave_Packet_1D(double H_0, double t_0, double t_w, 
									   double om, double Phi)
{
	source_type = 3;
	H0 = H_0;
	t0 = t_0;
	tw = t_w;
	omega = om;
	phi = Phi;
}

///////////////////////////////////////////////////////////////////////////////////////
//Set the PML matrices
///////////////////////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Set_PML_Param_1D(double eps_r, double mu_r)
{
	for (i = 0; i<nx; i++)
	{
		K_E1_a[i] = 1.0;
		K_E1_b[i] = dt/(mu_0*mu_r*dx);

		if (i < nx-1)
		{
			K_E2_a[i] = 1.0;
			K_E2_b[i] = dt/dx;
		}			
	}

	//PML parameters
	double ka_max = 1;
	int exponent = 4;
	double R_err = 1e-16;
	
	double eta = sqrt(mu_0*mu_r/eps_0/eps_r);

	double sigma_x, sigma_max, ka_x;
		
	sigma_max= -(exponent+1)*log(R_err)/(2*eta*n_PML*dx);
	//sigma_max= -(exponent+1)*log(R_err)*eps_0/(2*n_PML*dx*sqrt(mu_0*mu_r*eps_0*eps_r));

	for (i = 0; i<n_PML; i++)
	{
		sigma_x         = sigma_max*pow( (n_PML - i)/((double) n_PML) ,exponent);
		ka_x            = 1 + (ka_max - 1)*pow( (n_PML-i)/((double) n_PML) ,exponent);
		K_E1_a[nx-i-1]  = (2*eps_0*ka_x - sigma_x*dt)/(2*eps_0*ka_x + sigma_x*dt);
		//K_E1_a[i]       = K_E1_a[nx-i-1];
		K_E1_b[nx-i-1]  = 2*eps_0*dt/(2*eps_0*ka_x+sigma_x*dt)/(mu_0*mu_r*dx);
		//K_E1_b[i]       = K_E1_b[nx-i-1];
		
		sigma_x         = sigma_max*pow( (n_PML - i - 0.5)/n_PML ,exponent);
		ka_x            = 1 + (ka_max - 1)*pow( (n_PML - i - 0.5)/n_PML ,exponent);
		K_E2_a[nx-i-2]  = (2*eps_0*ka_x - sigma_x*dt)/(2*eps_0*ka_x + sigma_x*dt);
		//K_E2_a[i]       = K_E2_a[nx-i-2];
		K_E2_b[nx-i-2]  = 2*eps_0*dt/(2*eps_0*ka_x + sigma_x*dt)/dx;
		//K_E2_b[i]       = K_E2_b[nx-i-2];
	}

}

//////////////////////////////////////////////////////////////////////
//Compute the Hz component
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::calc_Hz_1D(double t)
{
	switch (source_type)
	{
		case 1: //Gaussian pulse
			Hz_1D[0] = H0*exp( -pow( (t-t0)/tw ,2) ); 
			break;
		case 2: //Sinusoidal plane wave
			Hz_1D[0] = H0*cos( omega*t + phi);
			break;
		case 3: //Wave packet(sinusoidal modulated Gaussian pulse)
			Hz_1D[0] = H0*cos( omega*t + phi)*exp( -pow( (t-t0)/tw ,2) );
	}
	 
	for (i = 1; i < nx - 1; i++)
	{
		Hz_1D[i] = K_E1_a[i]*Hz_1D[i] - K_E1_b[i]*(Ey_1D[i] - Ey_1D[i-1]);
	}

}

//////////////////////////////////////////////////////////////////////
//Compute the Ey component
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::calc_Ey_1D()
{
	int kk;
	double Sum_S;

	for (i = 0; i < nx - 1; i++)
	{
		double Dy_r = Dy[i];

		Dy[i] = K_E2_a[i]*Dy[i] - K_E2_b[i]*(Hz_1D[i+1] - Hz_1D[i]);

		Sum_S = 0;
		for (kk = 0; kk<n_L_mat; kk++)
		{
			 Sum_S = Sum_S + Sy[i][kk];
		}
		Ey_1D[i] = (Dy[i] - eps_0*Sum_S)/(eps_0*eps_inf);

		for (kk = 0; kk<n_L_mat; kk++)
		{
			Sy_r = Sy[i][kk]; 
			Sy[i][kk]   = K_a[kk] * Sy_r +
				 		  K_b[kk] * Sy_2[i][kk] + 
						  K_c[kk] * Ey_1D[i];
			Sy_2[i][kk] = Sy_r;
		}
	}

}

//////////////////////////////////////////////////////////////////////
//Free the allocated memory
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Free_Mem_1D()
{
	if (Hz_1D)
		free(Hz_1D);
	if (Dy)
		free(Dy);
	if (Ey_1D)
		free(Ey_1D);
	if (Sy)
		Sy = Free_Matrix_2D<double>(Sy);
	if (Sy_2)
		Sy_2 = Free_Matrix_2D<double>(Sy_2);
	if (K_E1_a)
		free(K_E1_a);
	if (K_E1_b)
		free(K_E1_b);
	if (K_E2_a)
		free(K_E2_a);
	if (K_E2_b)
		free(K_E2_b);
	if (K_a)
		free(K_a);
	if (K_b)
		free(K_b);
	if (K_c)
		free(K_c);
}

//////////////////////////////////////////////////////////////////////
//Access Hz_1D and Ey_1D
//////////////////////////////////////////////////////////////////////
void CFDTD_1D_HzEy_LORENTZ::Get_Data_1D(double *&X, double *&Y)
{
	X = Hz_1D;
	Y = Ey_1D;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品性色| 国产suv精品一区二区6| av欧美精品.com| 国产精品理论片在线观看| 成人手机电影网| 欧美在线免费观看亚洲| 日韩一级黄色片| 亚洲色图第一区| 亚洲大片免费看| 亚洲国产视频一区| 日韩免费看网站| 成人伦理片在线| 五月天欧美精品| 26uuu亚洲综合色| 成人免费在线播放视频| 国产在线精品不卡| 久久久久久电影| 久久国内精品视频| 欧美三级在线播放| 国产精品三级电影| 欧美日韩一区久久| 欧美人伦禁忌dvd放荡欲情| 久久综合色综合88| 久久久久国产成人精品亚洲午夜 | 91精品国模一区二区三区| 91免费视频网| 亚洲综合免费观看高清完整版在线| 天天色 色综合| 国产亚洲成年网址在线观看| 91理论电影在线观看| 日本美女一区二区三区视频| 国产精品视频一区二区三区不卡| 美女脱光内衣内裤视频久久影院| 色婷婷狠狠综合| 极品少妇xxxx偷拍精品少妇| 国产精品久久久久久久第一福利| 狠狠色狠狠色综合日日91app| 51精品秘密在线观看| 国精产品一区一区三区mba视频| 日韩免费成人网| 99久久99久久精品免费观看| 美国十次了思思久久精品导航| 欧美视频一区二| av电影一区二区| 婷婷夜色潮精品综合在线| 国产精品视频线看| 日韩一区二区免费高清| 色成年激情久久综合| 成人激情午夜影院| 精品一区二区影视| 亚洲综合色视频| 国产精品成人在线观看| 国产午夜精品美女毛片视频| 日韩欧美激情四射| 3d动漫精品啪啪| 欧美艳星brazzers| 色综合视频在线观看| 国产成人午夜视频| 国产一区在线观看视频| 日本欧美久久久久免费播放网| 日韩一区二区在线观看| 在线观看成人免费视频| 色噜噜夜夜夜综合网| 91一区二区在线观看| 97se亚洲国产综合自在线不卡| 亚洲国产日韩a在线播放性色| 制服视频三区第一页精品| 波多野结衣中文字幕一区| 国产乱一区二区| 国产精品夜夜嗨| 国产成人精品免费一区二区| 国产精品1区二区.| 国产一区二区h| 久久99久久精品| 精品一区二区三区在线观看| 麻豆freexxxx性91精品| 久久精品国产秦先生| 狠狠色综合日日| 国产传媒一区在线| 成人午夜大片免费观看| av男人天堂一区| 色婷婷亚洲婷婷| 欧美色视频在线| 91精品国产综合久久久久| 欧美成人女星排名| 久久久久国产一区二区三区四区| 欧美视频一区在线观看| 91福利在线看| 777精品伊人久久久久大香线蕉| www.亚洲在线| 91视视频在线观看入口直接观看www | 国产美女av一区二区三区| 精品亚洲国产成人av制服丝袜| 一区二区中文字幕在线| 国产精品国产三级国产aⅴ无密码| 欧美妇女性影城| 日韩精品一区二区三区视频播放| 91在线高清观看| 欧美色图免费看| 欧美成人福利视频| 国产亚洲污的网站| 亚洲欧美一区二区三区孕妇| 香蕉影视欧美成人| 国产一区二区福利视频| 91在线观看免费视频| 欧美精品 国产精品| 精品国产乱码久久久久久影片| 色哟哟国产精品| 日韩亚洲欧美中文三级| 国产女主播视频一区二区| 亚洲精品福利视频网站| 蜜臀va亚洲va欧美va天堂| 福利一区二区在线| 在线视频综合导航| 欧美videofree性高清杂交| 中文字幕一区二区在线播放| 婷婷六月综合亚洲| 成人av在线一区二区| 欧美剧情电影在线观看完整版免费励志电影| 成人精品高清在线| 在线看日韩精品电影| 欧美精品一区二区精品网| 亚洲美女在线国产| 黑人巨大精品欧美黑白配亚洲| 久久精品国产网站| 色琪琪一区二区三区亚洲区| 久久蜜桃一区二区| 香蕉久久夜色精品国产使用方法| 亚洲精品高清在线观看| 国产乱子伦视频一区二区三区| 极品少妇一区二区三区精品视频 | 美日韩一区二区| 色欧美88888久久久久久影院| 99久久精品费精品国产一区二区| 成人av在线网站| 精品精品欲导航| 亚洲成人一区在线| 99国产一区二区三精品乱码| 精品国产一二三| 日韩av中文字幕一区二区| 91视频一区二区三区| 中文字幕+乱码+中文字幕一区| 亚洲欧洲无码一区二区三区| 麻豆久久久久久| 欧美日韩国产一级二级| 亚洲人成网站精品片在线观看| 亚洲欧美日韩国产一区二区三区| 亚洲视频一区二区免费在线观看| 一区二区三区自拍| 成人免费的视频| 久久久影院官网| 国模无码大尺度一区二区三区 | 成人三级在线视频| 久久综合色播五月| 蜜臀av一区二区| 欧美日韩精品欧美日韩精品| 中文字幕一区二区三区四区 | 国产精品乱码一区二三区小蝌蚪| 亚洲同性gay激情无套| 国产成人亚洲精品青草天美| 日韩欧美视频在线| 日本成人在线视频网站| 欧美性感一区二区三区| 亚洲婷婷综合色高清在线| 99精品国产91久久久久久| 国产精品久久久久一区二区三区共| 亚洲柠檬福利资源导航| 91视频在线看| 亚洲色图欧洲色图| 91高清视频在线| 亚洲成人动漫一区| 日韩一区二区三区在线| 日韩专区欧美专区| 日韩你懂的在线播放| 精品一区免费av| 国产人伦精品一区二区| 成人福利电影精品一区二区在线观看| av在线不卡免费看| 一区二区三区中文字幕| 欧美日韩精品一二三区| 久久国产夜色精品鲁鲁99| 日韩一区二区在线看| 国产一区欧美一区| 国产精品嫩草影院com| 91香蕉视频mp4| 天天综合网 天天综合色| 日韩免费一区二区| 成人国产免费视频| 亚洲国产美女搞黄色| 精品国内二区三区| av一二三不卡影片| 午夜私人影院久久久久| 日韩精品资源二区在线| 粉嫩欧美一区二区三区高清影视| 欧美日韩一二三| 国产一区二区调教| 国产精品麻豆一区二区| 欧美日韩精品电影| 国产精品资源网| 一区二区三区四区激情|