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

📄 alloc_save_load_field_thread.cpp

📁 利用c++语言写的三维FDTD
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	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 + -