FDTD 光源
導入
OghmaNano では、すべての照明は light sources によって与えられます。光スペクトル源、フィルタ、 および配向オプションを含む一般的な Light Source Editor については、 メインの光源ページ(Light sources - setup and parameters)で 詳細に説明されています。本ページでは特に、 finite-difference time-domain (FDTD) ソルバー内で光源がどのように使用されるかに焦点を当てます。 Light Source Editor には、メインウィンドウの Optical リボンからアクセスできます (Figure ?? を参照)。 本ページでは、波形選択、注入モード、位相制御、時間ゲーティング、およびウィンドウ処理を含む、 FDTD シミュレーションにおける時間領域励起源の設定方法を説明します。
OghmaNano で定義された任意の光源は FDTD モデルで使用できます。 FDTD シミュレーションでは、光源は Light Source Editor の FDTD タブで設定されます (Figure ?? を参照)。 このタブでは、電場が計算格子へどのように注入されるかが定義され、 励起波形、振幅、位相、時間ゲーティング、および選択された電場成分 \(E_x\)、\(E_y\)、\(E_z\) が含まれます。
時間領域設定に加えて、光源の物理的な形状と位置は、 通常のサイズおよび配置コントロールを用いて、3D デバイスエディタまたは Light Source Editor 内で定義されます。 これらの空間パラメータを調整することで、励起は平面、線、ボックス、または点光源として設定でき、 FDTD シミュレーション内で放射される電場の幾何形状を直接制御できます。 励起波形の詳細な挙動と、それが FDTD 格子とどのように相互作用するかは、 以下の節で説明します。
2. FDTD 励起
FDTD シミュレーションでは、光源は計算領域へ電場成分を注入する 時間領域励起 として定義されます。 FDTD タブ(??)では、 波形 \(s(t)\)、そのタイミング、および選択された注入面または点集合における 電場成分 \(E_x, E_y, E_z\) への適用方法が制御されます。
2.1 波形タイプ
Waveform 選択は、光源関数 \(s(t)\) の解析形式を定義します。 利用可能な励起タイプは、Continuous sine (CW)、Gaussian sine pulse、 Ricker wavelet、および Sinc pulse です。
すべての場合において、注入されるスカラー量は次のように書かれます
\[ s(t) = A\,u(t) + s_\mathrm{dc}, \]
ここで \(u(t)\) は選択された波形、\(A\) は Amplitude、 そして \(s_\mathrm{dc}\) は DC offset です。 励起波長は Optical Mesh Editor で設定され、 角周波数は波長と \( \omega = \dfrac{2\pi c}{\lambda} \) の関係にあります。 各 FDTD タイムステップにおいて、励起はスカラー値 \(s(t)\) を生成し、 それが重み \((w_x,w_y,w_z)\) を用いて選択された電場成分へ分配されます:
\[ \Delta E_x(t)=w_x s(t),\quad \Delta E_y(t)=w_y s(t),\quad \Delta E_z(t)=w_z s(t). \]
Excite Ex/Ey/Ez スイッチは、どの成分が注入を受けるかを定義します。あるいは明示的な重みを指定できます。
| 波形 | 数式表現 \(u(t)\) | 説明 |
|---|---|---|
| Continuous sine (CW) | \[ u(t) = \sin(\omega t + \phi) \] | キャリア周波数における単色定常励起。 単一周波数または定常状態シミュレーションに使用されます。 |
| Gaussian sine pulse | \[ u(t)= \exp\!\left(-\frac{1}{2}\left(\frac{t-t_0}{\sigma}\right)^2\right) \sin\!\left(\omega (t-t_0)+\phi\right) \] | ガウシアン包絡を持つ正弦波キャリア。 \(\sigma\) が短いほどスペクトルは広がり、\(\sigma\) が長いほど CW 励起に近づきます。 |
| Ricker wavelet | \[ u(t) = (1-2a^2)\exp(-a^2), \quad a=\pi f_0 (t-t_0) \] | 広帯域のインパルス状励起(Mexican-hat wavelet)。 時間的にコンパクトで対称であり、インパルス応答解析に有用です。 |
| Sinc pulse | \[ u(t)= \mathrm{sinc}\!\left(2\beta f_0 (t-t_0)\right) \sin\!\left(\omega (t-t_0)+\phi\right) \] | 制御可能な帯域幅 \(\beta\) を持つ帯域制限励起。 \(\beta\) を大きくするとスペクトル内容が広がります。 |
DC offset \( s_{\mathrm{dc}} \) は励起に定数成分を加えます。 波形は Start time および End time パラメータによって時間ゲートされます。
\[ s(t)=0 \quad t<t_{\mathrm{start}}, \qquad s(t)=0 \quad t>t_{\mathrm{end}}, \; t_{\mathrm{end}}>0 \]
\(t_{\mathrm{end}}=0\) の場合、光源はシミュレーション終了まで動作します。
2.2 位相
Phase パラメータは、励起の時間領域キャリア成分に位相シフトを導入します。 ユーザー指定の度単位の値は \( \phi=\phi_{\mathrm{deg}}\pi/180 \) によりラジアンへ変換され、 選択された波形の振動項に適用されます。 複数のコヒーレント光源が存在する場合、このパラメータはそれらの相対位相を設定し、 FDTD シミュレーション内で建設的または破壊的干渉を制御できます。
2.3 パルス中心 (t0)
パルス波形では、振動は次の量を用いて記述されます
\[ \Delta t = t - t_0, \]
これにより、波形ピークは指定されたパルス時刻 \(t_0\) を中心に保たれます。
2.4 光源注入モード
Injection mode は、注入セルにおける電場成分へ光源をどのように適用するかを制御します。
Soft (additive) モードでは、励起は既存の電場値へ加算されます:
\[ E_\alpha(t) = E_\alpha(t) + \Delta E_\alpha(t). \]
Hard (overwrite) モードでは、注入セルにおける電場は光源値に等しく設定されます:
\[ E_\alpha(t) = \Delta E_\alpha(t). \]
Soft モードは励起を時間発展する解へ加え、一方 hard モードは注入位置における光源値を直接強制します。
2.5 ランプとウィンドウ処理
Ramp/window 制御は、励起波形に乗算関数 \( w(t) \) を適用し、注入信号が \( s(t) = A\,u(t)\,w(t) + s_{\mathrm{dc}} \) となるようにします。 これにより光源の時間的サポートが制限され、 ターンオンおよびターンオフ挙動が滑らかになります。
ゲートされた時間変数を \( \tau = t - t_{\mathrm{start}} \)、 総ウィンドウ長を \( T \) とします。有限ウィンドウの場合、 励起は \( 0 < \tau < T \) のみで支持され、 この区間の外では \( w(\tau)=0 \) です。
Hann window の場合、関数は次式です
\[ w(\tau) = \begin{cases} \dfrac{1}{2}\left(1-\cos\left(2\pi \tau/T\right)\right), & 0 < \tau < T, \\ 0, & \text{otherwise}. \end{cases} \]
Hann window は信号をゼロから滑らかに立ち上げ、 継続時間の中央で最大に達し、\( \tau = T \) で滑らかにゼロへ戻します。
Blackman window の場合、関数は次式です
\[ w(\tau) = \begin{cases} 0.42 -0.5\cos\left(2\pi \tau/T\right) +0.08\cos\left(4\pi \tau/T\right), & 0 < \tau < T, \\ 0, & \text{otherwise}. \end{cases} \]
Blackman window は、主ローブがやや広くなる代わりに、 Hann window よりも強いスペクトルサイドローブ抑制を提供します。
Tukey window の場合、全継続時間の一部 \( \alpha \in [0,1] \) にわたってコサインテーパが適用されます。 正規化時間 \( x=\tau/T \) を定義すると、ウィンドウは次式となります
\[ w(x)= \begin{cases} \dfrac{1}{2}\left(1-\cos\left(\pi x/\frac{\alpha}{2}\right)\right), & 0 < x < \frac{\alpha}{2}, \\[6pt] 1, & \frac{\alpha}{2} \le x \le 1-\frac{\alpha}{2}, \\[6pt] \dfrac{1}{2}\left(1-\cos\left(\pi (1-x)/\frac{\alpha}{2}\right)\right), & 1-\frac{\alpha}{2} < x < 1, \\[6pt] 0, & \text{otherwise}. \end{cases} \]
\( \alpha=0 \) のとき、Tukey window は矩形ウィンドウ (テーパなし)に退化します。\( \alpha=1 \) のとき、 これは Hann window と等価になります。
FDTD においてウィンドウ処理が重要なのは、 波形を急峻に打ち切るとそのスペクトルへ高周波成分が導入されるためです。 滑らかなウィンドウ関数はスペクトル漏れを低減し、 人工的な広帯域励起を抑制することで、DFT モニタを使用する場合や インパルス応答解析を行う場合に、よりクリーンな周波数領域結果をもたらします。