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

📄 fdtd_3d_free.cpp

📁 利用c++语言写的三维FDTD
💻 CPP
📖 第 1 页 / 共 3 页
字号:
						Data_E_comp **Data_Ey, Data_E_comp_PML **Data_Ez_PML,
						Data_E_comp **Data_Ez, Data_H_comp_PML **Data_Hx_PML,
						Data_H_comp **Data_Hx, Data_H_comp_PML **Data_Hy_PML,
						Data_H_comp **Data_Hy, Data_H_comp_PML **Data_Hz_PML,
						Data_H_comp **Data_Hz, double ***K_a_thread, 
						double ***K_b_thread, double ***mu_thread)
{
		if (*field_threads)
		{
			free(*field_threads);
			*field_threads = NULL;
		}

		//the E components
		if (*Data_Ex_PML)
		{
			free(*Data_Ex_PML);
			*Data_Ex_PML = NULL;
		}

		if (*Data_Ex)
		{
			free(*Data_Ex);
			*Data_Ex = NULL;
		}

		if (*Data_Ey_PML)
		{
			free(*Data_Ey_PML);
			*Data_Ey_PML = NULL;
		}

		if (*Data_Ey)
		{
			free(*Data_Ey);
			*Data_Ey = NULL;
		}

		if (*Data_Ez_PML)
		{
			free(*Data_Ez_PML);
			*Data_Ez_PML = NULL;
		}

		if (*Data_Ez)
		{
			free(*Data_Ez);
			*Data_Ez = NULL;
		}

		///the H components
		if (*Data_Hx_PML)
		{
			free(*Data_Hx_PML);
			*Data_Hx_PML = NULL;
		}

		if (*Data_Hx)
		{
			free(*Data_Hx);
			*Data_Hx = NULL;
		}

		if (*Data_Hy_PML)
		{
			free(*Data_Hy_PML);
			*Data_Hy_PML = NULL;
		}

		if (*Data_Hy)
		{
			free(*Data_Hy);
			*Data_Hy = NULL;
		}

		if (*Data_Hz_PML)
		{
			free(*Data_Hz_PML);
			*Data_Hz_PML = NULL;
		}

		if (*Data_Hz)
		{
			free(*Data_Hz);
			*Data_Hz = NULL;
		}
		
		if(*K_a_thread)
			*K_a_thread = Free_Matrix_2D<double>(*K_a_thread);
		if(*K_b_thread)
			*K_b_thread = Free_Matrix_2D<double>(*K_b_thread);
		if(*mu_thread)
			*mu_thread  = Free_Matrix_2D<double>(*mu_thread);
}

