时城有限差分法 二维FDTD 2021/12/10
2021/12/10 1 二维FDTD 时域有限差分法
二维FDTD 重写 Maxswel方程组 H at E ()=6()E(o) ah VXE E0/0 维 Maxswel程组标量方程 aD 1. aH E D(o)=6()E(o) aH 1 aE at aE OX 2021/12/10
2021/12/10 2 重写Maxswell方程组 0 0 D 1 t = H 0 0 1 t = − H E ( ) ( ) ( ) * D = E r 二维Maxswell方程组标量方程 0 0 z 1 y x H H t x y = − D 0 0 x 1 H z t y = − E ( ) ( ) ( ) * D z r z = E 0 0 y 1 z H t x = − E 二维FDTD
对时间和空间差分后,迭代公式 (H”(+1/2.n)-H(-1/2,/) o (H(+1/2)-H(j-1/2) E0/0 -1 1△t (E2(2)+1)-E2(n,) H H.(.j+ l6nAAx(:(t+1,)-En12(,) E n+1/2 2021/12/10
2021/12/10 3 对时间和空间差分后,迭代公式 ( ) ( ) ( ( ) ( )) ( ( ) ( )) 1/2 1/2 0 0 0 0 1 , , 1/ 2, 1/ 2, 1 , 1/ 2 , 1/ 2 n n n n z z y y n n x x t i j i j i j i j x t i j i j y + − = + + − − − + − − D D H H H H ( ) ( ) ( ( ) ( )) 1 1/2 1/2 0 0 1 , , , 1 , n n n n x x z z t i j i j i j i j y + + + = − + − H H E E ( ) ( ) ( ( ) ( )) 1 1/2 1/2 0 0 1 , , 1, , n n n n y y z z t i j i j i j i j x + + + = + + − H H E E
E Ez Er H H I H I + I i+2 Figure 3. 1 Inter leaving of the E and H fields for the two-dimensional TM formulation D2(,)=D2(,)+05(H(+1/2,n-H(-1/2 05(H(+1/2)H"(-1/2) H(,)=H(0)-05(E2(n+1)-E(2/) 2021/12/10 H“(,)=H”()+05(E(+1)-E"2(,)
2021/12/10 4 ( ) ( ) ( ( ) ( )) ( ( ) ( )) 1/2 1/2 , , 0.5 1/ 2, 1/ 2, 0.5 , 1/ 2 , 1/ 2 n n n n z z y y n n x x i j i j i j i j i j i j + − = + + − − − + − − D D H H H H ( ) ( ) ( ( ) ( )) 1 1/2 1/2 , , 0.5 , 1 , n n n n x x z z i j i j i j i j + + + H H E E = − + − ( ) ( ) ( ( ) ( )) 1 1/2 1/2 , , 0.5 1, , n n n n y y z z i j i j i j i j + + + H H E E = + + −
取时间间隔取 △t Ax 2 D2()=D2(,)+05(H"(+1/2,)-H"(-1/2,) 05(H(j+1/2)-H"(-1/2) H“(,)=H(,)-0.(E(2+1)-E2(,) H"()=H(,)+05(E2(+1,)-E() dz(,j)=dz(j)+0.5*(hy(i)-hy(-1,j)-hx(j)+hx(-1); ez i,j=ga(D*dz(i,j) hx(i,j)=hx(i,j)+0.5*( ez(i,j)(i,j+1) hy(i,j)=hy (,]+0.5*( ez(i+1,j)-ez (i,j)) surf(1: IE, 1:JE, ez axis([16016001]) drawnow 2021121ause(0.05);
2021/12/10 5 取时间间隔 dz(i,j) = dz(i,j) + 0.5 *( hy(i,j) - hy(i-1,j) - hx(i,j) + hx(i,j-1)); ez(i,j) = ga(i,j)*dz(i,j); hx(i,j) = hx(i,j) + 0.5 *( ez(i,j)- ez(i,j+1)); hy(i,j) = hy(i,j) + 0.5 *( ez(i+1,j)- ez(i,j)); ( ) ( ) ( ( ) ( )) ( ( ) ( )) 1/2 1/2 , , 0.5 1/ 2, 1/ 2, 0.5 , 1/ 2 , 1/ 2 n n n n z z y y n n x x i j i j i j i j i j i j + − = + + − − − + − − D D H H H H ( ) ( ) ( ( ) ( )) 1 1/2 1/2 , , 0.5 , 1 , n n n n x x z z i j i j i j i j + + + H H E E = − + − ( ) ( ) ( ( ) ( )) 1 1/2 1/2 , , 0.5 1, , n n n n y y z z i j i j i j i j + + + H H E E = + + − 1 2 c t x = 取 surf(1:IE,1:JE,ez) axis([1 60 1 60 0 1]); drawnow; pause(0.05);