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

FDTD チュートリアル: 二重スリット(連続正弦波)

1. はじめに

二重スリット実験は、光が波として振る舞うことを示す古典的な実証です。コヒーレント光源が 2 つの 狭い開口を照射し、透過した場はスリットの先の領域へ広がります。両方の開口は コヒーレントな波面を放射するため、互いに干渉します。位相が一致する領域では強度極大が形成され、位相が反対の 領域では極小が形成されます。その結果、干渉縞で変調された特徴的な扇状の回折パターンが生じます。

組み込みの Double slit 例を実行し、OpenCL デバイスが検出されていることを確認し(これによりシミュレーションは 利用可能な場合に GPU 上で実行できます)、その後、パワー密度スナップショットを調べて、波面が 2 つの開口を通して回折し、自由空間領域で期待される干渉パターンを形成する様子を確認します。

2. 新しいシミュレーションの作成

OghmaNano のメインウィンドウから開始し、New simulation をクリックします。New simulation ブラウザで、 FDTD examples をダブルクリックし、その後 Double slit をダブルクリックします (??, ??)。 これにより、 ?? に示すメインシミュレーションウィンドウが開きます。

FDTD examples オプションを含むカテゴリを示す OghmaNano New simulation ウィンドウ。
New simulation を開き、FDTD examples をダブルクリックします。
Double slit 例を含む FDTD 例の一覧。
FDTD 例一覧から Double slit を選択します。

3. メインウィンドウでの確認

例を読み込むと、ジオメトリは Device structure タブに表示されます (??)。 Terminal タブには、実行中のソルバー出力が表示され、格子間隔、タイムステップ、およびどの OpenCL デバイスが選択されたかが含まれます。Output タブには、スナップショットを含む ディレクトリなど、シミュレーションによって生成されたファイルが一覧表示されます。このディレクトリには時間依存のパワー密度データが含まれています。

Double slit FDTD 例が読み込まれた OghmaNano のメインウィンドウ。
Double slit 例を読み込んだ後のメイン OghmaNano インターフェース。
シミュレーション実行中および OpenCL デバイス選択を示す Terminal タブ。
実行中の Terminal タブ。Searching for OpenCL devices とデバイス選択を確認してください。

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

Run simulation(▶)をクリックするか、F9 を押して計算を開始します。 ソルバー出力は Terminal タブに表示されます (??)。 この例では、OghmaNano が OpenCL デバイスを検索中 であり、 OpenCL デバイスが見つかって選択されたことを示す緑色のステータス行が表示されます。

これは性能上重要です。OpenCL 対応 GPU(統合型またはディスクリート型)が利用可能な場合、OghmaNano は CPU ではなく GPU 上で FDTD 更新ステップを実行できます。これは通常、この種の格子ベースの 計算では大幅に高速です。ほとんどの最新コンピューターは少なくとも 1 つの OpenCL デバイスを備えているため、多くの場合、 デバイスは自動的に選択されます。互換性のあるデバイスが見つからない場合でも、シミュレーションは CPU 上で実行されますが、 単に時間が長くかかるだけです。

5. 出力の確認

実行が完了したら、Output タブを開いてシミュレーションによって生成されたファイルを表示します。出力一覧は ?? に示されています。 ここから snapshots/ フォルダーを開くことができ、実行中に保存された時間依存の場由来物理量が 含まれています。

snapshots フォルダーを含む、Double slit シミュレーションによって生成されたファイルを一覧表示する Output タブ。
実行後の Output タブ。snapshots/ を開いて時間領域のパワー密度スナップショットを表示します。

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

Output タブで snapshots/ ディレクトリをダブルクリックしてスナップショットビューアを開きます。その後、 プロットするファイルとして power_density.csv を選択します。ビューア下部のスライダーで時間を順にたどることができ、 シミュレーションの進行に伴って電磁エネルギー密度がどのように変化するかを確認できます。

