WE-FDTD(波動方程式FDTD)によるH面誘電体装荷共振器の散乱係数の計算(3)-Uniaxial PMLを用いた場合 Part 2-
WE-FDTDで完全整合層を用いた場合、Zhouの定式化では界Ezの現在値、1つ前、2つ前の値に加え、4つの補助変数Fzx, Fzy, Pzx, Pzyの現在値、1つ前の値が必要となりました。
WE-FDTD(波動方程式FDTD)によるH面誘電体装荷共振器の散乱係数の計算(2)-Uniaxial PMLを用いた場合-
http://ryujimiya.hatenablog.com/entry/2013/04/26/025718
上記問題を改善した定式化が下記文献に記されています。
Ramadan, Omar, Oyku Akaydin, and Gazi Magusa.
"MPI Parallel Implementations of the Wave-Equation PML for Truncating FDTD Computational Domains."
https://www.uop.edu.jo/download/research/members/CSIT2006/vol4%20pdf/pg136.pdf
https://www.uop.edu.jo/download/research/members/CSIT2006/
Proceeding of te 4th International Multiconference on Computer Sciense and Information Technology CSIT2006, Volume 4
定式化の概要は次の通りです。
WE-FDTD TMz with Uniaxial PML( O. Ramadan et al.)
jωPzx = (1 / sx) d Ez / dx
jωFzx = (1 / sx) d Pzx / dx
ここでsx = κx + σx / (jω ε)
Pzy, Fzyも同様に定義します。
ヘルムホルツ方程式より
(jω)^2 Ez = {1/ (εμ)} { (jω)^2 Fzx + (jω)^2 Fzy }
両辺を時間で積分( jωで割る)して、
(jω) Ez = {1/ (εμ)} { (jω) Fzx + (jω) Fzy }
(jω) → d/dtに変換し、離散化すると、
(1) Ez(i, j)n+1 = Ez(i, j)n
+ (1 / (εμ)) { Fzx(i, j)n - Fzx(i, j)n-1 + Fzy(i, j)n - Fzy(i, j)n-1 }
(2) Fzx(i, j)n+1 = c1fzx(i, j) Fzx(i, j)n
+ c2fzx(i, j) { Pzx(i + 0.5, j)n+1 - Pzx(i - 0.5, j)n+1}
ここで、
c1fzx(i, j) = (2 ε κx - σx ⊿t ) / (2 ε κx + σx ⊿t )
c2fzx(i, j) = (2 ε ⊿t) / { (2 ε κx + σx ⊿t ) ⊿x }
同様にFzy(i, j)も導出できます。
(3) Pzx(i + 0.5, j)n+1 = c1pzx(i + 0.5, j) Pzx(i + 0.5, j)n
+ c2pzx(i + 0.5, j) { Ez(i + 1, j)n+1 - Ez(i, j)n+1 }
ここで、
c1pzx(i, j) = (2 ε κx - σx ⊿t ) / (2 ε κx + σx ⊿t )
c2pzx(i, j) = (2 ε ⊿t) / { (2 ε κx + σx ⊿t ) ⊿x }
同様にPzy(i, j+ 0,5)も導出できます。
計算は(3)→(2)→(1)の順で行います。
Zhouの定式化と比べると、Fzx, Fzyの定義が異なっています。この定義により、ヘルムホルツ方程式の時間微分が2階から1階に低減され、(1)式で2つ前のEzの値は不要になります。また(2)式でPzx, Pzyは現在値のみの式となるので、Pzx, Pzyの1つ前の値は不要になります。
結局、必要なのは Ez(現在値と1つ前の値は同じ変数で共用可能)、Fzx, Fzy(現在値と1つ前の値)、Pzx, Pzy(現在値)の、計7変数となります。
この定式化にしたがってH面導波管誘電体共振器の散乱係数を計算した結果を次に示します。
ガウシアンパルスで励振したときの計算結果
微分ガウシアンパルスで励振したときの計算結果
どちらも前回のZhouの定式化とほぼ同じ結果が得られています。
前回のZhouの定式化は、PMLの媒質パラメータκx, σxをκx = 1, σx = 0としたとき、ベーシックなWE-FDTDの定式化の式と一致することを確認しましたが、こちらは未確認。多分一致すると思います。
一致するのであれば、PML領域以外ではベーシックなWE-FDTDを用い、PML領域ではZhouの定式化、または本記事のO. Ramadanの定式化を用いることで標準FDTDよりは記憶容量を低減できそうです。
main_we_upml_type1_wg2d_problem01_2.m
https://gist.github.com/ryujimiya/5460201
we_upml_type1_wg2d_dielectric_filter.m
https://gist.github.com/ryujimiya/5460188
we_upml_type1_wg2d_straight.m
https://gist.github.com/ryujimiya/5460183