Transfer matrix モデル (TMM)
1. イントロダクション
transfer matrix 法 (TMM) は、垂直入射条件下における 多層(「サンドイッチ型」)構造内の光伝搬をモデリングするための高速で信頼性の高い手法です。これは 太陽電池、光学フィルタ、センサーなどのデバイスで広く使用されており、 薄膜を通して光がどのように吸収、反射、 透過されるかを定量化する必要がある場合に適しています。
FDTD のようなフルウェーブソルバと比べると、TMM は 通常 桁違いに低い計算コストで同様の知見を得ることができます。このため、 多層スタックの高速な設計反復、パラメータ掃引、最適化に理想的でありながら、デバイス挙動を支配する 主要な干渉効果および薄膜効果をなお捉えることができます。TMM は平面スタックにおける垂直入射の場合に最も単純ですが、 必要に応じて斜入射や偏光依存解析へ拡張することも可能です。
👉 今すぐシミュレーションを始めたいですか?: Transfer matrix モデルに関するクイックスタートチュートリアルを試してください
2. TMM ツールへのアクセス
Transfer Matrix simulation ツールは、 メインウィンドウのOptical リボンから Transfer matrix を選択することでアクセスできます (Figure ?? を参照)。
3. TMM シミュレーションの実行
Run optical simulation をクリックすると (Figure ?? を参照)、 構造内の光分布が波長および位置の関数として計算されます。 シミュレーションウィンドウ上部では、いくつかの光学モデルから選択できます。 Transfer matrix を選ぶと完全な光学シミュレーションが実行され、他のオプションは簡略化した近似を提供し、 代替の生成プロファイルを調べる際に有用です。
利用可能なシミュレーションモードは次のとおりです:
- Transfer matrix: 界面での多重反射および光学損失を含む、完全な transfer matrix 計算を実行します。 これは最も高精度な(かつ推奨される)モデルであり、1D 波動方程式を解いて光学場プロファイルを得ます。
- Exponential profile: 指数減衰を用いて光吸収を近似します: \[I = I_{0} e^{-\alpha x} \label{efield2}\] 層間の透過は次式で与えられます: \[T = 1 - \frac{n_1 - n_0}{n_1 + n_0} \label{equ:transfermatrixreflection}\] このモデルでは反射は無視されます。
- Flat profile: 各層内の光強度が一様であり、界面でのみ Equation ?? に従って減少すると仮定します。 生成の空間変化を持たない条件で電荷キャリアダイナミクスを調べる際に有用です。
- From file: 通常は FDTD などのより高度なソルバによって生成されたカスタム生成プロファイルをインポートします。
- Constant value: 隣接メニューを介して各層に固定生成率を設定できます。 これは概念的研究や性能掃引、たとえば生成率に対する \(V_{oc}\) のプロットなどでよく用いられます。
光学シミュレーションウィンドウには、光がデバイスとどのように相互作用するかを調べるための複数のタブがあります。 たとえば、?? は 構造内部の光子密度を示しており、層界面での反射によって明瞭な干渉パターンが生じていることが分かります。 ?? は、 ?? と同じデータを バンド図として表示したものです。 この別表示はウィンドウ内で右クリックしてメニューオプションを調整することでアクセスでき、 出版用のバンド図作成に特に有用です。 最後に、?? は 光学モデルの設定ウィンドウを示しています。 ここでの重要なパラメータは photon efficiency であり、吸収された光子 1 個あたりに何組の電子–正孔対が生成されるかを指定します。 有機デバイスでは、このパラメータは geminate recombination を考慮するために用いられますが、 無機系または高秩序系では通常 1.0 に近い値に設定すべきです。
5. 出力ファイル
概要: 光学シミュレーションを実行した後、結果の概要は光学シミュレーションウィンドウ (??)で確認できます。 詳細は上で説明したとおりです。より詳しい解析のために、追加情報はメインウィンドウの Output タブにもあります (??)。 ?? には 2 つの主要なアイコン、optical_output および optical_snapshots が表示されています。 optical_output をダブルクリックすると光学結果ウィンドウが開き (Figure ??)、 一方 optical_snapshots をダブルクリックすると Optical Snapshots ウィンドウが開きます (??)。 Optical Snapshots ウィンドウでは、光子密度、吸収光子、 デバイス内部の電場分布などの波長分解データを調べることができます。 各波長ごとに結果が保存されるため、このツールはデバイス性能を 光学スペクトル全体にわたって詳細に確認する手段を提供します。
optical_output および optical_snapshots ファイルは、通常は光学シミュレーションを直接実行したときにのみ生成され、
結合電気シミュレーションの一部として光学ソルバが呼び出された場合には書き出されません。
Optical_snapshots: 上で説明した optical_snapshots フォルダは、グラフィカルインターフェースで表示したときに、 光子密度、吸収光子、光学電場の波長依存データにアクセスする手段を提供します。 しかし、これは単なる標準ディレクトリでもあるため、ファイルマネージャから直接探索することもできます。 Figure ?? に示すように、 このフォルダには 0 から 12 まで番号付けされたサブディレクトリが含まれており、それぞれが 1 つのシミュレーション波長に対応します。 これらのサブディレクトリのいずれか(たとえばディレクトリ 0)を開くと、 Figure ?? に示す出力ファイルが現れます。
これらのファイルには、吸収プロファイル、電場、光子密度、生成率などのデータが含まれており、 いずれも確認や後処理が容易なプレーンテキスト CSV 形式で書き出されます。 下の表は、典型的な波長ディレクトリの内容を要約したものです:
photons_abs.csv の内容例。メタデータに続いて軸ラベルとデータ値が示されています。
これらの出力はプレーンテキストであるため、任意のエディタで開くことができます。 Figure ?? に示すように、 各 CSV の 1 行目にはプロット用メタデータ、2 行目には軸の説明、残りの行には生の数値データが含まれます。
| ファイル名 | 説明 |
|---|---|
alpha.csv |
選択した波長における y 位置 vs. 吸収 |
data.json |
波長値およびプロット情報を含む JSON メタデータファイル |
En.csv |
y 位置 (m) vs. 電場、負成分 (V/m) |
Ep.csv |
y 位置 (m) vs. 電場、正成分 (V/m) |
G.csv |
y 位置 (m) vs. 生成率 (\(m^{-3}s^{-1}\)) |
n.csv |
y 位置 (m) vs. 屈折率 n の実部 |
photons.csv |
y 位置 (m) vs. 光子密度 (\(m^{-3}\)) |
photons_abs.csv |
y 位置 (m) vs. 吸収光子 (\(m^{-3}s^{-1}\)) |
optical_output フォルダの詳細:
optical_snapshots ディレクトリが波長分解結果(シミュレーション波長ごとに 1 サブフォルダ)を保存する一方で、
optical_output ディレクトリには、波長 vs. 位置 の二次元マップという形で
波長積分データが含まれています。
これらの出力は、電荷キャリア生成率、光子密度、規格化光子密度、透過、反射などの主要量を含め、
光がデバイスとどのように相互作用するかをスペクトル全体にわたって概観する手段を提供します。
ディレクトリの内容は
Figure ?? に示されています。
Figure ?? に示すファイルは、 Table ?? に 詳しく説明されています。
optical_output ディレクトリ。
| ファイル名 | 説明 | プロット種別 |
|---|---|---|
data.json |
JSON 形式のシミュレーション設定を含むメタデータファイル | 1D |
G_y.csv |
y 位置 (m) vs. 電荷生成率 (\(m^{-3} s^{-1}\)) | 2D |
G_zxy.csv |
zxy 位置 (m) vs. 電荷生成率 (\(m^{-3} s^{-1}\)) | 2D |
Htot_zxy.csv |
zxy 位置 (m) vs. 光学熱生成 (\(W m^{-3}\)) | 2D |
light_src_id_xxx.csv |
波長 (m) vs. 指定光源からの光強度 (\(W/m\)) | 2D |
photons_abs_yl.csv |
波長 (m) vs. y 位置 (m) vs. 吸収光子 (\(m^{-3} s^{-1}\)) | 2D |
photons_yl.csv |
波長 (m) vs. y 位置 (m) vs. 光子密度 (\(m^{-3}\)) | 2D |
photons_yl_norm.csv |
波長 (m) vs. y 位置 (m) vs. 規格化光子密度 (a.u.) | 2D |
reflect.csv |
波長 (m) vs. デバイススタックからの反射光 | 1D |
transmit.csv |
波長 (m) vs. デバイススタックを透過した光 | 1D |
6. 光学的に厚い層のシミュレーション(非コヒーレント層)
一般的なオプトエレクトロニクスデバイスの活性層厚さは 10 nm から 100 nm 程度です。 しかし、これらのデバイスはしばしば 10 mm から 1 cm の厚さを持つ基板上に形成されます。 多くの場合、デバイス自体だけでなく基板の光学効果もシミュレーションすることが有用です。 そのためには、ナノメートルからメートルまでの長さスケールをまたぐことのできるシミュレーションツールが必要です。 これを行う上で主な課題は 3 つあります:
- 問題 1: 異なる長さスケールのシミュレーション – 非常に大きな数と非常に小さな数を同じ計算で扱う場合、数値ソルバは困難を生じます。 これにより丸め誤差や数値誤差が発生する可能性があります。
- 問題 2: 光の波長 – 可視光の波長は 1 cm よりはるかに小さいため、 1 cm 厚の層をシミュレーションするには、干渉効果を捉えるために実用的でないほど細かい空間メッシュが必要になります。
- 問題 3: コヒーレンスの喪失 – transfer matrix モデルは、光が垂直入射し、層が欠陥のないことを仮定します。 厚い基板では散乱や不均一性によってこれらの仮定が崩れ、 光場は非コヒーレントになります。
OghmaNano はこれらの問題に 2 つの方法で対処します。 第一に、ユーザーは層を 非コヒーレント として扱うことができ、 吸収のみを考慮して位相情報を無視できます。 この方法は問題 2 と 3 を解決します。 このオプションは layer editor で設定できます (Figure ??)。 Solve optical problem と書かれた列では、Yes – n/k とマークされた層は位相と吸収の両方を含み、 一方 Yes – k とマークされた層は減衰のみを考慮し、実質的に非コヒーレント層として扱われます。
第二に、問題 1(大きな長さスケール差)を扱うために、 OghmaNano では任意の層に 有効光学厚さ を割り当てることができます。 たとえば、基板は layer editor では 100 nm 厚として定義しつつ、 有効深さとして 1 m を割り当てることができます。 内部的には、これは吸収係数のスケーリングによって実装されます:
\[\alpha_{\text{effective}}(\lambda) = \alpha(\lambda)\,\frac{L_{\text{effective}}}{L_{\text{simulation}}}\]
ここで \(\alpha_{\text{effective}}\) はシミュレーションで使用されるスケーリング後の吸収、 \(\alpha\) は材料の吸収係数、 \(L_{\text{effective}}\) は希望する有効厚さ(たとえば 1 m)、 \(L_{\text{simulation}}\) はエディタにおける実際の層厚です。 この方法は数値的問題を軽減するだけでなく、より有用なプロットも生成します。 つまり、基板が軸を支配せず、デバイス層がなお明瞭に見えるようになります。
この機能を使用するには、 Figure ?? に示すようにデバイス構造を設定してください。 その後、Transfer Matrix ウィンドウで Optical Thickness ボタンをクリックします (Figure ??)。 これにより設定ダイアログが開きます (Figure ??)。 ここで任意の層の有効光学厚さを指定できます。 示した例では、ガラス基板を 1 m に設定しています。
4. TMM はいつ実行されるのか?
transfer matrix シミュレーションは 2 つの方法で実行できます。 第一に、Play ボタンをクリックして直接起動できます。 あるいは、電気シミュレーションを実行した際に光学モデルが自動的に実行されるため、追加のユーザー操作は不要です。
この 2 つのモードの主な違いは出力にあります。 直接実行した場合、光学シミュレーションはより完全な出力ファイル群をディスク上に生成します。 一方、電気シミュレーションの一部として呼び出された場合は、電気ソルバを遅くしないように、出力は必要最小限のデータのみに削減されます。
👉 TMM 理論: transfer matrix 理論を理解するには 次のセクションへ進んでください。