???? に示すシーケンスは、期待される物理を示しています。連続正弦波は構造に入射し、2 つの開口に到達し、 その後スリットの先の領域へ回折します。2 つのコヒーレントな放射源が存在するため、広がる波面は重なり合い、 建設的干渉と破壊的干渉に対応する交互の帯を持つ扇状の回折領域を形成します。

スナップショットビューアの配色は Colors をクリックして変更できます。これはシミュレーション 結果を変更するものではなく、同じデータを表示パレットへどのように割り当てるかのみを変更します。出版や教育目的では、 背景に対して干渉縞が見やすくなるようにパレットを切り替えることが有用です。

Double slit シミュレーションのパワー密度の初期時刻スナップショット。
初期時刻のスナップショット: CW 光源が入射し、パワーがスリット領域へ向かって伝搬し始めます。
パワー密度がスリット領域に到達していることを示すスナップショット。
パワーが開口に到達し、2 つの開口を通して回折し始めます。
スリットの先で干渉の扇形が現れ始める様子を示すスナップショット。
回折した場が重なり合い、スリットの先で干渉の扇形が見え始めます。
発達した回折 / 干渉パターンを示す後期時刻スナップショット。
後期時刻のスナップショット: CW 場が定常的な振動状態に近づくにつれて、干渉構造がより明瞭になります。

7. 観察結果の解釈

二重スリット結果の重要な特徴は、2 つの効果の組み合わせです。第一に、各開口は回折を生じるため、 単一スリットであっても透過場は広がる分布へと拡がります。第二に、2 つの 開口は同じコヒーレント光源によって励起されているため、透過場は位相関係を保ち、その重ね合わせにより 干渉縞が生じます。スナップショットでは、これはスリットの先の領域における構造化されたパターンとして現れ、 高パワー密度の帯が低パワー領域によって隔てられています。

連続正弦波 (CW) 実行では、通常、領域が入射場で満たされるまでの初期過渡があり、 その後、場が正弦波的に振動し、スナップショット間隔で見たときにパワー密度パターンが時間的に安定に見える 状態へ移行します。強い不要反射、境界付近の予期しない明るい帯、または 不安定に増大する場が見られる場合、通常の原因は境界条件、吸収層厚さの不足、または 選択した格子分解能に対して過大なタイムステップです。

8. クイックチェックと一般的な失敗モード

9. 光学検出器の有効化

二重スリットの例では、ユーザー定義の検出器領域に入射する光パワーを任意で記録できます。これらの検出器は シミュレーション領域内に配置された小さなモニタリング窓のように動作します。実行中、OghmaNano は各 検出器領域を横切るパワーを積分し、時間トレースを出力ディレクトリに保存します。

検出器を有効にするには、Optical リボンへ移動し、CCD スタイルのカメラアイコンで表示される Optical Detectors ボタンを見つけます (??)。

Optical Detectors アイコン(CCD カメラ)を強調表示した OghmaNano Optical リボン。
Optical リボン。Optical Detectors(CCD カメラアイコン)をクリックして検出器を編集および有効化します。

Optical Detectors をクリックすると、検出器エディターが開きます。この例には 2 つの検出器( onetwo)があり、どちらも初期状態では無効です。検出器が無効な場合、ツールバーには赤色の Disabled 状態が表示されます。無効ボタンをクリックして有効にすると、インジケーターは緑色に変わり、検出器が有効であることを示します (??, ??)。 2 つ目の検出器についても同じ操作を行い、両方を有効にしてください。

検出器エディターでは、検出器の位置 (x, y, z) およびそのサイズ(マイクロメートル単位)も確認できます。このチュートリアルではこれらの値を 変更する必要はありません。この例は重要な物理的ポイントを示すように事前設定されています。すなわち、一方の検出器は 高い回折強度の領域に置かれ、もう一方は回折場が比較的弱い領域に置かれています。

