📄 fdtd_3d_free.cpp
字号:
#include "fdtd_3d_free.h"
void Free_FxGxEx(double ****Fx_1, double ****Gx_1, double ****Fx_2, double ****Gx_2,
double ****Fx_3, double ****Gx_3, double ****Fx_4, double ****Fx_5,
double ****Fx_6, double ****Fx_7, double ****Gx_7, double ****Fx_8,
double ****Gx_8, double ****Fx_9, double ****Gx_9, double ****Fx_10,
double ****Gx_10, double ****Fx_11, double ****Fx_12, double ****Gx_12,
double ****Fx_13, double ****Fx_15, double ****Fx_16, double ****Gx_16,
double ****Fx_17, double ****Fx_18, double ****Gx_18, double ****Fx_19,
double ****Gx_19, double ****Fx_20, double ****Gx_20, double ****Fx_21,
double ****Gx_21, double ****Fx_22, double ****Fx_23, double ****Fx_24,
double ****Fx_25, double ****Gx_25, double ****Fx_26, double ****Gx_26,
double ****Fx_27, double ****Gx_27, double ****Ex, long nPML_x_1,
long nPML_x_2, long nx)
{
if(*Fx_1)
*Fx_1 = Free_Matrix_3D<double>(*Fx_1,nPML_x_1);
if(*Gx_1)
*Gx_1 = Free_Matrix_3D<double>(*Gx_1,nPML_x_1);
if(*Fx_2)
*Fx_2 = Free_Matrix_3D<double>(*Fx_2,nx-1-nPML_x_1-nPML_x_2);
if(*Gx_2)
*Gx_2 = Free_Matrix_3D<double>(*Gx_2,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_3)
*Fx_3 = Free_Matrix_3D<double>(*Fx_3,nPML_x_2);
if(*Gx_3)
*Gx_3 = Free_Matrix_3D<double>(*Gx_3,nPML_x_2);
if(*Fx_4)
*Fx_4 = Free_Matrix_3D<double>(*Fx_4,nPML_x_1);
if(*Fx_5)
*Fx_5 = Free_Matrix_3D<double>(*Fx_5,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_6)
*Fx_6 = Free_Matrix_3D<double>(*Fx_6,nPML_x_2);
if(*Fx_7)
*Fx_7 = Free_Matrix_3D<double>(*Fx_7,nPML_x_1);
if(*Gx_7)
*Gx_7 = Free_Matrix_3D<double>(*Gx_7,nPML_x_1);
if(*Fx_8)
*Fx_8 = Free_Matrix_3D<double>(*Fx_8,nx-1-nPML_x_1-nPML_x_2);
if(*Gx_8)
*Gx_8 = Free_Matrix_3D<double>(*Gx_8,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_9)
*Fx_9 = Free_Matrix_3D<double>(*Fx_9,nPML_x_2);
if(*Gx_9)
*Gx_9 = Free_Matrix_3D<double>(*Gx_9,nPML_x_2);
if(*Fx_10)
*Fx_10 = Free_Matrix_3D<double>(*Fx_10,nPML_x_1);
if(*Gx_10)
*Gx_10 = Free_Matrix_3D<double>(*Gx_10,nPML_x_1);
if(*Fx_11)
*Fx_11 = Free_Matrix_3D<double>(*Fx_11,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_12)
*Fx_12 = Free_Matrix_3D<double>(*Fx_12,nPML_x_2);
if(*Gx_12)
*Gx_12 = Free_Matrix_3D<double>(*Gx_12,nPML_x_2);
if(*Fx_13)
*Fx_13 = Free_Matrix_3D<double>(*Fx_13,nPML_x_1);
if(*Fx_15)
*Fx_15 = Free_Matrix_3D<double>(*Fx_15,nPML_x_2);
if(*Fx_16)
*Fx_16 = Free_Matrix_3D<double>(*Fx_16,nPML_x_1);
if(*Gx_16)
*Gx_16 = Free_Matrix_3D<double>(*Gx_16,nPML_x_1);
if(*Fx_17)
*Fx_17 = Free_Matrix_3D<double>(*Fx_17,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_18)
*Fx_18 = Free_Matrix_3D<double>(*Fx_18,nPML_x_2);
if(*Gx_18)
*Gx_18 = Free_Matrix_3D<double>(*Gx_18,nPML_x_2);
if(*Fx_19)
*Fx_19 = Free_Matrix_3D<double>(*Fx_19,nPML_x_1);
if(*Gx_19)
*Gx_19 = Free_Matrix_3D<double>(*Gx_19,nPML_x_1);
if(*Fx_20)
*Fx_20 = Free_Matrix_3D<double>(*Fx_20,nx-1-nPML_x_1-nPML_x_2);
if(*Gx_20)
*Gx_20 = Free_Matrix_3D<double>(*Gx_20,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_21)
*Fx_21 = Free_Matrix_3D<double>(*Fx_21,nPML_x_2);
if(*Gx_21)
*Gx_21 = Free_Matrix_3D<double>(*Gx_21,nPML_x_2);
if(*Fx_22)
*Fx_22 = Free_Matrix_3D<double>(*Fx_22,nPML_x_1);
if(*Fx_23)
*Fx_23 = Free_Matrix_3D<double>(*Fx_23,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_24)
*Fx_24 = Free_Matrix_3D<double>(*Fx_24,nPML_x_2);
if(*Fx_25)
*Fx_25 = Free_Matrix_3D<double>(*Fx_25,nPML_x_1);
if(*Gx_25)
*Gx_25 = Free_Matrix_3D<double>(*Gx_25,nPML_x_1);
if(*Fx_26)
*Fx_26 = Free_Matrix_3D<double>(*Fx_26,nx-1-nPML_x_1-nPML_x_2);
if(*Gx_26)
*Gx_26 = Free_Matrix_3D<double>(*Gx_26,nx-1-nPML_x_1-nPML_x_2);
if(*Fx_27)
*Fx_27 = Free_Matrix_3D<double>(*Fx_27,nPML_x_2);
if(*Gx_27)
*Gx_27 = Free_Matrix_3D<double>(*Gx_27,nPML_x_2);
if(*Ex)
*Ex = Free_Matrix_3D<double>(*Ex,nx-1);
}
void Free_FyGyEy(double ****Fy_1, double ****Gy_1, double ****Fy_2, double ****Gy_2,
double ****Fy_3, double ****Gy_3, double ****Fy_4, double ****Gy_4,
double ****Fy_5, double ****Fy_6, double ****Gy_6, double ****Fy_7,
double ****Gy_7, double ****Fy_8, double ****Gy_8, double ****Fy_9,
double ****Gy_9, double ****Fy_10, double ****Fy_11, double ****Fy_12,
double ****Fy_13, double ****Fy_15, double ****Fy_16, double ****Fy_17,
double ****Fy_18, double ****Fy_19, double ****Gy_19, double ****Fy_20,
double ****Gy_20, double ****Fy_21, double ****Gy_21, double ****Fy_22,
double ****Gy_22, double ****Fy_23, double ****Fy_24, double ****Gy_24,
double ****Fy_25, double ****Gy_25, double ****Fy_26, double ****Gy_26,
double ****Fy_27, double ****Gy_27, double ****Ey, long nPML_x_1,
long nPML_x_2, long nx)
{
if(*Fy_1)
*Fy_1 = Free_Matrix_3D<double>(*Fy_1,nPML_x_1);
if(*Gy_1)
*Gy_1 = Free_Matrix_3D<double>(*Gy_1,nPML_x_1);
if(*Fy_2)
*Fy_2 = Free_Matrix_3D<double>(*Fy_2,nx-nPML_x_1-nPML_x_2);
if(*Gy_2)
*Gy_2 = Free_Matrix_3D<double>(*Gy_2,nx-nPML_x_1-nPML_x_2);
if(*Fy_3)
*Fy_3 = Free_Matrix_3D<double>(*Fy_3,nPML_x_2);
if(*Gy_3)
*Gy_3 = Free_Matrix_3D<double>(*Gy_3,nPML_x_2);
if(*Fy_4)
*Fy_4 = Free_Matrix_3D<double>(*Fy_4,nPML_x_1);
if(*Gy_4)
*Gy_4 = Free_Matrix_3D<double>(*Gy_4,nPML_x_1);
if(*Fy_5)
*Fy_5 = Free_Matrix_3D<double>(*Fy_5,nx-nPML_x_1-nPML_x_2);
if(*Fy_6)
*Fy_6 = Free_Matrix_3D<double>(*Fy_6,nPML_x_2);
if(*Gy_6)
*Gy_6 = Free_Matrix_3D<double>(*Gy_6,nPML_x_2);
if(*Fy_7)
*Fy_7 = Free_Matrix_3D<double>(*Fy_7,nPML_x_1);
if(*Gy_7)
*Gy_7 = Free_Matrix_3D<double>(*Gy_7,nPML_x_1);
if(*Fy_8)
*Fy_8 = Free_Matrix_3D<double>(*Fy_8,nx-nPML_x_1-nPML_x_2);
if(*Gy_8)
*Gy_8 = Free_Matrix_3D<double>(*Gy_8,nx-nPML_x_1-nPML_x_2);
if(*Fy_9)
*Fy_9 = Free_Matrix_3D<double>(*Fy_9,nPML_x_2);
if(*Gy_9)
*Gy_9 = Free_Matrix_3D<double>(*Gy_9,nPML_x_2);
if(*Fy_10)
*Fy_10 = Free_Matrix_3D<double>(*Fy_10,nPML_x_1);
if(*Fy_11)
*Fy_11 = Free_Matrix_3D<double>(*Fy_11,nx-nPML_x_1-nPML_x_2);
if(*Fy_12)
*Fy_12 = Free_Matrix_3D<double>(*Fy_12,nPML_x_2);
if(*Fy_13)
*Fy_13 = Free_Matrix_3D<double>(*Fy_13,nPML_x_1);
if(*Fy_15)
*Fy_15 = Free_Matrix_3D<double>(*Fy_15,nPML_x_2);
if(*Fy_16)
*Fy_16 = Free_Matrix_3D<double>(*Fy_16,nPML_x_1);
if(*Fy_17)
*Fy_17 = Free_Matrix_3D<double>(*Fy_17,nx-nPML_x_1-nPML_x_2);
if(*Fy_18)
*Fy_18 = Free_Matrix_3D<double>(*Fy_18,nPML_x_2);
if(*Fy_19)
*Fy_19 = Free_Matrix_3D<double>(*Fy_19,nPML_x_1);
if(*Gy_19)
*Gy_19 = Free_Matrix_3D<double>(*Gy_19,nPML_x_1);
if(*Fy_20)
*Fy_20 = Free_Matrix_3D<double>(*Fy_20,nx-nPML_x_1-nPML_x_2);
if(*Gy_20)
*Gy_20 = Free_Matrix_3D<double>(*Gy_20,nx-nPML_x_1-nPML_x_2);
if(*Fy_21)
*Fy_21 = Free_Matrix_3D<double>(*Fy_21,nPML_x_2);
if(*Gy_21)
*Gy_21 = Free_Matrix_3D<double>(*Gy_21,nPML_x_2);
if(*Fy_22)
*Fy_22 = Free_Matrix_3D<double>(*Fy_22,nPML_x_1);
if(*Gy_22)
*Gy_22 = Free_Matrix_3D<double>(*Gy_22,nPML_x_1);
if(*Fy_23)
*Fy_23 = Free_Matrix_3D<double>(*Fy_23,nx-nPML_x_1-nPML_x_2);
if(*Fy_24)
*Fy_24 = Free_Matrix_3D<double>(*Fy_24,nPML_x_2);
if(*Gy_24)
*Gy_24 = Free_Matrix_3D<double>(*Gy_24,nPML_x_2);
if(*Fy_25)
*Fy_25 = Free_Matrix_3D<double>(*Fy_25,nPML_x_1);
if(*Gy_25)
*Gy_25 = Free_Matrix_3D<double>(*Gy_25,nPML_x_1);
if(*Fy_26)
*Fy_26 = Free_Matrix_3D<double>(*Fy_26,nx-nPML_x_1-nPML_x_2);
if(*Gy_26)
*Gy_26 = Free_Matrix_3D<double>(*Gy_26,nx-nPML_x_1-nPML_x_2);
if(*Fy_27)
*Fy_27 = Free_Matrix_3D<double>(*Fy_27,nPML_x_2);
if(*Gy_27)
*Gy_27 = Free_Matrix_3D<double>(*Gy_27,nPML_x_2);
if(*Ey)
*Ey = Free_Matrix_3D<double>(*Ey,nx);
}
void Free_FzGzEz(double ****Fz_1, double ****Gz_1, double ****Fz_2, double ****Fz_3,
double ****Gz_3, double ****Fz_4, double ****Gz_4, double ****Fz_5,
double ****Fz_6, double ****Gz_6, double ****Fz_7, double ****Gz_7,
double ****Fz_8, double ****Fz_9, double ****Gz_9, double ****Fz_10,
double ****Gz_10, double ****Fz_11, double ****Fz_12, double ****Gz_12,
double ****Fz_13, double ****Fz_15, double ****Fz_16, double ****Gz_16,
double ****Fz_17, double ****Fz_18, double ****Gz_18, double ****Fz_19,
double ****Gz_19, double ****Fz_20, double ****Fz_21, double ****Gz_21,
double ****Fz_22, double ****Gz_22, double ****Fz_23, double ****Fz_24,
double ****Gz_24, double ****Fz_25, double ****Gz_25, double ****Fz_26,
double ****Fz_27, double ****Gz_27, double ****Ez, long nPML_x_1,
long nPML_x_2, long nx)
{
if(*Fz_1)
*Fz_1 = Free_Matrix_3D<double>(*Fz_1,nPML_x_1);
if(*Gz_1)
*Gz_1 = Free_Matrix_3D<double>(*Gz_1,nPML_x_1);
if(*Fz_2)
*Fz_2 = Free_Matrix_3D<double>(*Fz_2,nx-nPML_x_1-nPML_x_2);
if(*Fz_3)
*Fz_3 = Free_Matrix_3D<double>(*Fz_3,nPML_x_2);
if(*Gz_3)
*Gz_3 = Free_Matrix_3D<double>(*Gz_3,nPML_x_2);
if(*Fz_4)
*Fz_4 = Free_Matrix_3D<double>(*Fz_4,nPML_x_1);
if(*Gz_4)
*Gz_4 = Free_Matrix_3D<double>(*Gz_4,nPML_x_1);
if(*Fz_5)
*Fz_5 = Free_Matrix_3D<double>(*Fz_5,nx-nPML_x_1-nPML_x_2);
if(*Fz_6)
*Fz_6 = Free_Matrix_3D<double>(*Fz_6,nPML_x_2);
if(*Gz_6)
*Gz_6 = Free_Matrix_3D<double>(*Gz_6,nPML_x_2);
if(*Fz_7)
*Fz_7 = Free_Matrix_3D<double>(*Fz_7,nPML_x_1);
if(*Gz_7)
*Gz_7 = Free_Matrix_3D<double>(*Gz_7,nPML_x_1);
if(*Fz_8)
*Fz_8 = Free_Matrix_3D<double>(*Fz_8,nx-nPML_x_1-nPML_x_2);
if(*Fz_9)
*Fz_9 = Free_Matrix_3D<double>(*Fz_9,nPML_x_2);
if(*Gz_9)
*Gz_9 = Free_Matrix_3D<double>(*Gz_9,nPML_x_2);
if(*Fz_10)
*Fz_10 = Free_Matrix_3D<double>(*Fz_10,nPML_x_1);
if(*Gz_10)
*Gz_10 = Free_Matrix_3D<double>(*Gz_10,nPML_x_1);
if(*Fz_11)
*Fz_11 = Free_Matrix_3D<double>(*Fz_11,nx-nPML_x_1-nPML_x_2);
if(*Fz_12)
*Fz_12 = Free_Matrix_3D<double>(*Fz_12,nPML_x_2);
if(*Gz_12)
*Gz_12 = Free_Matrix_3D<double>(*Gz_12,nPML_x_2);
if(*Fz_13)
*Fz_13 = Free_Matrix_3D<double>(*Fz_13,nPML_x_1);
if(*Fz_15)
*Fz_15 = Free_Matrix_3D<double>(*Fz_15,nPML_x_2);
if(*Fz_16)
*Fz_16 = Free_Matrix_3D<double>(*Fz_16,nPML_x_1);
if(*Gz_16)
*Gz_16 = Free_Matrix_3D<double>(*Gz_16,nPML_x_1);
if(*Fz_17)
*Fz_17 = Free_Matrix_3D<double>(*Fz_17,nx-nPML_x_1-nPML_x_2);
if(*Fz_18)
*Fz_18 = Free_Matrix_3D<double>(*Fz_18,nPML_x_2);
if(*Gz_18)
*Gz_18 = Free_Matrix_3D<double>(*Gz_18,nPML_x_2);
if(*Fz_19)
*Fz_19 = Free_Matrix_3D<double>(*Fz_19,nPML_x_1);
if(*Gz_19)
*Gz_19 = Free_Matrix_3D<double>(*Gz_19,nPML_x_1);
if(*Fz_20)
*Fz_20 = Free_Matrix_3D<double>(*Fz_20,nx-nPML_x_1-nPML_x_2);
if(*Fz_21)
*Fz_21 = Free_Matrix_3D<double>(*Fz_21,nPML_x_2);
if(*Gz_21)
*Gz_21 = Free_Matrix_3D<double>(*Gz_21,nPML_x_2);
if(*Fz_22)
*Fz_22 = Free_Matrix_3D<double>(*Fz_22,nPML_x_1);
if(*Gz_22)
*Gz_22 = Free_Matrix_3D<double>(*Gz_22,nPML_x_1);
if(*Fz_23)
*Fz_23 = Free_Matrix_3D<double>(*Fz_23,nx-nPML_x_1-nPML_x_2);
if(*Fz_24)
*Fz_24 = Free_Matrix_3D<double>(*Fz_24,nPML_x_2);
if(*Gz_24)
*Gz_24 = Free_Matrix_3D<double>(*Gz_24,nPML_x_2);
if(*Fz_25)
*Fz_25 = Free_Matrix_3D<double>(*Fz_25,nPML_x_1);
if(*Gz_25)
*Gz_25 = Free_Matrix_3D<double>(*Gz_25,nPML_x_1);
if(*Fz_26)
*Fz_26 = Free_Matrix_3D<double>(*Fz_26,nx-nPML_x_1-nPML_x_2);
if(*Fz_27)
*Fz_27 = Free_Matrix_3D<double>(*Fz_27,nPML_x_2);
if(*Gz_27)
*Gz_27 = Free_Matrix_3D<double>(*Gz_27,nPML_x_2);
if(*Ez)
*Ez = Free_Matrix_3D<double>(*Ez,nx);
}
void Free_BxHx(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_x_2, long nx)
{
if(*Bx_1)
*Bx_1 = Free_Matrix_3D<double>(*Bx_1,nPML_x_1);
if(*Bx_2)
*Bx_2 = Free_Matrix_3D<double>(*Bx_2,nx-nPML_x_1-nPML_x_2);
if(*Bx_3)
*Bx_3 = Free_Matrix_3D<double>(*Bx_3,nPML_x_2);
if(*Bx_4)
*Bx_4 = Free_Matrix_3D<double>(*Bx_4,nPML_x_1);
if(*Bx_6)
*Bx_6 = Free_Matrix_3D<double>(*Bx_6,nPML_x_2);
if(*Bx_7)
*Bx_7 = Free_Matrix_3D<double>(*Bx_7,nPML_x_1);
if(*Bx_8)
*Bx_8 = Free_Matrix_3D<double>(*Bx_8,nx-nPML_x_1-nPML_x_2);
if(*Bx_9)
*Bx_9 = Free_Matrix_3D<double>(*Bx_9,nPML_x_2);
if(*Bx_10)
*Bx_10 = Free_Matrix_3D<double>(*Bx_10,nPML_x_1);
if(*Bx_12)
*Bx_12 = Free_Matrix_3D<double>(*Bx_12,nPML_x_2);
if(*Bx_13)
*Bx_13 = Free_Matrix_3D<double>(*Bx_13,nPML_x_1);
if(*Bx_15)
*Bx_15 = Free_Matrix_3D<double>(*Bx_15,nPML_x_2);
if(*Bx_16)
*Bx_16 = Free_Matrix_3D<double>(*Bx_16,nPML_x_1);
if(*Bx_18)
*Bx_18 = Free_Matrix_3D<double>(*Bx_18,nPML_x_2);
if(*Bx_19)
*Bx_19 = Free_Matrix_3D<double>(*Bx_19,nPML_x_1);
if(*Bx_20)
*Bx_20 = Free_Matrix_3D<double>(*Bx_20,nx-nPML_x_1-nPML_x_2);
if(*Bx_21)
*Bx_21 = Free_Matrix_3D<double>(*Bx_21,nPML_x_2);
if(*Bx_22)
*Bx_22 = Free_Matrix_3D<double>(*Bx_22,nPML_x_1);
if(*Bx_24)
*Bx_24 = Free_Matrix_3D<double>(*Bx_24,nPML_x_2);
if(*Bx_25)
*Bx_25 = Free_Matrix_3D<double>(*Bx_25,nPML_x_1);
if(*Bx_26)
*Bx_26 = Free_Matrix_3D<double>(*Bx_26,nx-nPML_x_1-nPML_x_2);
if(*Bx_27)
*Bx_27 = Free_Matrix_3D<double>(*Bx_27,nPML_x_2);
if(*Hx)
*Hx = Free_Matrix_3D<double>(*Hx,nx);
}
void Free_ByHy(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_x_2, long nx)
{
if(*By_1)
*By_1 = Free_Matrix_3D<double>(*By_1,nPML_x_1);
if(*By_2)
*By_2 = Free_Matrix_3D<double>(*By_2,nx-1-nPML_x_1-nPML_x_2);
if(*By_3)
*By_3 = Free_Matrix_3D<double>(*By_3,nPML_x_2);
if(*By_4)
*By_4 = Free_Matrix_3D<double>(*By_4,nPML_x_1);
if(*By_6)
*By_6 = Free_Matrix_3D<double>(*By_6,nPML_x_2);
if(*By_7)
*By_7 = Free_Matrix_3D<double>(*By_7,nPML_x_1);
if(*By_8)
*By_8 = Free_Matrix_3D<double>(*By_8,nx-1-nPML_x_1-nPML_x_2);
if(*By_9)
*By_9 = Free_Matrix_3D<double>(*By_9,nPML_x_2);
if(*By_10)
*By_10 = Free_Matrix_3D<double>(*By_10,nPML_x_1);
if(*By_11)
*By_11 = Free_Matrix_3D<double>(*By_11,nx-1-nPML_x_1-nPML_x_2);
if(*By_12)
*By_12 = Free_Matrix_3D<double>(*By_12,nPML_x_2);
if(*By_16)
*By_16 = Free_Matrix_3D<double>(*By_16,nPML_x_1);
if(*By_17)
*By_17 = Free_Matrix_3D<double>(*By_17,nx-1-nPML_x_1-nPML_x_2);
if(*By_18)
*By_18 = Free_Matrix_3D<double>(*By_18,nPML_x_2);
if(*By_19)
*By_19 = Free_Matrix_3D<double>(*By_19,nPML_x_1);
if(*By_20)
*By_20 = Free_Matrix_3D<double>(*By_20,nx-1-nPML_x_1-nPML_x_2);
if(*By_21)
*By_21 = Free_Matrix_3D<double>(*By_21,nPML_x_2);
if(*By_22)
*By_22 = Free_Matrix_3D<double>(*By_22,nPML_x_1);
if(*By_24)
*By_24 = Free_Matrix_3D<double>(*By_24,nPML_x_2);
if(*By_25)
*By_25 = Free_Matrix_3D<double>(*By_25,nPML_x_1);
if(*By_26)
*By_26 = Free_Matrix_3D<double>(*By_26,nx-1-nPML_x_1-nPML_x_2);
if(*By_27)
*By_27 = Free_Matrix_3D<double>(*By_27,nPML_x_2);
if(*Hy)
*Hy = Free_Matrix_3D<double>(*Hy,nx-1);
}
void Free_BzHz(double ****Bz_1, double ****Bz_2, double ****Bz_3, double ****Bz_4,
double ****Bz_5, double ****Bz_6, double ****Bz_7, double ****Bz_8,
double ****Bz_9, double ****Bz_10, double ****Bz_12, double ****Bz_16,
double ****Bz_18, double ****Bz_19, double ****Bz_20, double ****Bz_21,
double ****Bz_22, double ****Bz_23, double ****Bz_24, double ****Bz_25,
double ****Bz_26, double ****Bz_27, double ****Hz, long nPML_x_1,
long nPML_x_2, long nx)
{
if(*Bz_1)
*Bz_1 = Free_Matrix_3D<double>(*Bz_1,nPML_x_1);
if(*Bz_2)
*Bz_2 = Free_Matrix_3D<double>(*Bz_2,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_3)
*Bz_3 = Free_Matrix_3D<double>(*Bz_3,nPML_x_2);
if(*Bz_4)
*Bz_4 = Free_Matrix_3D<double>(*Bz_4,nPML_x_1);
if(*Bz_5)
*Bz_5 = Free_Matrix_3D<double>(*Bz_5,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_6)
*Bz_6 = Free_Matrix_3D<double>(*Bz_6,nPML_x_2);
if(*Bz_7)
*Bz_7 = Free_Matrix_3D<double>(*Bz_7,nPML_x_1);
if(*Bz_8)
*Bz_8 = Free_Matrix_3D<double>(*Bz_8,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_9)
*Bz_9 = Free_Matrix_3D<double>(*Bz_9,nPML_x_2);
if(*Bz_10)
*Bz_10 = Free_Matrix_3D<double>(*Bz_10,nPML_x_1);
if(*Bz_12)
*Bz_12 = Free_Matrix_3D<double>(*Bz_12,nPML_x_2);
if(*Bz_16)
*Bz_16 = Free_Matrix_3D<double>(*Bz_16,nPML_x_1);
if(*Bz_18)
*Bz_18 = Free_Matrix_3D<double>(*Bz_18,nPML_x_2);
if(*Bz_19)
*Bz_19 = Free_Matrix_3D<double>(*Bz_19,nPML_x_1);
if(*Bz_20)
*Bz_20 = Free_Matrix_3D<double>(*Bz_20,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_21)
*Bz_21 = Free_Matrix_3D<double>(*Bz_21,nPML_x_2);
if(*Bz_22)
*Bz_22 = Free_Matrix_3D<double>(*Bz_22,nPML_x_1);
if(*Bz_23)
*Bz_23 = Free_Matrix_3D<double>(*Bz_23,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_24)
*Bz_24 = Free_Matrix_3D<double>(*Bz_24,nPML_x_2);
if(*Bz_25)
*Bz_25 = Free_Matrix_3D<double>(*Bz_25,nPML_x_1);
if(*Bz_26)
*Bz_26 = Free_Matrix_3D<double>(*Bz_26,nx-1-nPML_x_1-nPML_x_2);
if(*Bz_27)
*Bz_27 = Free_Matrix_3D<double>(*Bz_27,nPML_x_2);
if(*Hz)
*Hz = Free_Matrix_3D<double>(*Hz,nx-1);
}
///////////////////////////////////////////////////////////////////////////////////////
//Free the memory allocated for the PML parameters - Ex field component
///////////////////////////////////////////////////////////////////////////////////////
void Free_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_x_2)
{
if (*K_Gx_a_1)
{
free(*K_Gx_a_1);
*K_Gx_a_1 = NULL;
}
if (*K_Gx_b_1)
{
free(*K_Gx_b_1);
*K_Gx_b_1 = NULL;
}
if (*K_Ex_a_1)
{
free(*K_Ex_a_1);
*K_Ex_a_1 = NULL;
}
if (*K_Ex_b_1)
{
free(*K_Ex_b_1);
*K_Ex_b_1 = NULL;
}
if (*K_Ex_c_1)
{
free(*K_Ex_c_1);
*K_Ex_c_1 = NULL;
}
if (*K_Ex_d_1)
{
free(*K_Ex_d_1);
*K_Ex_d_1 = NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -