ホーム スクリーンショット ユーザーマニュアル Blueskyロゴ YouTube
OghmaNano 有機/ペロブスカイト太陽電池、OFET、OLEDをシミュレーション ダウンロード

FDTD チュートリアル:シリコン Mach–Zehnder 変調器

シリコン Mach–Zehnder 変調器サンプルの OghmaNano 3D ビュー。
OghmaNano に読み込まれた Silicon Mach–Zehnder modulator サンプル。

1. 概要:何をシミュレーションするか

Mach–Zehnder modulator (MZM) は、電気制御 信号を光振幅(または強度)の変化へ変換する干渉型フォトニック部品です。光は 2 つの導波路アームへ分岐され、相対的な 位相差を蓄積し、その後で再結合されます。出力パワーは 2 つのアームの位相関係に依存します: アームが同相で再結合すると出力は明るくなり、逆相で再結合すると出力は抑制されます。

シリコンフォトニクスでは、MZM は高速データ通信、コヒーレント光学、光インターコネクト、 および集積マイクロ波フォトニクスで広く使用されています。実用デバイスは通常、プラットフォームで利用可能な 電気光学メカニズムを使用して位相制御を実装します(シリコンでは、これはしばしば PN 接合、MOS キャパシタ、またはヒータによる 熱光学調整を介したキャリア分散です)。作動機構に関係なく、デバイスの 光学コア は同じです: 分岐器、2 つの導波アーム、および再結合器です。

このチュートリアルでは、代表的なシリコン Mach–Zehnder 変調器構造の FDTD シミュレーション を実行します。 ここでの目的は完全な電気連成シミュレーションを構築することではありません。その代わりに、時間領域の場伝搬を用いて、 導波エネルギーがどのように分岐し、2 つのアームを通って伝搬し、出力で再結合するかについて直観を養います。あなたは パワー密度スナップショット を確認し、検出器時間トレース を解釈します。これには、アーム内に配置された 検出器間の伝搬遅延、および 2 つのアームが再び合流するさらに下流に配置された検出器での遅延が含まれます。

数値計算の観点から見ると、このサンプルは意図的に「重い」ものです。シミュレーション領域は比較的大きく、 大量のデータをディスクへダンプします。そのため、これは FDTD スタック全体の良いストレステストになります:形状定義、 ソース注入、CPML 吸収境界、時間ステップ、および検出器抽出、さらに出力パイプライン (スナップショットおよび検出器ビューア)を含みます。

2. 新しいシミュレーションを作成する

新規シミュレーションボタンをクリックして、New simulation ウィンドウを開きます。このウィンドウで、 FDTD examples カテゴリを選択し、次に Silicon Mach–Zehnder modulator デモを ダブルクリック します (リストの一番下にあります)。 プロンプトが表示されたら、ローカルディスクにシミュレーションを保存 してください。

このサンプルは実行中に多くのファイル(スナップショット、検出器出力、および中間データ)を書き込みます。そのため、 ネットワークドライブや仮想化/クラウド同期ディレクトリ(例えば OneDrive)には保存しないでください。ローカル SSD が理想的です。 低速なストレージに保存すると、実行時間が劇的に増加したり、出力の書き込み中にインターフェースが重くなったりすることがあります。

ユーザーが FDTD Examples を選択し、Silicon Mach–Zehnder modulator デモを開く OghmaNano New simulation ウィンドウ。
New simulation ウィンドウ。FDTD examples を選択し、Silicon Mach–Zehnder modulator をダブルクリックします。
2 つのレーストラック状アームと色付き検出器を備えた Mach–Zehnder 変調器形状を表示する OghmaNano メインウィンドウ。
Mach–Zehnder 変調器サンプルを読み込んだ後の OghmaNano メインインターフェース。
Mach–Zehnder 変調器シミュレーションによって生成されたスナップショットと検出器出力を一覧表示する Output タブ。
Output タブ:スナップショットと検出器は実行中および実行後にここに表示されます。
Mach–Zehnder 変調器シミュレーションによって生成されたスナップショットと検出器出力を一覧表示する Output タブ。
Output タブ:スナップショットと検出器は実行中および実行後にここに表示されます。