Disabled 状態が強調表示された検出器一覧を示す Optical detectors エディター。
検出器エディター: 両方の検出器は初期状態で Disabled です。
緑色のインジケーターで検出器が有効化されたことを示す Optical detectors エディター。
無効ボタンをクリックして検出器を有効にすると、インジケーターは緑色に変わります。
有効化後にシミュレーション領域内で 2 つの検出器が表示されたメインウィンドウ。
両方の検出器を有効化すると、メインシミュレーション表示に 2 つの検出器領域が現れます。

10. 再実行して検出器出力を表示する

検出器を有効にした後、シミュレーションを再実行します(▶ または F9)。実行が完了したら、Output タブを開きます。 これで、検出器結果に対応する 2 つの追加出力項目(例えば detector0detector1)が表示されるはずです。これは ?? に示されています。 各検出器項目をダブルクリックして、そのパワー対時間プロットを開きます (??, ??)。

検出器を有効化して再実行した後に新しい detector0 および detector1 項目を示す Output タブ。
再実行後の Output タブ: 検出器出力が新しい項目として表示されます。
低パワー信号を示す Detector 0 のパワー対時間プロット。
Detector 0: 非常に小さい収集パワー(y 軸スケールに注意)。
遅れて到達するより強い信号を示す Detector 1 のパワー対時間プロット。
Detector 1: 波面が検出器領域に到達した後、はるかに大きな収集パワーが現れます。

2 つのトレースの違いは、それぞれの縦軸スケールを比較すると最も理解しやすくなります。一方の検出器は 数マイクロワット(またはそれ以下)のレベルのパワーしか記録しませんが、もう一方は回折場が到達すると 大幅に大きな信号を記録します。両方のトレースで立ち上がりが遅れるのは予想どおりです。シミュレーションは t=0 で光源がオンになって開始され、検出器は電磁波が光源からスリットを通り、 自由空間領域を横切ってそれぞれの位置まで伝搬するまで応答できないからです。

11. 物理的解釈: 検出器と回折ローブ

2 つの検出器を配置する目的は、時間領域データを空間的な回折パターンに結びつけることです。二重スリット系では、 遠方場構造は一様ではありません。2 つのスリットからの寄与が建設的に加算される方向(高強度)もあれば、 破壊的に加算される方向(低強度)もあります。言い換えると、回折場はローブと谷を形成し、 測定される検出器パワーは、その検出器が明るい領域にあるか節にあるかに強く依存します。

これは、検出器を表示したスナップショットビューに直接見られます (??)。 一方の検出器は強い回折ローブの経路上にあり、そのため大きな光パワーを蓄積します。もう一方の検出器は 干渉が主として破壊的である領域(パターンの谷)にあるため、そのモニター面積を横切るパワーは 比較的小さくなります。このため、2 つの出力トレースは検出器自体が同一であるにもかかわらず、桁違いに異なります。

2 つの検出器領域を含む回折 / 干渉パターンを示すスナップショット。一方は明るいローブ内、もう一方は弱い領域内にある。
検出器を表示したスナップショット: 一方の検出器は強い回折ローブ内に配置され、もう一方は低強度領域に置かれています。

概念的には、これは光学計測およびイメージングで使われるのと同じ物理です。検出器はシミュレーション全体の抽象的な「総パワー」を測定するのではなく、 その特定位置にある有限面積を通過する場の部分だけを測定します。検出器をわずかに移動するだけで、 明るい縞から隣接する暗い縞へ移ることがあり、測定パワーは劇的に変化します。実際の システムでは、この感度こそが回折および干渉パターンが有用である理由です。すなわち、それらは幾何学的情報(スリット間隔、 開口サイズ、波長)を測定可能な強度分布へ符号化します。

12. スリットの調整

数値 FDTD 実験の利点の 1 つは、ジオメトリを対話的に変更でき、 その結果生じる光学挙動を即座に調べられることです。この節では、 二重スリット開口を形成する中央の遮蔽要素の位置を変更し、 それによって回折パターンおよび 2 つの光学検出器で検出されるパワーがどのように変化するかを観察します。

