Skip to content

Latest commit

 

History

History
44 lines (36 loc) · 2.87 KB

spec.md

File metadata and controls

44 lines (36 loc) · 2.87 KB

直行座標系のノードで定義した媒質分布の定義をYee格子で再定義するpythonコード

本コードは、媒質分布を直行座標系として定義された三次元配列spl[ix][iy][iz]から、Yee格子で定義した各電界、磁界の位置で再定義された1次元配列iEx[it],iEy[it],iEz[it],iHx[it],iHy[it],iHz[it]を求めるpythonコードである。各電界、磁界での媒質分布は1次元配列で表すが、その1次元配列のインデックスitはix,iy,izから求めるものであり実質3次元空間を表している。

1. 媒質分布の定義

シミュレーション空間内の媒質分布は、直行座標のグリッドにおける材質IDを、3次元配列に保存する。

  • 材質管理配列: spl[ix][iy][iz]
    • 格納データ: 伝搬材質の識別ID(int型)
    • インデックス範囲: (int型)
      • ix: $0 \le ix < Nx+1$
      • iy: $0 \le iy < Ny+1$
      • iz: $0 \le iz < Nz+1$
  • 原点: $(Nx/2+1, Ny/2+1, Nz/2+1)$を実座標$(0,0,0)$(原点)とする
  • 格子間実距離: dx, dy, dz(float型)

2. 各電磁界成分の位置での材質の定義

Yee格子(Yee Lattice)上の電界(Ex, Ey, Ez)および磁界(Hx, Hy, Hz)の計算点における材質IDは、各成分専用の1次元配列に保存する。

  • 各電磁界計算位置での材質ID保存配列: iEx, iEy, iEz, iHx, iHy, iHz(int型)

  • 配列形式: 1次元配列

  • インデックス計算式: 3次元的な位置 $(ix, iy, iz)$ から1次元インデックス it への変換は以下の通り定義される(int型): $$it = iz \cdot Nk + iy \cdot Nj + ix \cdot Ni + N0$$

  • 実座標の定義:
    計算点の物理的な実座標は、ノード座標およびセル中心座標を保持する配列によって参照される | 配列名 | 内容 | 役割 | | :--- | :--- | :--- | | Xn[ix], Yn[iy], Zn[iz] | ノードの座標値 | 格子点(ノード)の物理位置を保持 | | Xc[ix], Yc[iy], Zc[iz] | セル中心の座標値 | 隣り合うノード間の中間位置を保持 |

    磁界成分の実座標は、成分の性質(電界か磁界か)および方向に応じて、これらの配列を組み合わせて決定される

  • 材質ID保存配列と実座標の関係

    ID保存配列名 実座標配列名(x座標) 実座標配列名(y座標) 実座標配列名(z座標)
    iEx[it] Xc[ix] Yn[iy] Zn[iz]
    iEy[it] Xn[ix] Yc[iy] Zn[iz]
    iEz[it] Xn[ix] Yn[iy] Zc[iz]
    iHx[it] Xn[ix] Yc[iy] Zc[iz]
    iHy[it] Xc[ix] Yn[iy] Zc[iz]
    iHz[it] Xc[ix] Yc[iy] Zn[iz]

iEx,iEy,iEz,iHx,iHy,iHz以外の値はすべて既知とし、splからそれらを計算する。