3. メインウィンドウでの見方

デバイスは Device structure タブの 3D view に表示されます (??)。 2 つの干渉計アーム(レーストラック状の導波路経路)と、構造に沿って配置された色付きの検出器 オブジェクト(紫、緑、および赤)を識別できるはずです。正確な色は重要ではありませんが、形状内のどこで信号が モニターされているかを視覚的に把握しやすくします。

このサンプルで主に使用するのは次の項目です:

4. シミュレーションの実行

F9 を押すか、青い再生ボタン (▶) をクリックして実行を開始します。このシミュレーションは比較的大きく、 グリッドサイズが大きく、さらにスナップショットと検出器 データをディスクへダンプするため、完了までにそれなりの時間がかかります。

十分に高性能なノートパソコンでは、典型的な実行時間は 10–15 分 程度です。実行中には、 Output タブを開いてファイルが現れるのを確認できます。特に、snapshots/ ディレクトリが表示され、 シミュレーションの進行に伴って検出器出力(Detector 0、Detector 1、Detector 2)が現れます。

5. パワー密度スナップショットの表示

Output タブから snapshots/ フォルダを開きます (??) するとスナップショットビューアが起動します。代表的なスナップショットビューアのウィンドウを ?? に示します。 青いプラスボタンを使って、powerdensity.csv をビューアに追加します。その後、スライダを使って時間を追うことができます。

このシミュレーションを見るうえで最も有用な方法は、デバイス内を伝搬する 導波エネルギー を追うことです。初期の時刻では、 ソースが入力導波路へ注入され、分岐領域へ到達するのが見えます。時間が進むと、 パワーは 2 つのアームに分かれます。さらに後のスナップショットでは、パワーがレーストラック アームに沿って伝搬し続ける様子が見えます。さらに後では、2 つのアームが再結合し、エネルギーが出力セクションへ ルーティングされる様子が確認できます。

代表的なスナップショットを ???? に示します。デバイス パラメータを変更しなくても、これらのスナップショットにより、これは干渉型構造であることが明確になります:エネルギーは分岐し、2 つの 物理的に分離した経路を通り、その後で再び合流します。

snapshots フォルダから開いたスナップショットビューア。青いプラスボタンで power\_density.csv を追加する。
snapshots/ から開いたスナップショットビューア。powerdensity.csv を追加して時間を追います。
Mach–Zehnder の 2 つのアームにエネルギーが分岐したことを示すパワー密度スナップショット。
中間時刻のスナップショット:パワーは 2 つのアームへ分岐し、レーストラック経路に沿って伝搬します。
注入された場が立ち上がり、分岐領域へ近づく初期時刻のパワー密度スナップショット。
初期時刻のスナップショット:注入された場が立ち上がり、干渉計領域へ向かって伝搬します。

6. 検出器出力の表示

シミュレーション実行中(および完了後)には、Output タブに検出器出力が表示されます (??)。 各検出器項目は小さな CCD 風アイコンのように見えます。検出器をダブルクリックして開き、その後その検出器ディレクトリ内の power.csv をダブルクリックして検出器パワービューアを開いてください。

このサンプルでは 3 つの検出器 を使用しています。2 つの検出器は 2 本の干渉計アームをモニターし(それぞれのアームモニターに導波エネルギーが 到達する時刻を比較できるようにするため)、3 つ目の検出器は 2 本のアームが再結合する最終出力ステージの さらに下流に配置されています。3 つの検出器プロットを ????、および ?? に示します。

この実行では、2 つのアーム検出器でパワーが約 \(3 \times 10^{-13}\,\mathrm{s}\) で立ち上がり始める一方、下流の検出器はそれより遅れて(およそその 約 2 倍の時刻)立ち上がることが観察されるはずです。これは、その検出器がアームが伝搬して再結合した後の、 より下流の伝搬経路上に配置されているためです。これは、構造を通る 伝搬遅延 の直接的で直感的なデモです:アームモニターが 最初に応答し、最終ステージのモニターは、導波エネルギーが物理的にさらに遠くまで伝搬しなければならないため、後で応答します。