3D device window 内でマウスを使用して二重 スリットを形成する中央ブロックを選択し、 ?? に示すように構造の左側へドラッグします。 通常、オブジェクトをドラッグ中は互いを通過できませんが、ブロックが他のオブジェクトと衝突する場合は ドラッグ中に Shift キーを押したままにできます。これにより、 ブロックは他のジオメトリを通過できるため、容易に再配置できます。

ブロックを移動した後、シミュレーションを再実行します(▶ または F9)。得られる光学 場分布は ?? に示されています。

3D ウィンドウでマウスを使って二重スリットの中央ブロックを移動している様子。
マウスを使って中央ブロックを構造の左側へドラッグしています。
回折が減少したことを示す、スリットブロック移動後のシミュレーション結果。
スリットジオメトリ移動後のシミュレーション結果: ビームは開口をより直接通過し、検出器をほとんど外れます。

この構成では、光ビームはもはや 2 つの同程度の回折光源へ分岐しません。 その代わり、光は主として単一開口を通過し、より コリメートされた形で前方へ伝搬します。有限開口はすべて波動光学に従って広がりを生じるため、 回折自体は依然として起こりますが、以前に 2 つの コヒーレントなスリットによって生じていた干渉パターンは大幅に弱くなります。その結果、検出器が受ける光 パワーは元のジオメトリに比べて非常に小さくなります。

13. ブロックを光源側へ移動する

次に、別の方法でジオメトリを変更します。再びマウスを使って中央ブロックを ?? に示すように光源方向へ後方にドラッグします。 前と同様に、必要に応じて Shift キーを押したままドラッグすることで、 ブロックを他のオブジェクトを通して移動できます。

ブロックを再配置したら、シミュレーションを再実行します。得られた場分布は ?? に示されています。

マウスを使って中央ブロックを光源側へ移動している様子。
中央ブロックを光学光源側へ後方移動します。
開口ジオメトリ変更後の修正された回折パターンを示すシミュレーション結果。
開口ジオメトリ変更後に得られる回折パターン。

遮蔽要素を光源に近づけると、有効開口ジオメトリが変化し、 その結果、透過光場の空間分布も変化します。回折は、 入射波面に対する開口の形状と位置に敏感に依存するため、 比較的小さな幾何学的変更でも、結果として得られる干渉 構造を大きく変えることがあります。この場合、回折ビームは異なる角度で出射し、干渉 パターンもそれに応じて変化します。

これは波動光学シミュレーションの重要な特徴を示しています。すなわち、回折パターンは 完全にジオメトリと波長によって決定されます。構造の物理レイアウトを変更することで、 開口形状、スリット間隔、および障害物配置が結果の光学 場分布や、シミュレーション領域内に配置された検出器で測定されるパワーにどのように影響するかを調べることができます。

14. メッシュエディターを用いたレンズの追加

前の節では、開口ジオメトリの変更が回折パターンをどのように変えるかを調べました。この最後の節ではさらに一歩進んで、 Mesh editor を用いて単純なオブジェクトをより複雑なメッシュへ変換する方法を示します。これは OghmaNano における強力なワークフローです。単純なプリミティブから始めて直感を得た後、 レンズ、曲面、インポートした CAD メッシュなど、より現実的な光学コンポーネントを段階的に導入できます。

まず、デバイスビューを ?? に一致するよう再配置します。その後、二重スリット 構造の中央ブロックを右クリックし、Mesh editor を開きます。これにより ?? に示すエディターが開きます。 メッシュエディターで、Lens ボタンをクリックし、 ?? に示すパラメータを正確に入力してください。

