Rustで2次元FDTD法を実装したものです。
初期設定でセル数の変更が出来ます。
下の例は1500×1500のセル数でモジュールを生成します。
fdtdBuilder::newSize(1500,1500);
標準では120×120で生成されるようになっています。
テスト時などに使ってください。
fdtdBuilder::new();
※ちゃんとした検証は行いきれていないので本プログラムの実行結果に保証は出来ません。
コードの書き方の参考程度にしてください。
fdtdモジュールのメソッドです。
初期化処理
setup()
誘電体の配置((x_s,y_s)から(x_l,y_l)を囲む四角、媒質定数epsrを指定)
epsmu(x_s, x_l, y_s, y_l, epsr)
完全導体の配置((x_s,y_s)から(x_l,y_l)を囲む四角を指定)
pec_rect(x_s, x_l, y_s, y_l)
給電点初期化(x座標、y座標を指定)
init_source(x,y)
給電処理(x座標、y座標を指定、ガウスパルスの時間指定)
feed(x,y,t)
電界計算
e_cal()
磁界計算
h_cal()
PML領域の電界計算
e_pml()
PML領域の磁界計算
h_pml()
ファイルor標準出力へのデータ出力
out_p(xo, yo), out_file(file, xo, yo)
※最初の設定でセル数を大きくするとファイル書き込み量がえげつなくなるので気を付けてください。
ファイルサイズが膨れ上がります。おまけに書き込む時間も凄く掛かります。