Mach–Zehnder の一方のアームからの Detector 0 のパワー対時間プロット。
Detector 0:アームモニター。パワーは \(3 \times 10^{-13}\,\mathrm{s}\) 付近で立ち上がります。
もう一方の Mach–Zehnder アームからの Detector 1 のパワー対時間プロット。
Detector 1:2 本目のアームモニター。立ち上がり時刻は Detector 0 とほぼ同じです。
2 本のアームが再結合する最終出力ステージからの Detector 2 のパワー対時間プロット。
Detector 2:出力ステージモニター。この検出器はさらに下流にあるため、立ち上がりは遅れます。

これらのトレースは完全に滑らかではありません。これは強い時間平均を行っていないためであり、その代わりにモニターを通過する 時間依存の導波成分が見えているからです。これらのプロットを「瞬時」パワーとして解釈することは通常望ましくありません。 このチュートリアルでより有用な解釈は、到達時刻 と、導波エネルギーが伝搬および干渉を続けるにつれて 信号包絡線がどのように変化するかです。

7. 導波モードの確認

Mach–Zehnder 変調器シミュレーションにおいて、検出器の 1 つを通過する光学モードの拡大図。
検出器の 1 つ付近における導波光学モードの拡大図。

シミュレーションが何をしているかをよりよく理解するためには、導波路内の導波 モードを拡大して見ることが有用です。その例を ?? に示します。 この画像では、検出器は導波路の導波モード内に配置されています。

モードは、一連の点または短い線分のように見えます。この外観は単に スナップショットビューアで使用されるレンダリング方法のアーティファクトです:場は離散的なサンプリング点として 表示され、GPU 負荷を軽減し、大規模シミュレーションを 対話的に可視化できるようにしています。このレンダリングスタイルにもかかわらず、導波 モードの伝搬は非常に明瞭であり、場が導波路に沿って移動していることを容易に確認できます。

スナップショットビューアのツールバーにある colour wheel ボタンを使用して、異なる表示スタイルを試すこともできます。これにより パワー密度場の可視化に使われるカラーマップが変更され、干渉パターンや弱い放射 成分が見やすくなる場合があります。

8. 励起波長の変更

Mach–Zehnder 干渉計のようなフォトニック構造の挙動は、 注入される光の波長に強く依存します。OghmaNano に付属するサンプルでは、 波長はシリコン 導波路の導波モードに一致するように選ばれています。ここでの実験として、導波構造が もはや導波伝搬を支持しないように、意図的に波長を変更してみます。

光学メッシュおよびシミュレーション制御を表示する OghmaNano の optical ribbon。
シミュレーションパラメータを設定するための Optical リボン。
FDTD シミュレーションの波長設定を表示する optical mesh editor。
波長設定を表示する optical mesh editor。
励起波長が導波路に閉じ込められない場合に生じる放射パターン。
波長がもはや導波されないときに生じる放射パターン。

?? に示す Optical リボンへ移動し、 optical mesh editor を開きます。波長設定 (??) で、シミュレーションが緑色光で実行されるように波長範囲を変更してください。

開始波長530 nm に、 終了波長531 nm に設定します。これは、 サンプルで元々使用されていた波長よりもはるかに短い値です。

この変更を行った後、シミュレーションを再実行してください。結果を ?? に示します。 光学場は導波路内に閉じ込められたままではなく、シミュレーション領域内へ外側へ広がります。 その結果として、蝶あるいは干渉ファンに似た 印象的な放射パターンが現れます。

これは、波長が導波路 形状に対して相対的にかなり小さくなったため、構造がもはや十分に閉じ込められた導波モードを支持しないからです。 したがって Mach–Zehnder 干渉計はフォトニック回路として振る舞うのをやめ、 単純な放射開口のように振る舞うようになります。

