単純な光源を置く
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))
]