コピペコード
Windowsで使うMEEP入門

単純な光源を置く

MEEPにおける単純な光源の置き方をみる。 光源はmp.Simulation()のsourcesパラメータにリスト形式で指定します。
(光源のパラメータは簡単なものを示している。もう少し複雑な設定もできる。詳細はこちら。

mp.Source(src, component=, center=, size=, volume=, amplitude=)

光源を設置する。

src

光源の波形をSourceTimeオブジェクトで指定する。SourceTimeオブジェクトには次のようなものがある。

ContinuousSource(frequency, start_time=, end_time=, width=, slowness=)

連続光源(cw光源)を指定する。
frequency - 周波数(単位は1/μm)を実数で指定する。
wavelength - frequencyの代わりに波長(単位はμm)を指定することもできる。
start_time - 開始時間を実数で指定する。
end_time - 終了時間を実数で指定する。
width - 立ち上がりと立ち下がりのスムージング幅を実数で指定する。初期値は0。

GaussianSource(frequency, width=, start_time=, cutoff=)

パルス光源(ガウス形状)を指定する。
frequency - 周波数(単位は1/μm)を実数で指定する。
wavelength - frequencyの代わりに波長(単位はμm)を指定することもできる。
width - パルス幅を実数で指定する。
fwidth - widthの代わりに周波数幅(単位は1/μm)を指定することもできる。
start_time - 開始時間を実数で指定する。
cutoff - パルスの前後どのくらいの幅をシュミレーションするかを実数で指定する。初期値は5。

CustomSource(src_func, start_time=, end_time=, center_frequency=)

ユーザー定義の光源を指定する。
src_func - 引数がMEEP単位の時間、戻り値が複素数のユーザー定義関数を指定する。
start_time - 開始時間を実数で指定する。
end_time - 終了時間を実数で指定する。
center_frequency - 周波数の中心を実数で指定する。初期値は0。

component

電磁場の向きをmp.Ex, mp.Ey, mp.Ez, mp.Hx, mp.Hy, mp.Hzのいずれかを指定する。 例えばmp.Exだと電場がx軸方向を向くような微小電流源を指定したことになる。

center

光源の中心をmp.Vector3(x, y, z)で指定する。

size

光源の大きさをmp.Vector3(x, y, z)で指定する。

volume

centerとsizeで光源の位置を指定する代わりに、mp.Volume()で指定することもできる。

amplitude

振幅を複素数で指定する。初期値は1。

使用例

sources = [
    mp.Source(mp.GaussianSource(0.25, fwidth=0.20), component=mp.Ey, center=mp.Vector3(-0.5, 0, 0))
]