この実験は、集積フォトニクスにおける重要な設計原理を強調しています: 導波路構造は波長に非常に強く依存します。 異なる波長でこの試験を繰り返すことで、この形状においてどのスペクトル領域が 導波伝搬を支持するかを調べることができます。

9. メッシュ分解能と放射モード

デフォルトのサンプルでは、導波路の曲がりが非常に滑らかに見えることに気付くはずです。 これは意図的なものです。滑らかな曲がりは、光学モードを導波路内に閉じ込めたままにし、 光学場が方向を変えるときの放射損失を防ぐ助けになります。

導波路要素の mesh editor を開く方法を示すコンテキストメニュー。
導波路セグメントを右クリックし、Mesh editor を選択します。
曲がった導波路要素のパラメータを示す mesh editor。
曲がった導波路セグメントの mesh editor。
分解能の低い導波路曲がりから漏れ出す放射モード。
導波路の曲がりがギザギザになると生成される放射。

このチュートリアルの Mach–Zehnder 構造は、 レーストラック形状の干渉計を形成する 4 つの曲がった導波路 セグメントから構成されています。滑らかな形状の重要性を示すために、 最も手前にある曲がった導波路要素を右クリックし、 Mesh editor を選択してください (??)。

これにより ?? に示す mesh editor ウィンドウが開きます。 Arc segments と呼ばれるパラメータを探してください。 元のサンプルでは、この値は 32 に設定されており、 滑らかな曲がった導波路を生成します。

arc segments の数を 1 に減らしてください。これは 許可される最小のセグメント数であり、実質的に滑らかな曲がりを 長方形セクションから構成される粗い多角形に変えてしまいます。

シミュレーションを再実行すると、 ?? に示すように、導波路の角付近で強い放射損失が観察されます。 光学場が各鋭い方向変化に到達すると、エネルギーの一部は もはや導波されず、放射として漏れ出します。

ソース注入領域の近くにもいくらかの放射が見られます。この放射は、 注入ソース固有モードと導波路の正確な 固有モードとのミスマッチによって単に引き起こされるものであり、このデモでは無視してかまいません。

10. 光源の編集

最後に、励起ソースをどのように変更できるかを簡単に見ていきます。デフォルトでは、 このシミュレーションは連続正弦波ソースを使用します。しかし、OghmaNano では幅広い ソース種別とパラメータを設定することができます。

シミュレーション構造を表示する Mach–Zehnder 変調器の 3D ビュー。
シミュレーションの標準的なデバイスビュー。
光源を表す緑色の矢印を示すビュー。
光源は構造内で緑色の矢印として表示されます。
光源オブジェクトを編集する方法を示すコンテキストメニュー。
ソースを右クリックし、Edit object を選択します。
パルス継続時間や偏光などのパラメータを表示する light source editor。
波形およびタイミング設定を表示する light source editor。

?? に示すビューへ切り替えると、 導波路の下部から出てくる緑色の矢印として励起ソースが見えます。この矢印を右クリックし、 Edit object を選択してください (??)。

これにより light source editor が開きます (??)。 ここでは励起波形を設定できます。連続正弦 波の代わりにパルスを指定したり、開始時刻と終了時刻を変更したり、異なる 場成分を励起したりできます。

有用な実験として、ソース継続時間をフェムト秒ではなく simulation steps の単位で設定する方法があります。例えば、終了 時刻をおよそ 400 steps に設定してください。シミュレーションを実行すると、ソースは 導波路へ光バーストを注入し、その後オフになります。その後で、 結果として生じる波束が干渉計を通って伝搬し、最終的に構造を離れる様子を観察できます。

異なる場成分(x、y、または z 偏光)の励起や、異なるパルス形状の試験も行うことができます。これらの変化は、 フォトニック デバイスにおける過渡挙動、群遅延、またはパルス歪みを調べる際に極めて有用です。

これで Mach–Zehnder 変調器チュートリアルは終了です。波長、 メッシュ分解能、およびソースパラメータを変えて試すことで、フォトニック構造がどのように光学場を導波し、 閉じ込め、操作するかを、集積フォトニック回路の中で調べることができます。