これらの値により、レンズ形状のオブジェクトを生成できます。レンズをデフォルトの向きのままにすると、 ?? に示すように、デバイスビューでは「平らな」 レンズとして表示されます。このチュートリアルでは、レンズがシミュレーション平面内に平らに寝ている状態は望ましくありません。そうすると光学場は 有意な形で相互作用しないからです。レンズは直立し、伝搬波面を遮るように 回転させる必要があります。

レンズ作成のためにメッシュエディターを開く前に再配置したデバイスビュー。
中央ブロックを選択して編集できるようにビューを再配置します。
右クリックメニューから開いた Mesh editor ウィンドウ。
選択したオブジェクトの Mesh editor を開きます。
レンズ形状を生成するために使用した正確なパラメータを示すメッシュエディター内のレンズ設定。
Lens をクリックし、示されたとおり正確にパラメータを入力します。
シミュレーション平面内に平らに配置された状態で作成されたレンズ。
レンズは初期状態では平らに表示されます。波面と相互作用するように回転させる必要があります。

15. レンズの回転と光学材料の設定

新しいレンズオブジェクトを回転させるには、レンズを右クリックして Object editor を開きます。これにより ?? に示すエディターが開きます。 回転角を図のとおり正確に 90900(x, y, z)に設定してください。これにより レンズは伝搬経路内で直立し、入射場と強く相互作用できるようになります。

オブジェクトエディターにいる間に、図に示された光学材料を選択してレンズを光学的に透明にします: inorganic/Si/Green-2008。これはシリコンの便利な広帯域屈折率プロファイルであり、屈折および集光挙動の 実証に適しています。この材料を割り当てると、レンズは単なる幾何学的 遮蔽物ではなく、真の屈折性オブジェクトになります。

回転と材料を設定した後、ジオメトリは ?? のようになるはずです。 ここでレンズはシミュレーション領域内で垂直に立っています。

回転が 90, 90, 0 に設定され、光学材料が inorganic/Si/Green-2008 に設定された Object editor。
Object editor で回転を 90, 90, 0 に設定し、inorganic/Si/Green-2008 を割り当てます。
波面が相互作用できるようにデバイスビュー内で直立回転されたレンズ。
回転後のレンズ: これで光路内に直立して配置されます。

16. レンズを含む FDTD シミュレーションの実行

レンズを配置した状態でシミュレーションを再実行します。代表的なパワー密度スナップショットを ?? に示します。 入射波面が曲面屈折面と相互作用する様子が明瞭に確認できます。場の一部は レンズを通って透過し屈折し、一部は光源方向へ反射して戻ります。

透過場はレンズ内部およびその周囲でより密な波面構造の領域を形成し、出射場には 集光の兆候が見られます。すなわち、透過エネルギーは裸の開口の場合のように自由に拡がり続けるのではなく、より小さな領域へ 集中します。同時に、レンズからの反射により、光パワーのかなりの割合が開口領域へ 戻されるため、下流に配置された検出器へ到達するパワー量は減少します。これはまさに物理的に予想される挙動です。すなわち、屈折性 要素はその界面でインピーダンス不整合を導入し、レンズに反射防止膜がないか屈折率整合されていない限り、Fresnel 反射は 大きくなり得ます。

この例は、実用的なシミュレーションにおいて「メッシュ変換」ツールがなぜ重要かを示しています。単純な系であっても、すぐに 曲面や設計された光学部品が支配的になります。基本的なブロックをレンズ(あるいは他の任意のメッシュオブジェクト)へ 変換できることで、FDTD に用いるのと同じワークフローの中で直接光学系を構築できます。同じ手法は、 マイクロレンズ、集光器、回折光学素子、 波面整形構造、あるいは現実的なデバイス用にインポートした CAD ジオメトリの作成と検討にも使用できます。

レンズに当たる波面、光源方向への強い反射、レンズを通した透過、および集光を示す FDTD スナップショット。
屈折レンズを含む FDTD 結果: 入射波面は部分的に反射し、部分的に透過し、透過場には集光が示されています。