📄 fdtd_3d_alloc.cpp
字号:
#include "fdtd_3d_alloc.h"
#include "Matrix.h"
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Ex field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Ex(double **K_Gx_a_1, double **K_Gx_b_1, double **K_Ex_a_1,
double **K_Ex_b_1, double **K_Ex_c_1, double **K_Ex_d_1,
double **K_Gx_a_2, double **K_Gx_b_2, double **K_Ex_a_2,
double **K_Ex_b_2, double **K_Ex_c_2, double **K_Ex_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//1
*K_Gx_a_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Gx_a_1)
{
return 1;
}
*K_Gx_b_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Gx_b_1)
{
return 1;
}
*K_Ex_a_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Ex_a_1)
{
return 1;
}
*K_Ex_b_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Ex_b_1)
{
return 1;
}
*K_Ex_c_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Ex_c_1)
{
return 1;
}
*K_Ex_d_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Ex_d_1)
{
return 1;
}
//2
*K_Gx_a_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Gx_a_2)
{
return 1;
}
*K_Gx_b_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Gx_b_2)
{
return 1;
}
*K_Ex_a_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Ex_a_2)
{
return 1;
}
*K_Ex_b_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Ex_b_2)
{
return 1;
}
*K_Ex_c_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Ex_c_2)
{
return 1;
}
*K_Ex_d_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Ex_d_2)
{
return 1;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Ey field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Ey(double **K_Gy_a_1, double **K_Gy_b_1, double **K_Ey_a_1,
double **K_Ey_b_1, double **K_Ey_c_1, double **K_Ey_d_1,
double **K_Gy_a_2, double **K_Gy_b_2, double **K_Ey_a_2,
double **K_Ey_b_2, double **K_Ey_c_2, double **K_Ey_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//1
*K_Gy_a_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Gy_a_1)
{
return 1;
}
*K_Gy_b_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Gy_b_1)
{
return 1;
}
*K_Ey_a_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Ey_a_1)
{
return 1;
}
*K_Ey_b_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Ey_b_1)
{
return 1;
}
*K_Ey_c_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Ey_c_1)
{
return 1;
}
*K_Ey_d_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Ey_d_1)
{
return 1;
}
//2
*K_Gy_a_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Gy_a_2)
{
return 1;
}
*K_Gy_b_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Gy_b_2)
{
return 1;
}
*K_Ey_a_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Ey_a_2)
{
return 1;
}
*K_Ey_b_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Ey_b_2)
{
return 1;
}
*K_Ey_c_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Ey_c_2)
{
return 1;
}
*K_Ey_d_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Ey_d_2)
{
return 1;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Ez field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Ez(double **K_Gz_a_1, double **K_Gz_b_1, double **K_Ez_a_1,
double **K_Ez_b_1, double **K_Ez_c_1, double **K_Ez_d_1,
double **K_Gz_a_2, double **K_Gz_b_2, double **K_Ez_a_2,
double **K_Ez_b_2, double **K_Ez_c_2, double **K_Ez_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//1
*K_Gz_a_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Gz_a_1)
{
return 1;
}
*K_Gz_b_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Gz_b_1)
{
return 1;
}
*K_Ez_a_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Ez_a_1)
{
return 1;
}
*K_Ez_b_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Ez_b_1)
{
return 1;
}
*K_Ez_c_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Ez_c_1)
{
return 1;
}
*K_Ez_d_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Ez_d_1)
{
return 1;
}
//2
*K_Gz_a_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Gz_a_2)
{
return 1;
}
*K_Gz_b_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Gz_b_2)
{
return 1;
}
*K_Ez_a_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Ez_a_2)
{
return 1;
}
*K_Ez_b_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Ez_b_2)
{
return 1;
}
*K_Ez_c_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Ez_c_2)
{
return 1;
}
*K_Ez_d_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Ez_d_2)
{
return 1;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Hx field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Hx(double **K_Bx_a_1, double **K_Bx_b_1, double **K_Hx_a_1,
double **K_Hx_b_1, double **K_Hx_c_1, double **K_Hx_d_1,
double **K_Bx_a_2, double **K_Bx_b_2, double **K_Hx_a_2,
double **K_Hx_b_2, double **K_Hx_c_2, double **K_Hx_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//1
*K_Bx_a_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Bx_a_1)
{
return 1;
}
*K_Bx_b_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Bx_b_1)
{
return 1;
}
*K_Hx_a_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Hx_a_1)
{
return 1;
}
*K_Hx_b_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Hx_b_1)
{
return 1;
}
*K_Hx_c_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Hx_c_1)
{
return 1;
}
*K_Hx_d_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Hx_d_1)
{
return 1;
}
//2
*K_Bx_a_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Bx_a_2)
{
return 1;
}
*K_Bx_b_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Bx_b_2)
{
return 1;
}
*K_Hx_a_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Hx_a_2)
{
return 1;
}
*K_Hx_b_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Hx_b_2)
{
return 1;
}
*K_Hx_c_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Hx_c_2)
{
return 1;
}
*K_Hx_d_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Hx_d_2)
{
return 1;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Hy field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Hy(double **K_By_a_1, double **K_By_b_1, double **K_Hy_a_1,
double **K_Hy_b_1, double **K_Hy_c_1, double **K_Hy_d_1,
double **K_By_a_2, double **K_By_b_2, double **K_Hy_a_2,
double **K_Hy_b_2, double **K_Hy_c_2, double **K_Hy_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//PML-Hy field
//1
*K_By_a_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_By_a_1)
{
return 1;
}
*K_By_b_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_By_b_1)
{
return 1;
}
*K_Hy_a_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Hy_a_1)
{
return 1;
}
*K_Hy_b_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Hy_b_1)
{
return 1;
}
*K_Hy_c_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Hy_c_1)
{
return 1;
}
*K_Hy_d_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Hy_d_1)
{
return 1;
}
//2
*K_By_a_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_By_a_2)
{
return 1;
}
*K_By_b_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_By_b_2)
{
return 1;
}
*K_Hy_a_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Hy_a_2)
{
return 1;
}
*K_Hy_b_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Hy_b_2)
{
return 1;
}
*K_Hy_c_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Hy_c_2)
{
return 1;
}
*K_Hy_d_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Hy_d_2)
{
return 1;
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////
//Allocate memory for the PML parameters - Hz field component
///////////////////////////////////////////////////////////////////////////////////////
int Alloc_PML_Hz(double **K_Bz_a_1, double **K_Bz_b_1, double **K_Hz_a_1,
double **K_Hz_b_1, double **K_Hz_c_1, double **K_Hz_d_1,
double **K_Bz_a_2, double **K_Bz_b_2, double **K_Hz_a_2,
double **K_Hz_b_2, double **K_Hz_c_2, double **K_Hz_d_2,
long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2)
{
//PML-Hz field
//1
*K_Bz_a_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Bz_a_1)
{
return 1;
}
*K_Bz_b_1 = (double *)calloc(nPML_x_1,sizeof(double));
if(!*K_Bz_b_1)
{
return 1;
}
*K_Hz_a_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Hz_a_1)
{
return 1;
}
*K_Hz_b_1 = (double *)calloc(nPML_y_1,sizeof(double));
if(!*K_Hz_b_1)
{
return 1;
}
*K_Hz_c_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Hz_c_1)
{
return 1;
}
*K_Hz_d_1 = (double *)calloc(nPML_z_1,sizeof(double));
if(!*K_Hz_d_1)
{
return 1;
}
//2
*K_Bz_a_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Bz_a_2)
{
return 1;
}
*K_Bz_b_2 = (double *)calloc(nPML_x_2,sizeof(double));
if(!*K_Bz_b_2)
{
return 1;
}
*K_Hz_a_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Hz_a_2)
{
return 1;
}
*K_Hz_b_2 = (double *)calloc(nPML_y_2,sizeof(double));
if(!*K_Hz_b_2)
{
return 1;
}
*K_Hz_c_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Hz_c_2)
{
return 1;
}
*K_Hz_d_2 = (double *)calloc(nPML_z_2,sizeof(double));
if(!*K_Hz_d_2)
{
return 1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -