📄 alloc_save_load_field_thread.cpp
字号:
Allocate_FGE_z->size[26][0] = nPML_x_2;
Allocate_FGE_z->size[26][1] = nPML_y_2;
Allocate_FGE_z->size[26][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Fz_19
Allocate_FGE_z->size[27][0] = nPML_x_1;
Allocate_FGE_z->size[27][1] = nPML_y_1;
Allocate_FGE_z->size[27][2] = nPML_z_2;
//Gz_19
Allocate_FGE_z->size[28][0] = nPML_x_1;
Allocate_FGE_z->size[28][1] = nPML_y_1;
Allocate_FGE_z->size[28][2] = nPML_z_2;
//Fz_20
Allocate_FGE_z->size[29][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_FGE_z->size[29][1] = nPML_y_1;
Allocate_FGE_z->size[29][2] = nPML_z_2;
//Fz_21
Allocate_FGE_z->size[30][0] = nPML_x_2;
Allocate_FGE_z->size[30][1] = nPML_y_1;
Allocate_FGE_z->size[30][2] = nPML_z_2;
//Gz_21
Allocate_FGE_z->size[31][0] = nPML_x_2;
Allocate_FGE_z->size[31][1] = nPML_y_1;
Allocate_FGE_z->size[31][2] = nPML_z_2;
//Fz_22
Allocate_FGE_z->size[32][0] = nPML_x_1;
Allocate_FGE_z->size[32][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_FGE_z->size[32][2] = nPML_z_2;
//Gz_22
Allocate_FGE_z->size[33][0] = nPML_x_1;
Allocate_FGE_z->size[33][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_FGE_z->size[33][2] = nPML_z_2;
//Fz_23
Allocate_FGE_z->size[34][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_FGE_z->size[34][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_FGE_z->size[34][2] = nPML_z_2;
//Fz_24
Allocate_FGE_z->size[35][0] = nPML_x_2;
Allocate_FGE_z->size[35][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_FGE_z->size[35][2] = nPML_z_2;
//Gz_24
Allocate_FGE_z->size[36][0] = nPML_x_2;
Allocate_FGE_z->size[36][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_FGE_z->size[36][2] = nPML_z_2;
//Fz_25
Allocate_FGE_z->size[37][0] = nPML_x_1;
Allocate_FGE_z->size[37][1] = nPML_y_2;
Allocate_FGE_z->size[37][2] = nPML_z_2;
//Gz_25
Allocate_FGE_z->size[38][0] = nPML_x_1;
Allocate_FGE_z->size[38][1] = nPML_y_2;
Allocate_FGE_z->size[38][2] = nPML_z_2;
//Fz_26
Allocate_FGE_z->size[39][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_FGE_z->size[39][1] = nPML_y_2;
Allocate_FGE_z->size[39][2] = nPML_z_2;
//Fz_27
Allocate_FGE_z->size[40][0] = nPML_x_2;
Allocate_FGE_z->size[40][1] = nPML_y_2;
Allocate_FGE_z->size[40][2] = nPML_z_2;
//Gz_27
Allocate_FGE_z->size[41][0] = nPML_x_2;
Allocate_FGE_z->size[41][1] = nPML_y_2;
Allocate_FGE_z->size[41][2] = nPML_z_2;
//Ez
Allocate_FGE_z->size[42][0] = nx;
Allocate_FGE_z->size[42][1] = ny;
Allocate_FGE_z->size[42][2] = nz - 1;
}
////////////////////////////////////////////////////////////////////
//Collect the information - Hx field
////////////////////////////////////////////////////////////////////
void Init_Alloc_BxHx(Allocate_H_comp *Allocate_BH_x, double ***&Bx_1, double ***&Bx_2,
double ***&Bx_3, double ***&Bx_4, double ***&Bx_6, double ***&Bx_7,
double ***&Bx_8, double ***&Bx_9, double ***&Bx_10, double ***&Bx_12,
double ***&Bx_13, double ***&Bx_15, double ***&Bx_16, double ***&Bx_18,
double ***&Bx_19, double ***&Bx_20, double ***&Bx_21, double ***&Bx_22,
double ***&Bx_24, double ***&Bx_25, double ***&Bx_26, double ***&Bx_27,
double ***&Hx, long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2, long nx, long ny, long nz)
{
long nx_MIN_nPML_x_1_MIN_nPML_x_2 = nx - nPML_x_1 - nPML_x_2;
long ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2 = ny - 1 - nPML_y_1 - nPML_y_2;
long nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2 = nz - 1 - nPML_z_1 - nPML_z_2;
Allocate_BH_x->A[0] = &Bx_1; Allocate_BH_x->A[1] = &Bx_2; Allocate_BH_x->A[2] = &Bx_3;
Allocate_BH_x->A[3] = &Bx_4; Allocate_BH_x->A[4] = &Bx_6; Allocate_BH_x->A[5] = &Bx_7;
Allocate_BH_x->A[6] = &Bx_8; Allocate_BH_x->A[7] = &Bx_9; Allocate_BH_x->A[8] = &Bx_10;
Allocate_BH_x->A[9] = &Bx_12; Allocate_BH_x->A[10] = &Bx_13; Allocate_BH_x->A[11] = &Bx_15;
Allocate_BH_x->A[12] = &Bx_16; Allocate_BH_x->A[13] = &Bx_18; Allocate_BH_x->A[14] = &Bx_19;
Allocate_BH_x->A[15] = &Bx_20; Allocate_BH_x->A[16] = &Bx_21; Allocate_BH_x->A[17] = &Bx_22;
Allocate_BH_x->A[18] = &Bx_24; Allocate_BH_x->A[19] = &Bx_25; Allocate_BH_x->A[20] = &Bx_26;
Allocate_BH_x->A[21] = &Bx_27; Allocate_BH_x->A[22] = &Hx;
Allocate_BH_x->er = 0;
strcpy(&Allocate_BH_x->name[0][0],"Bx_1"); strcpy(&Allocate_BH_x->name[1][0],"Bx_2");
strcpy(&Allocate_BH_x->name[2][0],"Bx_3"); strcpy(&Allocate_BH_x->name[3][0],"Bx_4");
strcpy(&Allocate_BH_x->name[4][0],"Bx_6"); strcpy(&Allocate_BH_x->name[5][0],"Bx_7");
strcpy(&Allocate_BH_x->name[6][0],"Bx_8"); strcpy(&Allocate_BH_x->name[7][0],"Bx_9");
strcpy(&Allocate_BH_x->name[8][0],"Bx_10"); strcpy(&Allocate_BH_x->name[9][0],"Bx_12");
strcpy(&Allocate_BH_x->name[10][0],"Bx_13"); strcpy(&Allocate_BH_x->name[11][0],"Bx_15");
strcpy(&Allocate_BH_x->name[12][0],"Bx_16"); strcpy(&Allocate_BH_x->name[13][0],"Bx_18");
strcpy(&Allocate_BH_x->name[14][0],"Bx_19"); strcpy(&Allocate_BH_x->name[15][0],"Bx_20");
strcpy(&Allocate_BH_x->name[16][0],"Bx_21"); strcpy(&Allocate_BH_x->name[17][0],"Bx_22");
strcpy(&Allocate_BH_x->name[18][0],"Bx_24"); strcpy(&Allocate_BH_x->name[19][0],"Bx_25");
strcpy(&Allocate_BH_x->name[20][0],"Bx_26"); strcpy(&Allocate_BH_x->name[21][0],"Bx_27");
strcpy(&Allocate_BH_x->name[22][0],"Hx");
//Bx_1
Allocate_BH_x->size[0][0] = nPML_x_1;
Allocate_BH_x->size[0][1] = nPML_y_1;
Allocate_BH_x->size[0][2] = nPML_z_1;
//Bx_2
Allocate_BH_x->size[1][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_x->size[1][1] = nPML_y_1;
Allocate_BH_x->size[1][2] = nPML_z_1;
//Bx_3
Allocate_BH_x->size[2][0] = nPML_x_2;
Allocate_BH_x->size[2][1] = nPML_y_1;
Allocate_BH_x->size[2][2] = nPML_z_1;
//Bx_4
Allocate_BH_x->size[3][0] = nPML_x_1;
Allocate_BH_x->size[3][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[3][2] = nPML_z_1;
//Bx_6
Allocate_BH_x->size[4][0] = nPML_x_2;
Allocate_BH_x->size[4][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[4][2] = nPML_z_1;
//Bx_7
Allocate_BH_x->size[5][0] = nPML_x_1;
Allocate_BH_x->size[5][1] = nPML_y_2;
Allocate_BH_x->size[5][2] = nPML_z_1;
//Bx_8
Allocate_BH_x->size[6][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_x->size[6][1] = nPML_y_2;
Allocate_BH_x->size[6][2] = nPML_z_1;
//Bx_9
Allocate_BH_x->size[7][0] = nPML_x_2;
Allocate_BH_x->size[7][1] = nPML_y_2;
Allocate_BH_x->size[7][2] = nPML_z_1;
//Bx_10
Allocate_BH_x->size[8][0] = nPML_x_1;
Allocate_BH_x->size[8][1] = nPML_y_1;
Allocate_BH_x->size[8][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_12
Allocate_BH_x->size[9][0] = nPML_x_2;
Allocate_BH_x->size[9][1] = nPML_y_1;
Allocate_BH_x->size[9][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_13
Allocate_BH_x->size[10][0] = nPML_x_1;
Allocate_BH_x->size[10][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[10][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_15
Allocate_BH_x->size[11][0] = nPML_x_2;
Allocate_BH_x->size[11][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[11][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_16
Allocate_BH_x->size[12][0] = nPML_x_1;
Allocate_BH_x->size[12][1] = nPML_y_2;
Allocate_BH_x->size[12][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_18
Allocate_BH_x->size[13][0] = nPML_x_2;
Allocate_BH_x->size[13][1] = nPML_y_2;
Allocate_BH_x->size[13][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//Bx_19
Allocate_BH_x->size[14][0] = nPML_x_1;
Allocate_BH_x->size[14][1] = nPML_y_1;
Allocate_BH_x->size[14][2] = nPML_z_2;
//Bx_20
Allocate_BH_x->size[15][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_x->size[15][1] = nPML_y_1;
Allocate_BH_x->size[15][2] = nPML_z_2;
//Bx_21
Allocate_BH_x->size[16][0] = nPML_x_2;
Allocate_BH_x->size[16][1] = nPML_y_1;
Allocate_BH_x->size[16][2] = nPML_z_2;
//Bx_22
Allocate_BH_x->size[17][0] = nPML_x_1;
Allocate_BH_x->size[17][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[17][2] = nPML_z_2;
//Bx_24
Allocate_BH_x->size[18][0] = nPML_x_2;
Allocate_BH_x->size[18][1] = ny_MIN_1_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_x->size[18][2] = nPML_z_2;
//Bx_25
Allocate_BH_x->size[19][0] = nPML_x_1;
Allocate_BH_x->size[19][1] = nPML_y_2;
Allocate_BH_x->size[19][2] = nPML_z_2;
//Bx_26
Allocate_BH_x->size[20][0] = nx_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_x->size[20][1] = nPML_y_2;
Allocate_BH_x->size[20][2] = nPML_z_2;
//Bx_27
Allocate_BH_x->size[21][0] = nPML_x_2;
Allocate_BH_x->size[21][1] = nPML_y_2;
Allocate_BH_x->size[21][2] = nPML_z_2;
//Hx
Allocate_BH_x->size[22][0] = nx;
Allocate_BH_x->size[22][1] = ny - 1;
Allocate_BH_x->size[22][2] = nz - 1;
}
////////////////////////////////////////////////////////////////////
//Collect the information - Hy field
////////////////////////////////////////////////////////////////////
void Init_Alloc_ByHy(Allocate_H_comp *Allocate_BH_y, double ***&By_1, double ***&By_2,
double ***&By_3, double ***&By_4, double ***&By_6, double ***&By_7,
double ***&By_8, double ***&By_9, double ***&By_10, double ***&By_11,
double ***&By_12, double ***&By_16, double ***&By_17, double ***&By_18,
double ***&By_19, double ***&By_20, double ***&By_21, double ***&By_22,
double ***&By_24, double ***&By_25, double ***&By_26, double ***&By_27,
double ***&Hy, long nPML_x_1, long nPML_y_1, long nPML_z_1, long nPML_x_2,
long nPML_y_2, long nPML_z_2, long nx, long ny, long nz)
{
long nx_MIN_1_MIN_nPML_x_1_MIN_nPML_x_2 = nx - 1 - nPML_x_1 - nPML_x_2;
long ny_MIN_nPML_y_1_MIN_nPML_y_2 = ny - nPML_y_1 - nPML_y_2;
long nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2 = nz - 1 - nPML_z_1 - nPML_z_2;
Allocate_BH_y->A[0] = &By_1; Allocate_BH_y->A[1] = &By_2; Allocate_BH_y->A[2] = &By_3;
Allocate_BH_y->A[3] = &By_4; Allocate_BH_y->A[4] = &By_6; Allocate_BH_y->A[5] = &By_7;
Allocate_BH_y->A[6] = &By_8; Allocate_BH_y->A[7] = &By_9; Allocate_BH_y->A[8] = &By_10;
Allocate_BH_y->A[9] = &By_11; Allocate_BH_y->A[10] = &By_12; Allocate_BH_y->A[11] = &By_16;
Allocate_BH_y->A[12] = &By_17; Allocate_BH_y->A[13] = &By_18; Allocate_BH_y->A[14] = &By_19;
Allocate_BH_y->A[15] = &By_20; Allocate_BH_y->A[16] = &By_21; Allocate_BH_y->A[17] = &By_22;
Allocate_BH_y->A[18] = &By_24; Allocate_BH_y->A[19] = &By_25; Allocate_BH_y->A[20] = &By_26;
Allocate_BH_y->A[21] = &By_27; Allocate_BH_y->A[22] = &Hy;
Allocate_BH_y->er = 0;
strcpy(&Allocate_BH_y->name[0][0],"By_1"); strcpy(&Allocate_BH_y->name[1][0],"By_2");
strcpy(&Allocate_BH_y->name[2][0],"By_3"); strcpy(&Allocate_BH_y->name[3][0],"By_4");
strcpy(&Allocate_BH_y->name[4][0],"By_6"); strcpy(&Allocate_BH_y->name[5][0],"By_7");
strcpy(&Allocate_BH_y->name[6][0],"By_8"); strcpy(&Allocate_BH_y->name[7][0],"By_9");
strcpy(&Allocate_BH_y->name[8][0],"By_10"); strcpy(&Allocate_BH_y->name[9][0],"By_11");
strcpy(&Allocate_BH_y->name[10][0],"By_12"); strcpy(&Allocate_BH_y->name[11][0],"By_16");
strcpy(&Allocate_BH_y->name[12][0],"By_17"); strcpy(&Allocate_BH_y->name[13][0],"By_18");
strcpy(&Allocate_BH_y->name[14][0],"By_19"); strcpy(&Allocate_BH_y->name[15][0],"By_20");
strcpy(&Allocate_BH_y->name[16][0],"By_21"); strcpy(&Allocate_BH_y->name[17][0],"By_22");
strcpy(&Allocate_BH_y->name[18][0],"By_24"); strcpy(&Allocate_BH_y->name[19][0],"By_25");
strcpy(&Allocate_BH_y->name[20][0],"By_26"); strcpy(&Allocate_BH_y->name[21][0],"By_27");
strcpy(&Allocate_BH_y->name[22][0],"Hy");
//By_1
Allocate_BH_y->size[0][0] = nPML_x_1;
Allocate_BH_y->size[0][1] = nPML_y_1;
Allocate_BH_y->size[0][2] = nPML_z_1;
//By_2
Allocate_BH_y->size[1][0] = nx_MIN_1_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_y->size[1][1] = nPML_y_1;
Allocate_BH_y->size[1][2] = nPML_z_1;
//By_3
Allocate_BH_y->size[2][0] = nPML_x_2;
Allocate_BH_y->size[2][1] = nPML_y_1;
Allocate_BH_y->size[2][2] = nPML_z_1;
//By_4
Allocate_BH_y->size[3][0] = nPML_x_1;
Allocate_BH_y->size[3][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_y->size[3][2] = nPML_z_1;
//By_6
Allocate_BH_y->size[4][0] = nPML_x_2;
Allocate_BH_y->size[4][1] = ny_MIN_nPML_y_1_MIN_nPML_y_2;
Allocate_BH_y->size[4][2] = nPML_z_1;
//By_7
Allocate_BH_y->size[5][0] = nPML_x_1;
Allocate_BH_y->size[5][1] = nPML_y_2;
Allocate_BH_y->size[5][2] = nPML_z_1;
//By_8
Allocate_BH_y->size[6][0] = nx_MIN_1_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_y->size[6][1] = nPML_y_2;
Allocate_BH_y->size[6][2] = nPML_z_1;
//By_9
Allocate_BH_y->size[7][0] = nPML_x_2;
Allocate_BH_y->size[7][1] = nPML_y_2;
Allocate_BH_y->size[7][2] = nPML_z_1;
//By_10
Allocate_BH_y->size[8][0] = nPML_x_1;
Allocate_BH_y->size[8][1] = nPML_y_1;
Allocate_BH_y->size[8][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//By_11
Allocate_BH_y->size[9][0] = nx_MIN_1_MIN_nPML_x_1_MIN_nPML_x_2;
Allocate_BH_y->size[9][1] = nPML_y_1;
Allocate_BH_y->size[9][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//By_12
Allocate_BH_y->size[10][0] = nPML_x_2;
Allocate_BH_y->size[10][1] = nPML_y_1;
Allocate_BH_y->size[10][2] = nz_MIN_1_MIN_nPML_z_1_MIN_nPML_z_2;
//By_16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -