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

📄 fdtd_1d_eh_lorentz.h

📁 三维FDTD
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// FDTD_1D_EH_LORENTZ.h: interface for the CFDTD_1D_EH_LORENTZ class.
//////////////////////////////////////////////////////////////////////
#pragma once

class CFDTD_1D_EH_LORENTZ  
{
protected:
	double *E_1D, *H_1D;

private:
	//the parameters of the FDTD algorithm
	double pi, eps_0, mu_0;
	
	double *D;
	double **S, **S_2;
	double *K_D_a, *K_D_b, *K_H_a, *K_H_b;
	double *K_a, *K_b, *K_c;

	long n_L_mat;
	double mu_r, Inv_eps;
	
	long n_1D, n_PML, n_1DMIN1; //the length of the computational space [cells]
	
	int source_type; //the type of the excitation
	double E0, t0, twORtw, omega, phase, alfa; //the parameters of the excitation
	double d, dt;

	int nr_threads;
	
public:
	CFDTD_1D_EH_LORENTZ();
	virtual ~CFDTD_1D_EH_LORENTZ();

	int Init_Main_Param_1D(long n1d, long n_pml, double *&par_mat,
		                   double d_t, double d_d);
	
	void Set_PML_Param_1D(double eps_r, double mu_r);
	
	void Calc_H_1D();
	void Calc_E_1D(double time);
	
	void Init_Gauss_1D(double E_0, double t_0, double t_w);
	void Init_Sinus_1D(double E_0, double om, double Phi);
	void Init_Wave_Packet_1D(double E_0, double t_0, double t_w, double om, double Phi);

	void Get_Data_1D(double *&e1D, double *&h1D);

	int Save_FDTD_1D_Workspace(char *path, int myrank);
	int Load_FDTD_1D_Workspace(char *path, int myrank);

	//Initialize the nr of threads
	void Init_nr_THR(int nr_Threads);

	void Free_Mem_1D();
};

⌨️ 快捷键说明

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