void Free_Data_SaveThreads_Param( 
	 pthread_t **data_save_threads_Ex_xy, pthread_t **data_save_threads_Ey_xy, 
	 pthread_t **data_save_threads_Ez_xy, pthread_t **data_save_threads_Hx_xy,
	 pthread_t **data_save_threads_Hy_xy, pthread_t **data_save_threads_Hz_xy,
	 pthread_t **data_save_threads_Ex_yz, pthread_t **data_save_threads_Ey_yz, 
	 pthread_t **data_save_threads_Ez_yz, pthread_t **data_save_threads_Hx_yz,
	 pthread_t **data_save_threads_Hy_yz, pthread_t **data_save_threads_Hz_yz,
	 pthread_t **data_save_threads_Ex_xz, pthread_t **data_save_threads_Ey_xz, 
	 pthread_t **data_save_threads_Ez_xz, pthread_t **data_save_threads_Hx_xz,
	 pthread_t **data_save_threads_Hy_xz, pthread_t **data_save_threads_Hz_xz,
	 Data_Save_Slice **Save_Ex_xy, Data_Save_Slice **Save_Ey_xy,
	 Data_Save_Slice **Save_Ez_xy, Data_Save_Slice **Save_Hx_xy,
	 Data_Save_Slice **Save_Hy_xy, Data_Save_Slice **Save_Hz_xy,
	 Data_Save_Slice **Save_Ex_yz, Data_Save_Slice **Save_Ey_yz,
	 Data_Save_Slice **Save_Ez_yz, Data_Save_Slice **Save_Hx_yz,
	 Data_Save_Slice **Save_Hy_yz, Data_Save_Slice **Save_Hz_yz,
	 Data_Save_Slice **Save_Ex_xz, Data_Save_Slice **Save_Ey_xz,
	 Data_Save_Slice **Save_Ez_xz, Data_Save_Slice **Save_Hx_xz,
	 Data_Save_Slice **Save_Hy_xz, Data_Save_Slice **Save_Hz_xz)
{
	if (*data_save_threads_Ex_xy) 
	{ 
		free(*data_save_threads_Ex_xy);
		*data_save_threads_Ex_xy = NULL;
	} 

	if (*data_save_threads_Ey_xy) 
	{ 
		free(*data_save_threads_Ey_xy);
		*data_save_threads_Ey_xy = NULL;
	}

	if (*data_save_threads_Ez_xy) 
	{
		free(*data_save_threads_Ez_xy);
		*data_save_threads_Ez_xy = NULL;
	}
	
	if (*data_save_threads_Hx_xy) 
	{
		free(*data_save_threads_Hx_xy); 
		*data_save_threads_Hx_xy = NULL; 
	}

	if (*data_save_threads_Hy_xy)
	{
		free(*data_save_threads_Hy_xy);
		*data_save_threads_Hy_xy = NULL;
	} 
	
	if (*data_save_threads_Hz_xy) 
	{
		free(*data_save_threads_Hz_xy);
		*data_save_threads_Hz_xy = NULL;
	}
	
	if (*data_save_threads_Ex_yz)
	{
		free(*data_save_threads_Ex_yz);
		*data_save_threads_Ex_yz = NULL;
	} 
	
	if (*data_save_threads_Ey_yz)
	{
		free(*data_save_threads_Ey_yz);
		*data_save_threads_Ey_yz = NULL;
	} 
	
	if (*data_save_threads_Ez_yz) 
	{
		free(*data_save_threads_Ez_yz);
		*data_save_threads_Ez_yz = NULL;
	} 
	
	if (*data_save_threads_Hx_yz) 
	{
		free(*data_save_threads_Hx_yz); 
		*data_save_threads_Hx_yz = NULL; 
	}
	
	if (*data_save_threads_Hy_yz)
	{
		free(*data_save_threads_Hy_yz);
		*data_save_threads_Hy_yz = NULL;
	} 
	
	if (*data_save_threads_Hz_yz)
	{
		free(*data_save_threads_Hz_yz);
		*data_save_threads_Hz_yz = NULL;
	}
	
	if (*data_save_threads_Ex_xz) 
	{
		free(*data_save_threads_Ex_xz); 
		*data_save_threads_Ex_xz = NULL; 
	}
	
	if (*data_save_threads_Ey_xz)
	{
		free(*data_save_threads_Ey_xz);
		*data_save_threads_Ey_xz = NULL;
	} 
	
	if (*data_save_threads_Ez_xz)
	{
		free(*data_save_threads_Ez_xz);
		*data_save_threads_Ez_xz = NULL;
	}
	
	if (*data_save_threads_Hx_xz)
	{
		free(*data_save_threads_Hx_xz);
		*data_save_threads_Hx_xz = NULL;
	}
	
	if (*data_save_threads_Hy_xz)
	{
		free(*data_save_threads_Hy_xz);
		*data_save_threads_Hy_xz = NULL;
	} 
	
	if (*data_save_threads_Hz_xz)
	{
		free(*data_save_threads_Hz_xz);
		*data_save_threads_Hz_xz = NULL;
	}

	if (*Save_Ex_xy) 
	{
		free(*Save_Ex_xy);
		*Save_Ex_xy  = NULL;
	}
	
	if (*Save_Ey_xy) 
	{  
		free(*Save_Ey_xy);
		*Save_Ey_xy  = NULL;
	}

	if (*Save_Ez_xy)
	{
		free(*Save_Ez_xy);
		*Save_Ez_xy  = NULL;
	} 
	
	if (*Save_Hx_xy) 
	{ 
		free(*Save_Hx_xy);
		*Save_Hx_xy  = NULL;
	}

	if (*Save_Hy_xy) 
	{ 
		free(*Save_Hy_xy);
		*Save_Hy_xy  = NULL;
	} 
	
	if (*Save_Hz_xy)
	{
		free(*Save_Hz_xy);
		*Save_Hz_xy  = NULL;
	}

	if (*Save_Ex_yz) 
	{
		free(*Save_Ex_yz);
		*Save_Ex_yz  = NULL;
	
	} 
	
	if (*Save_Ey_yz)
	{
		free(*Save_Ey_yz);
		*Save_Ey_yz  = NULL;
	}

	if (*Save_Ez_yz) 
	{
		free(*Save_Ez_yz);
		*Save_Ez_yz  = NULL;
	} 
	
	if (*Save_Hx_yz)
	{
		free(*Save_Hx_yz);
		*Save_Hx_yz  = NULL;
	}

	if (*Save_Hy_yz)
	{
		free(*Save_Hy_yz);
		*Save_Hy_yz  = NULL;
	} 
	
	if (*Save_Hz_yz) 
	{
		free(*Save_Hz_yz);
		*Save_Hz_yz  = NULL;
	}

	if (*Save_Ex_xz)
	{
		free(*Save_Ex_xz);
		*Save_Ex_xz  = NULL;
	} 
	
	if (*Save_Ey_xz)
	{
		free(*Save_Ey_xz);
		*Save_Ey_xz  = NULL;
	}

	if (*Save_Ez_xz)
	{
		free(*Save_Ez_xz);
		*Save_Ez_xz  = NULL;
	} 

	if (*Save_Hx_xz) 
	{
		free(*Save_Hx_xz);
		*Save_Hx_xz  = NULL;
	}

	if (*Save_Hy_xz)
	{
		free(*Save_Hy_xz);
		*Save_Hy_xz  = NULL;
	}
	
	if (*Save_Hz_xz)
	{
		free(*Save_Hz_xz);
		*Save_Hz_xz  = NULL;
	}
}

