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

📄 sigma.c

📁 program FDTD for the photonic crystal structure
💻 C
字号:
#include "./pFDTD.h"

float sigmax(float a)
{
	float sigma_maxl, sigma_maxr;

	if(use_periodic_x == 0) // no use of periodic boundary condition 
	{
		sigma_maxl=(sig_axl)*(orderxl+1)/(150*pi*sqrt(back_epsilon));
		sigma_maxr=(sig_axr)*(orderxr+1)/(150*pi*sqrt(back_epsilon));

		if(a<pmlil+0.5) return sigma_maxl*pow(-(a-(pmlil+0.5))/pmlil,orderxl);
		else if(a<isize-pmlir-1) return 0.0;
		else return sigma_maxr*pow((a-(isize-pmlir-1))/pmlir,orderxr);
	}
	else // use of periodic boundary condition
		return 0.0;
}

float sigmay(float a)
{
	float sigma_maxl, sigma_maxr;

	if(use_periodic_y == 0) // no use of periodic boundary condition 
	{
		sigma_maxl=(sig_ayl)*(orderyl+1)/(150*pi*sqrt(back_epsilon));
		sigma_maxr=(sig_ayr)*(orderyr+1)/(150*pi*sqrt(back_epsilon));

		if(a<pmljl+0.5) return sigma_maxl*pow(-(a-(pmljl+0.5))/pmljl,orderyl);
		else if(a<jsize-pmljr-1) return 0.0;
		else return sigma_maxr*pow((a-(jsize-pmljr-1))/pmljr,orderyr);
	}
	else // use of periodic boundary condition
		return 0.0;
}

float sigmaz(float a)
{
	float sigma_maxl, sigma_maxr;

	sigma_maxl=(sig_azl)*(orderzl+1)/(150*pi*sqrt(back_epsilon));
	sigma_maxr=(sig_azr)*(orderzr+1)/(150*pi*sqrt(back_epsilon));

	if(a<pmlkl+0.5) return sigma_maxl*pow(-(a-(pmlkl+0.5))/pmlkl,orderzl);
	else if(a<ksize-pmlkr-1) return 0.0;
	else return sigma_maxr*pow((a-(ksize-pmlkr-1))/pmlkr,orderzr);

}

⌨️ 快捷键说明

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