🗂

FDTDを実装する(2).

2021/10/17に公開

idの設定と媒質について

  • Ex : idex
  • Ey : idey
  • Ez : idez
  • Hx : idhx
  • Hy : idhy
  • Hz : idhz
    idはこのように対応していたのであった.
    自由空間は\epsilon = \epsilon_0, \mu = \mu_0, \sigma = 0である. ここでは, \epsilon_0, \mu_0は真空中の誘電率と透磁率である.

完全導体では, \epsilon \to \inftyとなるため少々工夫が必要である. (※ここ未実装)
\epsilon \to \inftyとなると, CEX, CEY, CEZ = 1 となり, CEXLYなどは0となる.
idexなどはCEXを計算するために必要であり, CEXはEを更新するために必要である.
完全動体ではEを更新する際にその表面電場Eを0とする.
また, 導体内部のEも0として良い.

しかし, これでは導体にどれほどの電流が流れているかわからないではないか! (\bm{j}=\sigma\bm{E}で調べる予定だった.)
ここで, 別に\bm{j}を求める方法が必要である.

例えば, x方向, y方向を進み, z方向は0である電流について考える. この時, xy平面に対して垂直なベクトル(zと並行)を\bar{z}とすると, (同様に\bar{x}, \bar{y}も同じように定義すると),

\bm{j}(i,j+1/2,k)=\bar{z}\times \bm{H}=-\bar{x}H_y+\bar{y}H_x

となるように計算することで\bm{j}を求めたいが, Hy, Hxは点(i,j+1/2,k)に存在しないので, 計算できない.
そこで,
Jy = 3/2 Hx(i,j+1/2,k+1/2) - 1/2 Hx(i,j+1/2,k+3/2)
のように補外を使って代用する.

媒質の境界を跨ぐ点

媒質を配置したとき, その点に必ず媒質が割り当てられるとは限らない.
格子点のブロック内に媒質の境界が存在する場合がある. (※ここは未実装)
例えば, y方向に媒質が変化するとする.
ブロックの辺がl1, l2の割合で媒質が\epsilon_1, \sigma_1, \epsilon_2, \sigma_2となるとする.
この時, このブロックの中心の媒質は

\epsilon_{ave} = \frac{\epsilon_1 l_1 + \epsilon_2 l_2 }{\Delta y}
\sigma_{ave} = \frac{\sigma_1 l_1 + \sigma_2 l_2 }{\Delta y}

となる.
また, l_1=l_2=\Delta y/2であるならば,

\epsilon_{ave} = \frac{\epsilon_1 + \epsilon_2 }{2}
\sigma_{ave} = \frac{\sigma_1 + \sigma_2 }{2}

となる.

給電点について

(152)

Discussion