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

📄 fdtd_3d_xyzpml_threads_decomp.cpp

📁 利用c++语言写的三维FDTD
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	pthread_t thread_FGE_x;
	pthread_t thread_FGE_y;
	pthread_t thread_FGE_z;
	pthread_t thread_BH_x;
	pthread_t thread_BH_y;
	pthread_t thread_BH_z;
	
	pthread_attr_t attr;
	pthread_attr_init(&attr);
	
	Allocate_E_comp *Allocate_FGE_x = NULL;
	Allocate_E_comp *Allocate_FGE_y = NULL;
	Allocate_E_comp *Allocate_FGE_z = NULL;
	Allocate_H_comp *Allocate_BH_x = NULL;
	Allocate_H_comp *Allocate_BH_y = NULL;
	Allocate_H_comp *Allocate_BH_z = NULL;
	
	Allocate_FGE_x = (Allocate_E_comp*)malloc(sizeof(Allocate_E_comp));
	Allocate_FGE_y = (Allocate_E_comp*)malloc(sizeof(Allocate_E_comp));
	Allocate_FGE_z = (Allocate_E_comp*)malloc(sizeof(Allocate_E_comp));
	Allocate_BH_x  = (Allocate_H_comp*)malloc(sizeof(Allocate_H_comp));
	Allocate_BH_y  = (Allocate_H_comp*)malloc(sizeof(Allocate_H_comp));
	Allocate_BH_z  = (Allocate_H_comp*)malloc(sizeof(Allocate_H_comp));
	if (!Allocate_FGE_x && !Allocate_FGE_y && !Allocate_FGE_z && !Allocate_BH_x && 
		!Allocate_BH_y && !Allocate_BH_z)
	{
		cout << "memory allocation problem - Allocate_FGE_BH" << endl;
		exit(-1);
	}

	//Allocate memory - Fx Gx Ex 
    Init_Alloc_FxGxEx(Allocate_FGE_x, Fx_1, Gx_1, Fx_2, Gx_2, Fx_3, Gx_3, Fx_4, Fx_5, Fx_6,
	                  Fx_7, Gx_7, Fx_8, Gx_8, Fx_9, Gx_9, Fx_10, Gx_10, Fx_11, Fx_12, Gx_12,
	 				  Fx_13, Fx_15, Fx_16, Gx_16, Fx_17, Fx_18, Gx_18, Fx_19, Gx_19, Fx_20, 
					  Gx_20, Fx_21, Gx_21, Fx_22, Fx_23, Fx_24, Fx_25, Gx_25, Fx_26, Gx_26,
					  Fx_27, Gx_27, Ex, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2, nPML_y_2,
					  nPML_z_2, nx, ny, nz);

	rc = pthread_create(&thread_FGE_x, &attr, Thread_Alloc_FGE, (void *)Allocate_FGE_x);
	if (rc)
	{
		cout << "thread creation problem - thread_FGE_x" << endl;
		exit(-1);
	}

	//Allocate memory - Fy, Gy, Ey
	Init_Alloc_FyGyEy(Allocate_FGE_y, Fy_1, Gy_1, Fy_2, Gy_2, Fy_3, Gy_3, Fy_4, Gy_4, Fy_5, 
		              Fy_6, Gy_6, Fy_7, Gy_7, Fy_8, Gy_8, Fy_9, Gy_9, Fy_10, Fy_11, Fy_12, 
					  Fy_13, Fy_15, Fy_16, Fy_17, Fy_18, Fy_19, Gy_19, Fy_20, Gy_20, Fy_21,
					  Gy_21, Fy_22, Gy_22, Fy_23, Fy_24, Gy_24, Fy_25, Gy_25, Fy_26, Gy_26, 
					  Fy_27, Gy_27, Ey, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2, nPML_y_2, 
					  nPML_z_2, nx, ny, nz);
	
	rc = pthread_create(&thread_FGE_y, &attr, Thread_Alloc_FGE, (void *)Allocate_FGE_y);
	if (rc)
	{
		cout << "thread creation problem - thread_FGE_y" << endl;
		exit(-1);
	}
	
	//Allocate memory - Fz, Gz, Ez
	Init_Alloc_FzGzEz(Allocate_FGE_z, Fz_1, Gz_1, Fz_2, Fz_3, Gz_3, Fz_4, Gz_4, Fz_5, Fz_6,
		              Gz_6, Fz_7, Gz_7, Fz_8, Fz_9, Gz_9, Fz_10, Gz_10, Fz_11, Fz_12, Gz_12,
					  Fz_13, Fz_15, Fz_16, Gz_16, Fz_17, Fz_18, Gz_18, Fz_19, Gz_19, Fz_20, 
					  Fz_21, Gz_21, Fz_22, Gz_22, Fz_23, Fz_24, Gz_24, Fz_25, Gz_25, Fz_26,
					  Fz_27, Gz_27, Ez, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2, nPML_y_2,
					  nPML_z_2, nx, ny, nz);
	
	rc = pthread_create(&thread_FGE_z, &attr, Thread_Alloc_FGE, (void *)Allocate_FGE_z);
	if (rc)
	{
		cout << "thread creation problem - thread_FGE_z" << endl;
		exit(-1);
	}
	
	//Allocate memory - Bx, Hx
	Init_Alloc_BxHx(Allocate_BH_x, Bx_1, Bx_2, Bx_3, Bx_4, Bx_6, Bx_7, Bx_8, Bx_9, Bx_10,
		            Bx_12, Bx_13, Bx_15, Bx_16, Bx_18, Bx_19, Bx_20, Bx_21, Bx_22, Bx_24, 
					Bx_25, Bx_26, Bx_27, Hx, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2, 
					nPML_y_2, nPML_z_2, nx, ny, nz);
	rc = pthread_create(&thread_BH_x, &attr, Thread_Alloc_BH, (void *)Allocate_BH_x);
	if (rc)
	{
		cout << "thread creation problem - thread_BH_x" << endl;
		exit(-1);
	}

	//Allocate memory - By, Hy
	Init_Alloc_ByHy(Allocate_BH_y, By_1, By_2, By_3, By_4, By_6, By_7, By_8, By_9, By_10,
		            By_11, By_12, By_16, By_17, By_18, By_19, By_20, By_21, By_22, By_24, 
					By_25, By_26, By_27, Hy, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2,
				    nPML_y_2, nPML_z_2, nx, ny, nz);
	rc = pthread_create(&thread_BH_y, &attr, Thread_Alloc_BH, (void *)Allocate_BH_y);
	if (rc)
	{
		cout << "thread creation problem - thread_BH_y" << endl;
		exit(-1);
	}

	//Allocate memory - Bz, Hz
	Init_Alloc_BzHz(Allocate_BH_z, Bz_1, Bz_2, Bz_3, Bz_4, Bz_5, Bz_6, Bz_7, Bz_8, Bz_9, 
		            Bz_10, Bz_12, Bz_16, Bz_18, Bz_19, Bz_20, Bz_21, Bz_22, Bz_23, Bz_24, 
					Bz_25, Bz_26, Bz_27, Hz, nPML_x_1, nPML_y_1, nPML_z_1, nPML_x_2,
				    nPML_y_2, nPML_z_2, nx, ny, nz);
	rc = pthread_create(&thread_BH_z, &attr, Thread_Alloc_BH, (void *)Allocate_BH_z);
	if (rc)
	{
		cout << "thread creation problem - thread_BH_z" << endl;
		exit(-1);
	}
	///////////////////////////////////////////////////////////////////////////////////////
	//end parallel memory allocation region
	///////////////////////////////////////////////////////////////////////////////////////
	
	//allocates memory for coefficients containing the PML parameters in Ex
	er_PML_Ex = Alloc_PML_Ex(&K_Gx_a_1, &K_Gx_b_1, &K_Ex_a_1, &K_Ex_b_1, &K_Ex_c_1, 
		                     &K_Ex_d_1, &K_Gx_a_2, &K_Gx_b_2, &K_Ex_a_2, &K_Ex_b_2, 
							 &K_Ex_c_2, &K_Ex_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	//allocates memory for coefficients containing the PML parameters in Ey
	er_PML_Ey = Alloc_PML_Ey(&K_Gy_a_1, &K_Gy_b_1, &K_Ey_a_1, &K_Ey_b_1, &K_Ey_c_1, 
		                     &K_Ey_d_1, &K_Gy_a_2, &K_Gy_b_2, &K_Ey_a_2, &K_Ey_b_2,
							 &K_Ey_c_2, &K_Ey_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	//allocates memory for coefficients containing the PML parameters in Ez
	er_PML_Ez = Alloc_PML_Ez(&K_Gz_a_1, &K_Gz_b_1, &K_Ez_a_1, &K_Ez_b_1, &K_Ez_c_1, 
		                     &K_Ez_d_1, &K_Gz_a_2, &K_Gz_b_2, &K_Ez_a_2, &K_Ez_b_2,
							 &K_Ez_c_2, &K_Ez_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	//allocates memory for coefficients containing the PML parameters in Hx
	er_PML_Hx = Alloc_PML_Hx(&K_Bx_a_1, &K_Bx_b_1, &K_Hx_a_1, &K_Hx_b_1, &K_Hx_c_1, 
		                     &K_Hx_d_1, &K_Bx_a_2, &K_Bx_b_2, &K_Hx_a_2, &K_Hx_b_2,
							 &K_Hx_c_2, &K_Hx_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	//allocates memory for coefficients containing the PML parameters in Hy
	er_PML_Hy = Alloc_PML_Hy(&K_By_a_1, &K_By_b_1, &K_Hy_a_1, &K_Hy_b_1, &K_Hy_c_1, 
		                     &K_Hy_d_1, &K_By_a_2, &K_By_b_2, &K_Hy_a_2, &K_Hy_b_2,
							 &K_Hy_c_2, &K_Hy_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	//allocates memory for coefficients containing the PML parameters in Hz
	er_PML_Hz = Alloc_PML_Hz(&K_Bz_a_1, &K_Bz_b_1, &K_Hz_a_1, &K_Hz_b_1, &K_Hz_c_1, 
		                     &K_Hz_d_1, &K_Bz_a_2, &K_Bz_b_2, &K_Hz_a_2, &K_Hz_b_2,
							 &K_Hz_c_2, &K_Hz_d_2, nPML_x_1, nPML_y_1, nPML_z_1, 
							 nPML_x_2, nPML_y_2, nPML_z_2);

	
	//allocates memory for coefficients containing the material parameters
	K_a = (double *)calloc(n_Mat,sizeof(double)); 
	K_b = (double *)calloc(n_Mat,sizeof(double));
	K_a_thread = Init_Matrix_2D<double>(nr_Threads,n_Mat);
	K_b_thread = Init_Matrix_2D<double>(nr_Threads,n_Mat);
	mu_thread  = Init_Matrix_2D<double>(nr_Threads,n_Mat);

	Path =(char *) calloc(256,sizeof(char));
	Path_Data =(char *) calloc(256,sizeof(char));
	path_name_E_1D = (char *) calloc(256,sizeof(char)); 
	path_name_Ex = (char *) calloc(256,sizeof(char)); 
	path_name_Ey = (char *) calloc(256,sizeof(char));
	path_name_Ez = (char *) calloc(256,sizeof(char));
	path_name_Hx = (char *) calloc(256,sizeof(char)); 
	path_name_Hy = (char *) calloc(256,sizeof(char));
	path_name_Hz = (char *) calloc(256,sizeof(char));
	
	Ex_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);
	Ey_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);
	Ez_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);
	Hx_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);
	Hy_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);
	Hz_Foll = Init_Matrix_2D<double>(n_Ind_F,num_iter);

	if (Inp_D->aver_field_volume == 1)
	{
		//E_Foll_av =  (double *)calloc(num_iter,sizeof(double));
		Ex_Foll_av = (double *)calloc(num_iter,sizeof(double));
		Ey_Foll_av = (double *)calloc(num_iter,sizeof(double));
		Ez_Foll_av = (double *)calloc(num_iter,sizeof(double));
		Hx_Foll_av = (double *)calloc(num_iter,sizeof(double));
		Hy_Foll_av = (double *)calloc(num_iter,sizeof(double));
		Hz_Foll_av = (double *)calloc(num_iter,sizeof(double));
	}

	if (Inp_D->aver_field_volume_WignerUC == 1)
	{
		Ex_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
		Ey_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
		Ez_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
		Hx_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
		Hy_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
		Hz_Foll_av_WignerC = (double *)calloc(num_iter,sizeof(double));
	}

	if(Inp_D->aver_Bragg_WignerUC)
	{
		Ex_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Ex_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Ey_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Ey_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Ez_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Ez_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hx_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hx_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hy_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hy_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hz_Br_av_re = Init_Matrix_2D<double>(n_Gxyz,num_iter);
		Hz_Br_av_im = Init_Matrix_2D<double>(n_Gxyz,num_iter);
	}
	
	if(Inp_D->fourier_transf_vol == 1)
	{
		Ex_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Ex_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Ey_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Ey_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Ez_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Ez_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);

		Hx_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Hx_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Hy_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Hy_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Hz_fourier_TR_re = Init_Matrix_2D<double>(n_f_Points,n_frec);
		Hz_fourier_TR_im = Init_Matrix_2D<double>(n_f_Points,n_frec);
		fourier_omega =  (double *) calloc(n_frec,sizeof(double));
	}

	//Contains the id of the created threads
	//for field calculation
	field_threads = (pthread_t *)calloc(nr_Threads,sizeof(pthread_t));
	//pass the data to threads
	Data_Ex_PML  = (Data_E_comp_PML *)calloc( 26,sizeof(Data_E_comp_PML) );
	Data_Ex  = (Data_E_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_E_comp));
	Data_Ey_PML  = (Data_E_comp_PML *)calloc( 26,sizeof(Data_E_comp_PML) );
	Data_Ey  = (Data_E_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_E_comp));
	Data_Ez_PML  = (Data_E_comp_PML *)calloc( 26,sizeof(Data_E_comp_PML) );
	Data_Ez  = (Data_E_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_E_comp));

	Data_Hx_PML  = (Data_H_comp_PML *)calloc( 26,sizeof(Data_H_comp_PML) );
	Data_Hx  = (Data_H_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_H_comp));
	Data_Hy_PML  = (Data_H_comp_PML *)calloc( 26,sizeof(Data_H_comp_PML) );
	Data_Hy  = (Data_H_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_H_comp));
	Data_Hz_PML  = (Data_H_comp_PML *)calloc( 26,sizeof(Data_H_comp_PML) );
	Data_Hz  = (Data_H_comp *)calloc( nr_DIV_xORyORz,sizeof(Data_H_comp));

	bool jel_alloc_W = true;
	#ifdef eval_W
		W = (double ***)Init_Matrix_3D<double>(nx_W,ny_W,nz_W);
		W_aver = (double *)calloc(n_W_atl,sizeof(double));
		W_aver_xz = (double *)calloc(ny_W,sizeof(double));
		W_aver_xzt = (double *)calloc(ny_W,sizeof(double));
		eval_W_thread = (pthread_t *)calloc(nr_Threads_W,sizeof(pthread_t));
		Data_W  = (Data_En *)calloc( nr_Threads_W,sizeof(Data_En));
		local_W_aver = (double *)calloc(nr_Threads_W,sizeof(double));
		path_name_W = (char *) calloc(256,sizeof(char));
		
		if (save_W)
		{
			data_save_threads_W_xy = (pthread_t *)calloc(Save_nr_W_DIV_xORy,sizeof(pthread_t));
			data_save_threads_W_yz = (pthread_t *)calloc(Save_nr_W_DIV_yORz,sizeof(pthread_t));
			data_save_threads_W_xz = (pthread_t *)calloc(Save_nr_W_DIV_xORz,sizeof(pthread_t));

			//xy - slice
			Save_W_xy = (Data_Save_Slice *)calloc(Save_nr_W_DIV_xORy, sizeof(Data_Save_Slice) );
			//xy - slice
			Save_W_yz = (Data_Save_Slice *)calloc(Save_nr_W_DIV_yORz, sizeof(Data_Save_Slice) );
			//xz - slice
			Save_W_xz = (Data_Save_Slice *)calloc(Save_nr_W_DIV_xORz, sizeof(Data_Save_Slice) );
		}

		if (!W && !W_aver && !eval_W_thread && !Data_W && !local_W_aver && !path_name_W &&
			!W_aver_xz && !W_aver_xzt &&
			(!save_W || (!data_save_threads_W_xy && !data_save_threads_W_yz && 
			!data_save_threads_W_xz && !Save_W_xy && !Save_W_yz && !Save_W_xz)))
		{
			jel_alloc_W = false;
		}
	#endif
	
	//for data save
	if (save_field)
	{
		//xy - slice
		data_save_threads_Ex_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ey_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ez_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hx_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hy_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hz_xy = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		//yz - slice
		data_save_threads_Ex_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ey_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ez_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hx_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hy_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hz_yz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		//xz - slice
		data_save_threads_Ex_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ey_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Ez_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hx_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hy_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
		data_save_threads_Hz_xz = (pthread_t *)calloc(Save_nr_DIV_xORy,sizeof(pthread_t));
	
		//used to pass parameters to Data save threads
		//xy - slice
		Save_Ex_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		Save_Ey_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		Save_Ez_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		Save_Hx_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		Save_Hy_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		Save_Hz_xy = (Data_Save_Slice *)calloc(Save_nr_DIV_xORy, sizeof(Data_Save_Slice) );
		//xy - slice
		Save_Ex_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		Save_Ey_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		Save_Ez_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		Save_Hx_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		Save_Hy_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		Save_Hz_yz = (Data_Save_Slice *)calloc(Save_nr_DIV_yORz, sizeof(Data_Save_Slice) );
		//xz - slice
		Save_Ex_xz = (Data_Save_Slice *)calloc(Save_nr_DIV_xORz, sizeof(Data_Save_Slice) );
		Save_Ey_xz = (Data_Save_Slice *)calloc(Save_nr_DIV_xORz, sizeof(Data_Save_Slice) );
		Save_Ez_xz = (Data_Save_Slice *)calloc(Save_nr_DIV_xORz, sizeof(Data_Save_Slice) );
		Save_Hx_xz = (Data_Save_Slice *)calloc(Save_nr_DIV_xORz, sizeof(Data_Save_Slice) );
		Save_Hy_xz = (Data_Save_Slice *)calloc(Save_nr_DIV_xORz, sizeof(Data_Save_Slice) );

⌨️ 快捷键说明

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