void Free_W_Param(double ****W, double **W_aver, double **W_aver_xz, double **W_aver_xzt,
				  pthread_t **eval_W_thread, Data_En **Data_W, double **local_W_aver, 
				  char **path_name_W, long nx_W)
{
	if (*W)
		*W = Free_Matrix_3D<double>(*W,nx_W);

	if(*W_aver)
	{
		free(*W_aver);
		*W_aver = NULL;
	}

	if(*W_aver_xz)
	{
		free(*W_aver_xz);
		*W_aver_xz = NULL;
	}

	if(*W_aver_xzt)
	{
		free(*W_aver_xzt);
		*W_aver_xzt = NULL;
	}

	if(*eval_W_thread)
	{
		free(*eval_W_thread);
		*eval_W_thread = NULL;
	}

	if(*Data_W)
	{
		free(*Data_W);
		*Data_W = NULL;
	}
	
	if(*local_W_aver)
	{
		free(*local_W_aver);
		*local_W_aver = NULL;
	}

	if(*path_name_W)
	{
		free(*path_name_W);
		*path_name_W = NULL;
	}

}

void Free_TS_Param(double **ll_1D_E, double **ll_1D_H, 
				   double ***Hz_i0, double ***Hy_i0, double ***Hz_i1, double ***Hy_i1,
				   double ***Hz_j0, double ***Hx_j0, double ***Hz_j1, double ***Hx_j1, 
				   double ***Hy_k0, double ***Hx_k0, double ***Hy_k1, double ***Hx_k1, 
				   double ***face_Hz_i0, double ***face_Hy_i0, double ***face_Hz_i1, 
				   double ***face_Hy_i1, double ***face_Hz_j0, double ***face_Hx_j0, 
				   double ***face_Hz_j1, double ***face_Hx_j1, double ***face_Hy_k0, 
				   double ***face_Hx_k0, double ***face_Hy_k1, double ***face_Hx_k1,
				   double ***Ey_i0, double ***Ez_i0, double ***Ey_i1, double ***Ez_i1,
				   double ***Ex_j0, double ***Ez_j0, double ***Ex_j1, double ***Ez_j1,
				   double ***Ex_k0, double ***Ey_k0, double ***Ex_k1, double ***Ey_k1,
				   double ***face_Ey_i0, double ***face_Ez_i0, double ***face_Ey_i1, double ***face_Ez_i1,
				   double ***face_Ex_j0, double ***face_Ez_j0, double ***face_Ex_j1, double ***face_Ez_j1,
				   double ***face_Ex_k0, double ***face_Ey_k0, double ***face_Ex_k1, double ***face_Ey_k1)
{
	if (*ll_1D_E)
	{
		free(*ll_1D_E);
		*ll_1D_E = NULL;
	}

	if (*ll_1D_H)
	{
		free(*ll_1D_H);
		*ll_1D_H = NULL;
	}

	if(*Hz_i0) 
		*Hz_i0 = Free_Matrix_2D<double>(*Hz_i0);
	if(*Hy_i0)
		*Hy_i0 = Free_Matrix_2D<double>(*Hy_i0);
	if(*Hz_i1)
		*Hz_i1 = Free_Matrix_2D<double>(*Hz_i1);
	if(*Hy_i1) 
		*Hy_i1 = Free_Matrix_2D<double>(*Hy_i1);
	if(*Hz_j0) 
		*Hz_j0 = Free_Matrix_2D<double>(*Hz_j0);
	if(*Hx_j0) 
		*Hx_j0 = Free_Matrix_2D<double>(*Hx_j0);
	if(*Hz_j1) 
		*Hz_j1 = Free_Matrix_2D<double>(*Hz_j1);
	if(*Hx_j1) 
		*Hx_j1 = Free_Matrix_2D<double>(*Hx_j1);
	if(*Hy_k0) 
		*Hy_k0 = Free_Matrix_2D<double>(*Hy_k0);
	if(*Hx_k0) 
		*Hx_k0 = Free_Matrix_2D<double>(*Hx_k0);
	if(*Hy_k1) 
		*Hy_k1 = Free_Matrix_2D<double>(*Hy_k1);
	if(*Hx_k1) 
		*Hx_k1 = Free_Matrix_2D<double>(*Hx_k1);

	if(*face_Hz_i0) 
		*face_Hz_i0 = Free_Matrix_2D<double>(*face_Hz_i0);
	if(*face_Hy_i0)
		*face_Hy_i0 = Free_Matrix_2D<double>(*face_Hy_i0);
	if(*face_Hz_i1)
		*face_Hz_i1 = Free_Matrix_2D<double>(*face_Hz_i1);
	if(*face_Hy_i1) 
		*face_Hy_i1 = Free_Matrix_2D<double>(*face_Hy_i1);
	if(*face_Hz_j0) 
		*face_Hz_j0 = Free_Matrix_2D<double>(*face_Hz_j0);
	if(*face_Hx_j0) 
		*face_Hx_j0 = Free_Matrix_2D<double>(*face_Hx_j0);
	if(*face_Hz_j1) 
		*face_Hz_j1 = Free_Matrix_2D<double>(*face_Hz_j1);
	if(*face_Hx_j1) 
		*face_Hx_j1 = Free_Matrix_2D<double>(*face_Hx_j1);
	if(*face_Hy_k0) 
		*face_Hy_k0 = Free_Matrix_2D<double>(*face_Hy_k0);
	if(*face_Hx_k0) 
		*face_Hx_k0 = Free_Matrix_2D<double>(*face_Hx_k0);
	if(*face_Hy_k1) 
		*face_Hy_k1 = Free_Matrix_2D<double>(*face_Hy_k1);
	if(*face_Hx_k1) 
		*face_Hx_k1 = Free_Matrix_2D<double>(*face_Hx_k1);

	
	if(*Ey_i0) 
		*Ey_i0 = Free_Matrix_2D<double>(*Ey_i0);
	if(*Ez_i0) 
		*Ez_i0 = Free_Matrix_2D<double>(*Ez_i0);
	if(*Ey_i1) 
		*Ey_i1 = Free_Matrix_2D<double>(*Ey_i1);
	if(*Ez_i1) 
		*Ez_i1 = Free_Matrix_2D<double>(*Ez_i1);
	if(*Ex_j0) 
		*Ex_j0 = Free_Matrix_2D<double>(*Ex_j0);
	if(*Ez_j0) 
		*Ez_j0 = Free_Matrix_2D<double>(*Ez_j0);
	if(*Ex_j1) 
		*Ex_j1 = Free_Matrix_2D<double>(*Ex_j1);
	if(*Ez_j1) 
		*Ez_j1 = Free_Matrix_2D<double>(*Ez_j1);
	if(*Ex_k0) 
		*Ex_k0 = Free_Matrix_2D<double>(*Ex_k0);
	if(*Ey_k0) 
		*Ey_k0 = Free_Matrix_2D<double>(*Ey_k0);
	if(*Ex_k1) 
		*Ex_k1 = Free_Matrix_2D<double>(*Ex_k1);
	if(*Ey_k1) 
		*Ey_k1 = Free_Matrix_2D<double>(*Ey_k1);

	if(*face_Ey_i0) 
		*face_Ey_i0 = Free_Matrix_2D<double>(*face_Ey_i0);
	if(*face_Ez_i0) 
		*face_Ez_i0 = Free_Matrix_2D<double>(*face_Ez_i0);
	if(*face_Ey_i1) 
		*face_Ey_i1 = Free_Matrix_2D<double>(*face_Ey_i1);
	if(*face_Ez_i1) 
		*face_Ez_i1 = Free_Matrix_2D<double>(*face_Ez_i1);
	if(*face_Ex_j0) 
		*face_Ex_j0 = Free_Matrix_2D<double>(*face_Ex_j0);
	if(*face_Ez_j0) 
		*face_Ez_j0 = Free_Matrix_2D<double>(*face_Ez_j0);
	if(*face_Ex_j1) 
		*face_Ex_j1 = Free_Matrix_2D<double>(*face_Ex_j1);
	if(*face_Ez_j1) 
		*face_Ez_j1 = Free_Matrix_2D<double>(*face_Ez_j1);
	if(*face_Ex_k0) 
		*face_Ex_k0 = Free_Matrix_2D<double>(*face_Ex_k0);
	if(*face_Ey_k0) 
		*face_Ey_k0 = Free_Matrix_2D<double>(*face_Ey_k0);
	if(*face_Ex_k1) 
		*face_Ex_k1 = Free_Matrix_2D<double>(*face_Ex_k1);
	if(*face_Ey_k1) 
		*face_Ey_k1 = Free_Matrix_2D<double>(*face_Ey_k1);
}

⌨️ 快捷键说明

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