Meep FDTD simulatior (GPL)

MITの人が作ったらしいシミュレータ。個人的なメモ。

計算モデルの記述にSchemeを使うという変な形式。
Ubuntuではレポジトリにあるので導入は一瞬。

以下、tutorial にあった計算モデル。

(set! geometry-lattice (make lattice (size 16 16 no-size)))
;計算モデルを当分に切って、「方眼紙」の升目を作る。
(set! geometry (list
(make block (center -2 -3.5) (size 12 1 infinity)
(material (make dielectric (epsilon 12))))
(make block (center 3.5 2) (size 1 12 infinity)
(material (make dielectric (epsilon 12))))))
;方眼紙の座標をもとに導波路を作成。
(set! pml-layers (list (make pml (thickness 1.0))))
;完全吸収境界(PML)を設置。どうも上で作った「方眼紙」の中にPMLを設置するらしい。だから周囲に厚さ1ブロックのPML層ができる。
(set! resolution 10)
;升目をさらに細かく切って、計算グリッドのサイズを指定する。
(set! sources (list
(make source
(src (make continuous-src
(wavelength (* 2 (sqrt 12))) (width 20)))
(component Ez)
(center -7 -3.5) (size 0 1))))
;光源。単位があまり分からん。
(run-until 200
(at-beginning output-epsilon)
(to-appended "ez" (at-every 0.6 output-efield-z)))
;計算時間と出力ファイルの設定。