フォトニック結晶チュートリアル:フォトニック結晶および導波路のシミュレーション
1. フォトニック結晶と導波路の概要
フォトニック結晶とは、光の波長スケールで屈折率が周期的に変化する光学構造のことである。典型的な例としては、??に示すように規則正しく配列された空気孔を有する誘電体板が挙げられる。このような周期構造によってフォトニックバンドギャップが生じ、これは光が結晶内を伝播できない波長範囲を意味する。この現象は半導体における電子のバンドギャップと類似しているが、対象が電子ではなく光子である点が異なる。格子構造に意図的に欠陥、例えば空気孔の列を取り除くといった処置を施すことで、バンドギャップ内に光モードを形成することが可能となる。こうして生成された領域では光が閉じ込められ、極めて低損失の状態で曲がりくねった経路を通っても伝播できる。このようなフォトニック結晶導波路は、光インターコネクト、共振器、フィルター、センサー、波長選択型コンポーネントなど、数多くの集積型光デバイスの基盤となっている。
このチュートリアルでは、OghmaNanoの有限差分時域法(FDTD)ソルバーを用いて二次元フォトニック結晶を構築・シミュレーションします。ステップエディターを利用して周期的な格子を生成し、FDTD光源を用いて構造物内に光を入射させ、電磁場分布を可視化します。さらにFDTD検出器およびスペクトル抽出機能を用いて波長ごとの透過スペクトルを算出します。格子の幾何形状を変更することでフォトニックバンドギャップがどのようにシフトするかを確認でき、欠陥を導入することでフォトニック結晶導波路が形成され、その中を伝播する光の様子も観察可能となります。
フォトニック結晶は、チップ上でごく小さな領域しか占めないにもかかわらず光の伝播を精密に制御できるため、現代の集積フォトニクス分野で広く利用されている。したがって、フォトニックバンドギャップがどのように形成されるか、また欠陥を利用して光モードをいかに操作できるかを理解することは、高度なフォトニックデバイスを設計する上で不可欠なステップとなる。
2. 新規フォトニック結晶シミュレーションの作成
WindowsのスタートメニューからOghmaNanoを起動し、[新規シミュレーション]をクリックすると、利用可能なデバイスタイプの一覧が表示されます。この一覧は??に示されています。
[新規シミュレーション]ウィンドウ(??)内で「FDTD examples」をダブルクリックすると、??に示す光学/FDTD用テンプレートの一覧が表示される。この一覧にはファブリ・ペロー共振器、自由空間、集積フォトニクス用リング共振器、マッハ・ツェンダー変調器、および複数の導波路が含まれる。本チュートリアルでは「Photonic crystal」をダブルクリックする。その後、書き込み権限のあるフォルダーにシミュレーションデータを保存するよう求められる。
💡 ヒント:最適なパフォーマンスを得るためには、C:\ のようなローカルドライブにシミュレーションデータを保存してください。ネットワークドライブやUSB、クラウドフォルダー(例:OneDrive)に保存した場合、頻繁な読み書き処理により シミュレーションが遅くなる可能性があります。
3. シミュレーションを実行する
保存が完了するとメインウィンドウが開きます(??参照)。このデバイスは誘電体柱(赤色の円柱)の配列であり、光源の近くに位置する紫色の入力検出器と反対側にある緑色の出力検出器の間に配置されています。xy/yz/xzボタンを使用して視点を調整できます。「Run simulation」ボタン(青色の再生アイコン)をクリックするかF9キーを押してください。処理能力が低いマシンではFDTD計算に多少時間がかかる場合があります。
計算が完了したら、出力タブ(??)を開いてソルバーが生成したファイルを確認してください。任意のファイルをダブルクリックすると、該当するビューアーで開かれます。
snapshotsフォルダ、および入力・出力検出器によって記録されたスペクトルが格納されているdetector0およびdetector1フォルダがある。ファイルまたはフォルダをダブルクリックすると、それらが開く。4. 電場の伝播状況を観察する
snapshotsフォルダをダブルクリックしてスナップショットビューアー(??)を開いてください。表示されるファイルはEy.csvであり、これは電場の各成分のうちの1つです。色付きのワイヤーフレーム面として描画されており、色と高さの両方が単位V/mで表される電場強度を表しています。
プロット下にあるスライダーを動かすことで時間を進めていきます。そうすると、発射されたパルスが左側の光源から広がり、フォトニック結晶に衝突した後、一部が散乱され、また一部が透過していく様子が確認できます。電場の時間的変化を観察することこそ、得られた数値が妥当であるかを直感的に検証する最良の方法なのです。
Ey.csvがワイヤーフレーム形式で描画される。
5. 検出器と透過スペクトル
さて、2つの検出器が記録したデータを見てみましょう。[Output]タブからdetector0およびdetector1フォルダーを開くと、それぞれにlam_E.csvというファイルが存在します。このファイルには、各検出器に到達した波長ごとの電場強度|E|2の値が記録されています。この2つの検出器は、デバイス表示画面上に見える紫色および緑色のグリッドがそれに相当します。
detector0内のlam_E.csvを開くと入力スペクトル(??)が得られる。これは構造体に入射された広帯域パルスであり、そのエネルギーの大部分は900 nm付近にある。またdetector1内のlam_E.csvを開くと出力スペクトル(??)が得られ、対数軸上にプロットされる。ほとんどの波長において光が大幅に減衰していることに注目されたい。これはフォトニック結晶がそれらの波長を遮断しているためである。
目視で2つの生のスペクトルを比較するのは困難であるため、検出器フォルダ内にはlam_norm.csvとして|EOutput|2/|EInput|2の比が記録されている。これがフォトニック結晶の透過スペクトルに相当する。このファイルをダブルクリックすると??が得られる。
1000nm付近に現れる明確なピークは、フォトニック結晶が透過させる波長帯域を示しています。一方、その両側で強く抑制されている領域がフォトニックバンドギャップであり、光の伝播が禁止される範囲となります。つまり、この1本の曲線だけで結晶が透過させる波長とバンドギャップの位置の両方が把握できるのです。
detector0/lam_E.csv):結晶に入射する広帯域パルスで、波長約900 nm付近でピークを示す。この値が出力データと比較される基準となる。
detector1/lam_E.csv)による対数スケールでの測定結果である。ほとんどの波長はフォトニックバンドギャップ内に位置するため、数桁にわたって強く抑制されている。
lam_norm.csvから得られた透過スペクトル |EOutput|2/|EInput|2である。1000 nm付近に現れるピークが、フォトニック結晶が透過させる波長を示しており、抑制されている波長はすべてフォトニックバンドギャップ内に位置している。6. 柱構造の半径の調整
フォトニック結晶のバンドギャップの位置は、その格子構造によって決定される。これを確認するため、デバイスビュー上でフォトニック結晶を右クリックし、メニューからメッシュエディタを選択する(??)。メッシュエディタ(??)を使用すると、結晶を構成する繰り返し構造の形状を変更できる。ここでは半径100ナノメートル、高さ400ナノメートルの円筒形構造が用いられており、さらに設定されたリング数やセグメント数によってメッシュの細かさも制御される。
柱構造の半径を150ナノメートルに変更します。デバイス表示画面では柱構造が明らかに太くなっているのが確認できます(??)。その後シミュレーションを再実行し、lam_norm.csvを再度開くことで更新された透過スペクトルを生成します(??)。
次に、柱構造の半径を120ナノメートルに設定し、再びシミュレーションを実行します。得られた透過スペクトル(??)は約1200ナノメートル付近でピークを示し、これは100ナノメートルの場合と150ナノメートルの場合の中間的な値となります。明らかな傾向として、柱構造の半径を大きくするほどフォトニックバンドギャップが長波長側へ移動します。このように単一の幾何学的パラメータを調整するだけで、フォトニック結晶のバンド構造や透過する波長を自在に制御できるのです。
7. フォトニック結晶導波路の構築
これまでのところ、フォトニック結晶の格子は自動的に生成されていました。その仕組みを確認し、ユーザー自身で制御するには、フォトニック結晶を右クリックして「オブジェクト編集」を選択してください(??)。オブジェクト編集画面(??)には、そのオブジェクトに関するすべての情報が記載されています。すなわち位置情報、チューブ形状、光学材料(ここではシリコン)、そして「ステップ」行に記載された格子生成規則です。この行にある…ボタンをクリックすると、ステップエディタが開き、そこで結晶格子や繰り返し構造、スクリプトで定義された幾何形状の作成・変更が可能となります。
「ステップ」行にある…ボタンをクリックするとステップエディタが開く。「Crystal」タブ(??)においては、3つの格子ベクトルとオブジェクト数によって格子が定義される。ここではa1 = (400 nm, 0, 0)によりx軸方向の格子間隔が400 nmとなり、a2 = (0, 1 µm, 0)はy軸方向の単層構造を表す。またa3 = (200 nm, 0, 346 nm)により各列が半分の格子間隔分だけオフセットされる。この200 nmのシフトに加え346 nmという値は400 nm × √3/2に相当し、これによりよく知られた三角格子(六方最密充填構造)が形成される。この結晶構造はx軸方向に10回、y軸方向に1回、z軸方向に10回繰り返される。
clear_points()およびadd_point()であり、すべての座標値はメートル単位で指定される。
規則正しい格子構造は最も単純な例ではあるが、唯一の可能性というわけではない。Luaスクリプトボタンをクリックするとエディタがスクリプト編集モードに切り替わる(??)。ここでは、あらかじめ定義された格子構造からではなく、プログラム的に柱構造の位置が生成される。必要なコマンドはわずか2つだけで、clear_points()は既存の柱構造位置をすべて削除し、add_point(x, y, z)は指定された座標に新たな柱構造を追加する。これらのコマンドをループ処理や条件分岐文と組み合わせることで、ほぼあらゆるフォトニック結晶の幾何形状を生成することが可能となる。
??に示すスクリプト例では、ピッチ400nmの13×10格子が生成される。少数のif文を用いることで、特定の柱構造に対してskip=trueが設定され、それらの柱が構造内に追加されないようになっている。こうして生じた柱構造が欠落した部分が、結晶内に欠陥チャネルを形成している。この例では、その欠陥がU字型の経路を描いており、??に示すフォトニック結晶導波路が形成されている。
シミュレーションを再実行し、lam_norm.csvを再度開いてください。そうすると、導波路の透過スペクトル(??)には、かつては単一の広いバンドしか存在しなかったのに対し、今度は複数の狭い透過ピークが現れます。これらのピークは、フォトニックバンドギャップ内にある欠陥チャネルによって支持される導波モードに対応しています。これらの波長の光は導波路内に閉じ込められ、曲がり部を通過してうまく伝送される一方、導波モードに該当しない波長の光は周囲のフォトニック結晶によって遮断されます。
おめでとうございます!フォトニック結晶の有限差分時域法シミュレーションを実行し、その透過スペクトルを測定したほか、格子構造の変化に伴うフォトニックバンドのシフト現象を調査しました。さらに格子内に欠陥を導入することで、機能するフォトニック結晶導波路も作成できたのです。
8. 有限差分時域法シミュレーションの出力結果
各FDTDシミュレーション実行ごとに、電場の時間的変化状況や各検出器で記録されたスペクトル、さらにはデバイス自体の幾何構造など、光学的挙動のさまざまな側面を捉えた出力データが生成される。これらのファイルは通常、単純なCSV形式であり、OghmaNanoに内蔵されたビューアで直接開くことも、外部ツール(例えばExcelやPython)を用いて処理することも可能である。本フォトニック結晶研究において最も重要な出力データを以下の表1にまとめる。
| ファイル名 | 説明 |
|---|---|
| detector0/lam_E.csv | 入力スペクトル |E|2と波長の関係(紫色の検出器) |
| 検出器1/lam_E.csv | 出力されるスペクトル|E|²と波長の関係(緑色検出器) |
| detectorN/lam_norm.csv | 波長に対する透過率 |Eout|2/|Ein|2 |
| スナップショット/ | 電場の時間的スナップショット(例:Ey.csv)。??も参照のこと。 |
| device.csv | 3次元デバイス/幾何形状モデル |
| escape.csv | シミュレーション領域から漏れ出るエネルギー |
| power.dat | 電場強度と時間の関係 |
| conv.dat | 有限差分時域法ソルバーの収束性 |
| gui_config.json | 保存済みのビュー/プロット設定については ?? を参照してください |