表面レリーフ型グレーティングの回折効率を RCWA 法でシミュレーションする

この記事では、OpticStudio 20.1 で新たに導入された複数なダイナミック リンク ライブラリ (DLL) ファイルを紹介します。どちらも、一次元表面レリーフ型グレーティングをモデル化する回折 DLL です。

この記事では、まずこれらの DLL で使用している計算法を概説したのち、そのパラメータについて説明します。最後に 2 つの計算例を示します。

この記事では、20.2で追加された可視化(Vizualisation)ツールを使ってグレーティングのプロファイルを確認する方法についても説明します。

これらの機能は、OpticStudio の Premium サブスクリプション エディションでのみ使用できます。

Authored By Michael Cheng

ダウンロード

添付ファイルのダウンロード

 

序章

表面レリーフ型グレーティング (SRG) は、分光器、ビーム スプリッタ、3D スキャン システム、回折レンズ、パルス増幅システムなど、これまでのさまざまな光学系に広く使用されてきました。最近では、ヘッドアップ ディスプレイ (HUD)、拡張現実 (AR) や仮想現実 (VR) のヘッドマウント ディスプレイ (HMD) をはじめとする最先端用途でも SRG の応用が進んでいます。SRG には、必要とするあらゆる角度に光線の回折を発生する能力と、波長や角度に対する選択性があることから、SRG を使用することで光学系を小型軽量化できます。これまでの設計で同じ性能を実現しようとすると、通常はプリズムや自由曲面を使用した複雑で大型の構造が必要になります。

OpticStudio は、長年にわたりグレーティングのシミュレーションをサポートしてきましたが、回折効率は扱ってきませんでした。回折効率と回折光線の偏光状態を正確に扱うには、グレーティングの微細構造などの特性を光学シミュレーションで考慮することが重要になります。

この記事では、台形グレーティングと階段グレーティングのプロファイルをモデル化する 2 つの DLL について検討します。

 

表面レリーフ型グレーティングと体積ホログラフィック グレーティング

このモデルについて紹介する前に、表面レリーフ型グレーティングと体積ホログラフィック グレーティング (VHG) の違いについて簡単に説明します。これら 2 つのグレーティングは、光学系で果たす役割の面では、ほとんど違いがありません。しかし、製造法とシミュレーションという点では、まったく異なります。

 

図 1. (a) 表面レリーフ型グレーティングは、屈折率分布が均一で、表面に周期的な微細構造を備えています。 (b) 体積ホログラフィック グレーティングは、空間的に周期変化する屈折率分布を持ち、表面構造は平坦です。

 

図 1 (a) に示した SRG は、リソグラフィ、ナノインプリント、ダイヤモンド切削など、いくつかの方法で製作できます。VHG と異なり、SRG の屈折率は空間的に変化しません。代わりに、グレーティング面が周期的な微細構造で構成されています。SRG をモデル化するには、フーリエ モーダル法 (RCWA 法 [1]) などのアルゴリズムが必要です。

図 1 (b) に示した VHG は、感光性のエマルジョン膜に複数のビームを露光することによって製作します。このエマルジョン膜を化学的または熱的に現像すると、グレーティングが完成します。このグレーティングの表面は平坦ですが、内部の屈折率は正弦波関数状に変化します。VHG をモデル化するには、効率的な Kogelnik 理論 [2] や信頼性に優れた厳密結合波解析 (RCWA) などのアルゴリズムが必要です [3]。

OpticStudio では、どちらの方法にも DLL を用意しています。この記事では、SRG の回折効率をモデル化するツールを紹介します。

VHG 向けのツールについては、ナレッジベース記事『体積ホログラフィック グレーティングの回折効率を Kogelnik 法でシミュレーションする 』を参照してください。

 

フーリエ モーダル法 (厳密結合波解析 - RCWA)

SRG の DLL で使用されている理論を簡単に再確認します。

 

フーリエ展開

図 2. フーリエ空間に展開したマクスウェルの方程式。誘電率εと透磁率μはフーリエ級数で記述します。Λx とΛy は x 方向と y 方向の周期、a と b は各フーリエ項の係数、(m, n) は整数です。電界 E と磁界 H は、平面波の組み合わせで記述できます。S と U は各平面波の強度、k は波動ベクトルです。E、H、S、U、k は、すべてベクトル値であり、それぞれ (Ex,Ey,Ez)、(Hx,Hy,Hz)、(Sx,Sy,Sz)、(Ux,Uy,Uz)、(kx,ky,kz) を表しています。

 

層の概念

RCWA の重要な概念として「層」があります。この理論では、グレーティングの構造が Z 方向には均一で、XY 面上では周期的であることを前提としています。Z 方向の構造が均一でない場合は、複数の「層」の組み合わせであると考えます。図 3 に示すように、各層の内部では Z 方向の構造が均一であるとします。

 

図 3. RCWA のアルゴリズムでは、微細構造を複数の層にスライスし、各層では Z 方向の構造が均一であるとします。

 

基本的に、構造のサンプリングに使用する層数が多くなるほどシミュレーション結果は高精度になりますが、計算速度は遅くなります。精度と計算速度の適切な組み合わせを見出す必要があります。

DLL によるモデルには、層数を設定するパラメータがあります。

  • このパラメータは、srg_trapezoid_RCWA.dll では "# Layer" で、
  • srg_step_RCWA.dll では "lays of 1 stp" です。

これらのパラメータの詳細な説明は、以降の各セクションを参照してください。

 

高調波 (次数) の概念

グレーティング面に平面波が達すると、光は離散的な複数の方向に回折します。これらを高調波または次数と呼びます。層数の場合と同様に、算入する高調波が多くなるほど高精度な計算になりますが、計算時間は長くなります。高調波の数は、どちらの DLL でもパラメータ "Max Order" で設定します。

たとえば、Max Order を 3 に設定した計算では、-3 次、-2 次、-1 次、0 次、1 次、2 次、3 次の各高調波が算入されます。通常、計算速度と精度の最適な組み合わせを見つけるには何回かの試行が必要です。経験則として、Max Order の初期値を、3 * (グレーティング周期)/(光の波長) に設定します。図 4 に、1 次元のグレーティングによって入射光線が複数の次数で回折する様子を示します。

 

図 4.グレーティングに入射した光線は、複数の次数に分割されます。

 

光線追跡モデルへの関連付け

RCWA アルゴリズムでは電磁界がフーリエ展開されます。電磁界は、グレーティング構造で複数の平面波に分割されます。計算後、入射光とグレーティング構造に基づいて、射出する波の電界と伝播方向が次数ごとに出力されます。

OpticStudio では、光線追跡モデルでこれらの平面波を光線に関連付けています。

図 5 は、光線追跡モデルの光線が、RCWA モデルで平面波と見なされている様子を説明しています。

図 5. 光線追跡のコードで記述された光線は、グレーティングに入射すると平面波と見なされ、RCWA のコードに渡されます。入射平面波に対応する出力平面波が RCWA で計算され、再び光線に変換されて光線追跡のコードに戻されます。

 

グレーティングの深さは、RCWA のコードで効率を計算する目的でのみ使用される点に注目する必要があります。光線追跡のコードでは、これまでどおりグレーティングは限りなく薄い面として扱われます。

図 6 は、入射光線、回折光線、グレーティングの関係を巨視的に示しています。

 

図 6. グレーティング構造は、光線追跡のコードの観点からは限りなく薄い面と見なされます。面に到達したすべての光線は、RCWA コードによって得られた、伝播方向と電界がそれぞれ異なる複数の次数で回折します。

 

DLL によるグレーティングの設定方法

光学系へのグレーティングの追加

ここでは、ノンシーケンシャル モードで階段グレーティングまたは台形グレーティングを設定する方法を説明します。

ノンシーケンシャル モードでグレーティングを追加するには、回折グレーティング オブジェクトまたは DiffractionGrating.dll によるユーザー定義オブジェクトを使用します。現時点では、その他の回折オブジェクトには対応していません。この DLL では、回折面が XY 平面上に存在することを前提にしているからです。

  • グレーティングのアパチャーが円形の場合は回折グレーティング オブジェクトを使用します。
    グレーティングのアパチャーが矩形の場合は DiffractionGrating.dll によるユーザー定義オブジェクトを使用します。
    アパチャーが円形でも矩形でもない任意形状の場合は、ブール ネイティブ オブジェクトまたはブール CAD オブジェクトと押し出しオブジェクトを併用します。
  •  

circular_and_rectangular_grating

図 7. 円形のグレーティングの場合は、[回折グレーティング](Diffraction Grating)を使用します。長方形のグレーティングの場合は、DiffractionGrating.DLLを使用したユーザー定義オブジェクトを使用します。

 

つづいて、[オブジェクト プロパティ] (Object Properties) で [回折] (Diffraction) をクリックし、階段グレーティングの場合は srg_step_RCWA.dll、台形グレーティングの場合は srg_trapezoid_RCWA.dll をそれぞれ選択します。

[反射] (Reflect) と [透過] (Transmit) の列にある各パラメータは、必ず互いに同じ値にする必要があります。

これらのパラメータについては、次のセクションで説明します。

 

図8. この記事で紹介している各種の DLL は [オブジェクト プロパティ] (Object Properties) で設定できます。

 

グレーティングの座標と方向

図 9 に示すように、グレーティングはオブジェクトのフェイス 1 に配置されています。
現時点では、1 次元のグレーティングのみがサポートされています。このグレーティングは、Y 方向に均一で、XZ 平面上で周期的なプロファイルを有していることを前提としています。光学系にグレーティングを設定する場合は、グレーティングの方向に注意する必要があります。

 

 図9. グレーティングは必ずフェイス 1 に配置されます。現時点では、回折グレーティング オブジェクトおよび DiffractionGrating.dll を読み取るユーザー定義オブジェクトの 2 つにのみ、この扱いを適用できます。

 

DLLのパラメータ

OpticStudio 20.3には、様々な形状の1次元グレーティングをシミュレートするためのRCWA DLLが5つあります。

  • srg_trapezoid_RCWA.dll
  • srg_step_RCWA.dll
  • srg_blaze_RCWA.dll
  • srg_GridWirePolarizer_RCWA.dll
  • srg_user_defined_RCWA.dll

このセクションでは、すべてのDLLが共有している共通のパラメータから始まり、各DLLの特定のパラメータについて説明します。

 

共通パラメータ:

以下の共通パラメータは、すべてのRCWA DLLで同じ意味を持ちます。

[+ 周期/- 周波数 (µm)] (+Period/-Freq (µm))

グレーティング溝の周期 (µm 単位) です。

  • [+ 周期/- 周波数 (µm)] (+Period/-Freq (µm)) の値が正数の場合は、µm 単位で表した溝の周期になります。
  • 負数の場合は、1/µm 単位で表した溝の周波数になります。周期と周波数は互いに逆数の関係にあります。

 

図 10.  一次元グレーティングの溝の周期。

 

周期は、入射波長の100倍など、あまり大きくならないようにすることが推奨されています。これは、正確な結果を得るために必要な最大次数が非常に大きくなることを意味します。最大次数の初期値の提案については、「高調波(次数)の考え方」を参照してください。

 

最大次数 (Max Order)

「高調波(次数)の考え方」を参照してください。
現在は10 (全21高調波) までとなっています。10より大きい場合は、DLLで10に修正されます。制限を増や要望があれば、ZEMAX サポートに連絡してください。

 

グレーティングの回転 (deg) (Rotate Grating (deg))

このパラメータは、グレーティング ラインの方向を回転させることができます。

  • ゼロに設定されている場合、グレーティング ラインは Y 方向に沿っており、X 方向に曲がっています。
  • ゼロ以外の値に設定すると、格子線は正の値では反時計回り(+X +Y)に、負の値では時計回りに回転します。ここで説明する X 方向と Y 方向は、オブジェクトのローカル座標系に基づいていることに注意してください。

 

図 11. グレーティングを135度回転させた例。

 

コーティング ファイルの使用 (Use Coating File)

このパラメータはフラグです。ゼロ以外の正の整数であれば、分散データ(屈折率対波長)がテキストファイルで定義されていることを示します。テキストファイルは、{Zemax}\Coatings\COATING_xx.datに保存されなければなりません。

例えば、コーティング ファイルの使用 (Use Coating File) が 7 に設定されている場合、分散データは COATING_7.dat と読み込まれます。

COATING_xx.dat ファイルでは、分散データは、[ライブラリ] (Libraries) タブ > [コーティング] (Coatings) グループ > コーティングの定義  > MATE データセクションのヘルプファイルに記載されているように定義されています。材料名は常に RCWAxx で始まり、xx は 2 桁の整数です。その後、任意のテキストを使用することができます。

例えば、RCWA01TIO2と定義することができます。DLL は RCWA 材料番号 1 を読み取り、その後に続く TIO2 のテキストは無視されます。図 12 は、複数の材料分散データを持つコーティングファイルの例を示している。

 

図 12. COATING_xx.dat での分散データの定義方法の例。

 

材料番号は、Index Grate (R)、Coat Index Env (R)、Index Coat (R)のいずれかに割り当てることができます。材料番号に-1を掛けた負の整数を使用します。

例えば、Grate 領域の屈折率データとしてRCWA02を設定したい場合は、Index Grate (R) に -2 を設定すればよい。

Grate、Env、Coat 領域の詳細については、「Index Grate (R), Index Grate (I), Index Env (R), Index Env (I)」および「Index Coat (R), Index Coat (I), Coat Thick Top (µm), Coat Thick Side(µm)」の部分を参照してください。

 

補間 (Interpolation)

このパラメータは整数でなければなりません。

  • これが0の場合、DLL は補間モードを使用しません。
  • 0 以外の値に設定されている場合、DLL は補間モードで動作します。つまり、DLL は計算時に RCWA データを RAM にキャッシュします。このデータは、その後の光線追跡のために補間に使用されます。これは、システム内の多くの光線を追跡する場合、例えば 100 万本以上の光線を追跡する場合に、光線追跡の速度を劇的に向上させることができます。
  • 補間が 1 に設定されている場合、201 ⅹ 201 のサンプリンググリッドが使用されます。
  • 1よりも大きい場合は、サンプリング グリッドのサイズを意味する。ただし、サンプリング グリッドの最小サイズは 21 です。
  • 補間が負の整数に設定されている場合、DLL はサンプリング グリッドを見つけるために絶対値を取りますが、補間には別の方法を使用します。この補間方法はより正確ですが、より遅くなります。

補間パラメータを設定することは、速度と精度の間の適切なバランスを定義することです。

図 13. パラメータ補間が 0 以外の整数の場合、補間モードがオンになります。負の場合は、別の補間方法が使用されます。負の補間のためのこの方法は、遅いですが、より正確です。

 

補間モードはどのように動作しますか?

まず、LM 空間にサンプリング グリッドを定義します。グレーティングに光線が入射した場合、光線の方向は (L,M,N) と書かれた単位ベクトルで表すことができます。LMN は光線の方向余弦とも呼ばれます。光線が回折格子に衝突すると、そのx,y方向の方向余弦である L,M が LM 空間に写像されます。そして、最も近い 4  つのサンプリング点がチェックされます。4 点のいずれかで RCWA データが既に計算されていない場合は、それらの点のデータが計算され、RAM に保存されます。次に、入射光線の RCWA データが 4 つのポイントから線形に補間されます。この補間は回折効率だけでなく、電界に対しても行われることに注意してください。つまり、キャッシング データと補間の過程では、位相の変化、偏光状態の変化、振幅の変化などが十分に考慮されています。

回折格子のパラメータや光の波長が変化した場合、DLL は別のサンプリング グリッドを作成して RCWA データを保存します。そのため、回折格子のパラメータが変数に設定されたときの最適化中は、サイクルごとにキャッシュが再計算されます。回折格子に入射する光線数が多い場合 (例えば > 1000) は、補間モードによって最適化は速くなります。しかし、最適化中に回折格子に入射する光線数が少ない場合 (例えば < 10) の場合は、補間モードをオフにすることを推奨します。

詳細については、「最適化」のセクションを参照してください。

 

図 14. 補間モードで作業する場合、図示したように回折データが計算されます。

 

これらの次数のみ (Only these orders)

パラメータ「これらの次数のみ (Only these orders)」が0または負の値の場合、DLL は通常通りに動作します。すべての次数が追跡されます。これが正の整数の場合、このパラメータはユーザーが追跡したい透過と反射の回折次数を指定することができます。

これらの次数のみは単なる整数なので、ここではその定義方法を説明します。下の表は、次数をユニークな正の整数にマッピングしたものです。

これらの次数のみは、2^(ユニークなの正数)の和である。

例えば、反射時のゼロ次数 (R0) と透過時の 1 次数 (T+1) を追跡したい場合、「これらの次数のみ」は、2^0 + 2^5 = 1 + 32 = 33 とします。

図 15. パラメータ「これらの次数のみ (Only these orders)」では、ユーザーは追跡する次数の特定のセットを指定することができます。

 

このパラメータを使用する場合、開始次数と終了次数は、「これらの次数のみ (Only these orders)」パラメータで定義された次数を含む範囲を定義する必要があることに注意してください。

このパラメータは、可視化ツールで設定することもできます。計算が不要なので、より簡単な方法です。

図 16. 可視化ツールの中に「これらの次数のみ (Only these orders)」パラメータを設定することができます。

 

ストカスティック モード (Stochastic mode)

  • これはモンテカルロ法や確率的分割と呼ばれることもあります。
  • このパラメータが 0 の場合、DLL は通常通りに動作します。
  • 1, 2, 3の場合はストカスティック モード (Stochastic mode) がオンになります。ストカスティック モード (Stochastic mode) をオンにすると、DLL は図 17 に示すように光線をランダムに回折します。各回折次数が追跡される確率は、回折次数間のエネルギー比に基づいています。

 

図17 確率モードでは、任意の入射光線に対してランダムに光線を回折します。どの回折順序で回折するかは、各順序のエネルギー比に依存します。この図は、1本の光線だけをランダムに回折させた場合を示しています。

 

各入射光線に対して、射出光線は何本でも構いません。回折する光線の数は、(終了次数 - 開始次数+1)を計算して決定されます。言い換えれば、ユーザーは、射出光線の数を定義するために、開始次数と終了次数 というパラメータを設定することができます。同様に、光線追跡の間、各射出光線の回折順序はランダムに決定されます。各射出光線は、Pi/n のパワーをもたらし、ここで Pi は入射光線のパワー、n は射出光線の数です。

図 18. ストキャスティック モードでは、1 本の入射光線は複数の射出光線に回折することができます。

 

なお、「これらの次数のみ (Only these orders)」が0でない場合、ストキャスティック モードは以下のように動作します。

  • ストキャスティック モードが1の場合、「これらの次数のみ (Only these orders)」は無視されます。
  • ストキャスティック モードが 2 の場合は、まずストキャスティック モードが働き、次に「これらの次数のみ (Only these orders)」パラメータが考慮されます。ストキャスティック モードでは1本の光線がランダム化されますが、「これらの次数のみ (Only these orders)」で設定されたルールによってブロックされます。
  • ストキャスティック モードが3の場合、「これらの次数のみ (Only these orders)」が先に働き、ストキャスティック モードが後に働きます。グレーティングは依然としてランダムな方法で光線を回折しますが、回折された光線は常に 「これらの次数のみ (Only these orders)」で指定された次数のセット内でランダム化されます。

エラー ログ (Error Log)

このパラメータが 0 以外に設定されている場合、計算エラーを報告するためのログ テキスト ファイル (*.txt) が書き込まれます。ログ テキスト ファイルは、{Zemax}の下に保存され、diffractive DLL と同じファイル名になります。このパラメータは、未知のエラーが発生しない限り、通常はゼロに設定する必要があります。パラメータエラーをチェックする方法の詳細については、「Geometric Error」のセクションを参照してください。

 

台形パラメータ (Trapezoid parameters)

以下のパラメータは台形格子("srrg_trapezoid_RCWA.dll")に固有のものです。
Depth、Alpha (deg)、Beta (deg)、及び Fill factor
これらの4つのパラメータは、以下に示すようにグレーティング プロファイルを制御します。

  • Depth は、図 19 に示すように、単純にグレーティングの高さです。
  • Alpha (deg) および Beta (deg) は、-z から +x まで回転する方向に正であり、+x から -z まで回転する方向に負です。例えば、図 19 では、Alpha (deg) が正であり、Beta (deg) が負です。
  • Fill factor は、溝の周期に対する底面側の底面の比率を表す0-1の数値です。

 

図 19. 台形格子の形状を定義する4つのパラメータ。この図では、アルファが正、ベータが負となっています。

 

Index Coat (R), Index Coat (I), Coat Thick Top (µm), Coat Thick Side(µm)

これらの4つのパラメータは、グレーティング上のコーティングをモデル化するために使用されます。DLLでは、トップの厚さ(Coat Thick Top(μm))とサイドの厚さ(Coat Thick Side(μm))を定義することができます。

コーティングの厚さは Depth パラメータには含まれないことに注意してください。例えば、Depth が5μmで Coat Top Thickness が 200nm の場合、グレーティングの合計厚さは 5.2μm になります。

図 20.  台形格子の上面と側面のコーティング厚さ。

 

コーティング材料は金属である可能性があるため、DLL はコーティング材料の複素屈折率を定義するための他の2つのパラメータを提供します。実部の Index Coat (R) と虚部の Index Coat (I) です。OpticStudio では、吸収性材料の場合、指数の虚数部は負の値になります。Index Coat (I) は正の値にすることはできません。例えば、アルミニウムの複素屈折率は 0.7-7.0i です。Index Coat (R) は、ゼロにすることはできませんが、負の整数にすることができます。負の整数の場合は、分散がテキストファイルで別途定義されていることを意味します。詳しくはコーティングファイルの使用を参照してください。

 

Index Grate (R), Index Grate (I), Index Env (R), Index Env (I)

グレーティング構造は、図 21 に示すように、グレーティングとその環境を表す Grate と Env の2つの領域に分けることができます。グレーティングは、外部領域と基板領域に囲まれています。基板領域と外部領域のインデックスは、光学系によって定義されます。グレーティングとエンベロープの指標は、DLL のパラメータによって定義されます。

DLLには、Grate と Env の屈折率を定義するための4つのパラメータが含まれています。

  • Grate 領域と Env 領域での屈折率は、いずれも複素数屈折率で定義されます。 
  • Grate  領域では、屈折率の実部と虚部は Index Grate (R) と Index Grate (I) パラメータで定義されます。 
  • Env 領域では、屈折率の実部と虚部は Index Env (R) とIndex Env (I) のパラメータで定義されます。
  • 屈折率の実部をゼロとした場合には、Grate 領域と Env 領域で特別なルールがあります。Index Grate (R) がゼロに設定されている場合、それは、Index Grate (R)が基板の屈折率と等しいことを意味します。基板の屈折率は、光学系で定義されています。同様に、Index Grate (R) がゼロに設定されている場合、Index Env (R) 領域は、外部の屈折率と等しいことを意味します。
  • Index Grate (R) と Index Env (R) は負の数値をとることができますが、これは分散データが別途テキストファイルで定義されていることを意味します。 

詳しくは、コーティングファイルの使用 (Use Coating File) のセクションを参照してください。

 

図 21. 台形グレーティングは 2 つの領域に分離されています。Grate と Env です。この 2 つの領域の屈折率は別々に定義することができます。

 

レイヤー数

このパラメータは、台形形状のモデル化に使用するレイヤーの数を指定します。詳しくは「レイヤーの概念」をご覧ください。

 

ブレーズド パラメータ (Blaze parameters)

ブレーズド グレーティング ("srrg_blze_RCWA.dll") の以下のパラメータは台形グレーティング ("srg_trapezoid_RCWA.dll") と同じですが、パラメータ "Depth "がありません。ブレーズドグレーティングの場合、図22に示すように、深度は与えられたパラメータ Alpha と Beta に応じて自動的に内部で計算されます。

 

図22. ブレーズド格子の形状は、Fill factor、Alpha、Betaによって定義されます。

 

ステップ パラメータ (Step parameters)

以下のパラメータはステップ グレーティング ("srrg_step_RCWA.dll") に固有のものです。

Depth、Number of steps、Alpha (deg)

  • Depthは、図22に示すように、グレーティングの高さまたは厚さです。
  • Number of stepsパラメータは、図23に示すように、グレーティングのステップ数を制御します。実際には、これは通常、製作プロセスに関連しています。次の図に示すように、グレーティングの形状は+x方向に向かって「下降」していることに注意してください。この方向を逆にするには、ユーザーは格子オブジェクトをオブジェクトのローカルZ軸の周りに180度回転させる必要があります。

図 23. Number of steps パラメータは、各周期で形状をモデル化するためのステップ数を定義します。

 

  • パラメータ Alpha は、下図のように反対側の斜めの角度を定義します。Alpha の符号は、 +z から -x の方向に回転したときに正の値となります。 図 24 は、Alpha が正の値となる例を示しています。

 

図 24. パラメータ Alpha は、反対側の斜めの角度を定義します。この図では、Alpha は正の値です。

 

ステップごとのレイヤー (Layers per step)

このパラメータは、ステップごとのレイヤー数を定義します。このパラメータは、パラメータ Alpha が 0 ではない場合にのみ使用してください。そうでない場合、計算結果が変化しないので意味がありません。次の図は、このパラメータが斜め面のサンプリングにどのように影響するかを示しています。

図 25. ステップごとのレイヤー (Layers per step) パラメータは、ステップごとのレイヤー数を定義します。

 

Index Coat (R), Index Coat (I), Coat Thick Top (µm), Coat Thick Side(µm)

これらのパラメータの定義は、台形グレティンーグの場合と同じです。台形グレティンーグ (Trapezoid grating) のセクションの説明を参照してください。

図 26. ステップ グレーティングの上面と側面のコーティング厚みを示す図です。

 

Index Grate (R), Index Grate (I), Index Env (R), Index Env (I)

これらのパラメータの定義は、台形グレティンーグの場合と同じです。台形グレティンーグ (Trapezoid grating) のセクションの説明を参照してください。

図 27. ステップ グレーティングは 2 つの領域に分離されています。Grate と Env です。2つの領域の屈折率を別々に定義することができます。

 

グリッド ワイヤ 偏光子 (Grid Wire Polarizer)のパラメータ

以下のパラメータはグリッド ワイヤ 偏光子 グレーティング("srfg_GridWirePolarizer_RCWA.dll")に固有のものです。このグレーティングは基本的にバイナリ グレーティングです。このDLLはグリッドワイヤー 偏光子のモデル化に使用できます。

 

Depth (µm) 及び Fill factor

  • Depth は、グレーティングの高さです。 
  • Fill factor は、図 28. に示すように、グレーティング領域の幅とグレーティング周期との比を表す 0 から 1 の間の値です。

 

Index(R) 及び Index (I)

台形、ブレーズド、ステップグレーティングと同様に、グリッド ワイヤ 偏光子グレーティングの構造は、4つの領域に分離することができます。2つのパラメータは、図 28. に示すように、グレーティングの複素屈折率を定義します。

Env 領域の屈折率は DLL では定義できず、常に外側領域の材料と同じです。外部領域と基板領域の屈折率は両方とも OpticStudio で定義されており、DLL パラメータで変更することはできません。

 

図 28. グリッドワイヤー偏光子グレーティングは、4 つの領域に分けることができます。外側、Grate、Env、基板の4つの領域に分けることができます。形状は、Depth と Fill factor によって定義されます。

 

ユーザー定義グレーティング(User Defined Grating) パラメータ

ユーザ定義グレーティングのパラメータは1つだけです。

ファイル番号 (File Number)

パラメータは 1~99 の範囲の整数値を指定してください。DLLは、"xx "が ファイル番号 (File Number) パラメータのテキストファイル "user_grating_data_xx.txt "から、グレティンーグのデータを読み込みます。保存フォルダは「\Documents\Zemax\DLL\Diffractive\」です。

DLL は、ユーザー定義のグレーチング テキストを一度だけ読み込み、データはメモリに保存されます。テキストが変更され、リロードが必要な場合は、ファイル番号 (File Number) パラメータを負に設定してください。リロードをトリガーするために、システム内のグレーティングを介して少なくとも 1 つの光線が追跡されていることを確認してください:レイアウトプロットを更新するか、光線追跡コントロールを使用して光線追跡を実行します。形状データが更新されたら、ファイル番号 (File Number) パラメータを正の値に戻すことを忘れないでください。これにより、DLL が常にテキストファイルをリロードしてグレーティング データを更新しないようにしてください。

 

図 29. ユーザー定義グレーティング データはテキストファイル "user_grating_data_xx.txt "に書き込まれます。ここで xx は正の整数であり、DLL "srrg_user_defined_RCWA.dll "を使用して読み込むことができます。

ユーザー定義グレーティングのファイル フォーマット

グレティンーグのの形状は、複数のレイヤーによって定義されます。各レイヤーは背景材質によって定義され、オプションで他の材質のいくつかのセクションを含みます。レイヤーの詳細については、「レイヤーの概念 (Concept of layers)」を参照してください。

ユーザー定義のグレティンーグ テキスト ファイルには、3つのキーワードが含まれています。「レイヤー数 (Number of layer)」、「レイヤー (Layer)」、「セクション (Section)」です。DLLがファイルを読み込むと、これらのキーワードを見つけるためにテキストを 1 行ずつスキャンします。キーワードが見つかると、次の行のデータを読み込みます。キーワード行と次の行は、以下に説明するように、ファイルの形式に従わなければなりません。それ以外の場合は、便宜上、任意のテキストをファイルに追加することができます。

 

レイヤー数 (Number of layer)

レイヤー数 (Number of layer) キーワードに続く行には、テキストで定義されているレイヤーの数を表す整数を 1 つ含める必要があります。

レイヤー (Layer)

レイヤー (Layer) キーワードの次の行には、(1)このセクションに追加するセクションの数、(2)レイヤーの厚み(ミクロン単位)、(3)屈折率の実数部、(4)屈折率の虚数部の 4 つの数字が含まれています。ここでいう屈折率とは、「背景屈折率 (background index)」のことです。

セクション (Section)

セクション (Section) キーワードの次の行には、(1)このセクションのシフト量、(2)このセクションの幅、(3)屈折率の実部、(4)屈折率の虚部の 4 つの数値が含まれています。なお、シフト量と幅には単位がありません。これらは周期に対する比を表しています。ここでいう屈折率とは、背景の屈折率を上書きする「セクション屈折率 (section index)」のことです。シフトの値は、1 つの周期ボックスの左端に対する中心位置を定義します。図 30.を参照して、シフト=0.5、幅=0.5の例では、0.25から始まり0.75で終わるセクションを定義しています。

 

ユーザー定義グレーティングデータの例

図 30.は、右側にユーザー定義のグレーティング データ テキスト ファイル、左側に結果として得られるグレーティングの例を示しています。この例では、すべてのレイヤーは正確に 1 つのセクションを持っていますが、1 つのレイヤーがゼロ セクションを持つことも、1 つ以上のセクションを持つこともできます。また、1 つのレイヤーに 2 つの材質が存在する場合、一方を背景屈折率 (background index) と定義し、もう一方をセクション (Section)と定義することに注意してください。どちらを背景屈折率とするかはユーザーの自由です。

 

図 30. ユーザー定義グレーティングの例。シフトは 1 周期ボックスの左端を基準にしています。幅はシフトで定義された位置を中心にしています。

 

ユーザー定義のグレーティングを編集するツール

ユーザー定義のグレティンーグ データはメモ帳のようなテキスト エディタで直接編集することもできますが、図 31. のように可視化ツールで編集することもできます。このテキストファイルを読み込むためには、"srfg_user_defined_RCWA.dll "を使用したダミー システムを設定する必要があります。可視化ツールは、他のRCWA DLLで定義された格子データを読み出すこともできます。

ただし、編集した後は、ユーザ定義のグレティンーグ データとしてしか書き出せません。

図 31. 可視化ツールには、ユーザー定義のグレーティング データをロード、編集、保存するためのサブ ツールが含まれています。

 

可視化(Vizualisation)ツール

可視化ツールを実行して、ユーザーがグレーティング パラメータを定義するのを助けることができます。図 32 に示すように、[プログラミング (Programming tab)] … [ユーザー拡張機能 (User Extensions)] … [RCWAvisualization]をクリックします。

図 32 可視化ツールは、「[プログラミング (Programming tab)] … [ユーザー拡張機能 (User Extensions)] から開くことができます。

 

ツールのユーザインタフェースを図 33 に示す。

図 33 可視化ツールのユーザーインターフェース

 

可視化には4つのセクションがあります。それぞれのセクションを紹介します。

“Step 1 - Load DLL”セクション

オブジェクトのドロップ ダウン メニューは、RCWA DLLを使用しているノンシーケンシャル エディタのオブジェクトを自動的にリストアップします。オブジェクトを変更するには、別のオブジェクトを選択して Load をクリックします。

 

“Step 2 - Set parameters”セクション

  • 基板材質、外板材質はあくまでも描画用のものであり、必ずしも真の設定を反映したものではありません。N-BK7などのガラス名が使用できます。
  • 選択したオブジェクト上のRCWA DLLのパラメータ名と現在の値が表示されます。表中のパラメータは、"Set to object "ボタンをクリックすることで、変更してシステムに適用することができます。各回折パラメータの設定は 1 つのアクションと見なされるため、このボタンをクリックすると OpticStudio で複数の「元に戻す」が生成されることに注意してください。
  • このセクションの下部では、便利なツールを使用して“Only these orders”パラメータを設定することができます。詳細については、この記事の「DLL パラメータ > 共通パラメータ > これらの次数のみ」を参照してください。
  • “Create MCE”ボタンは、すべての DLL パラメータのオペランドをマルチ コンフィグレーション エディタで作成することができます。透過 パラメータは、反射 パラメータからデータをピックするように設定されます。これはシステムの修正に便利です。また、グレーティング パラメータの最適化にも必要です。
  • Min列とMax列については、後述の“Step 4 – Setup system”のセクションで説明します。

図 34 "Create MCE "ボタンは、マルチ コンフィグレーション エディタで DLL パラメータのオペランドを作成します。

 

“Step 3 - Grating editor”セクション

  • “Load from DLL” をクリックすると、DLL からグレティンーグ データを読み込み、2 つの図を可視化することができます。DLLのパラメータが間違っていて描画できない場合は、図 35. のようにエラーが表示されます。これは、DLL のパラメータが正しいかどうかを確認するのに非常に便利なツールです。
  • 上の図は DLL の定義されたプロファイルを表示しています。グレーティング プロファイルの屈折率が表示されています。
  • 下の図は、RCWA アルゴリズムで使用されるフーリエ級数から再構築された同じプロファイルを表示しています。これは主に、RCWA アルゴリズムが正しいデータを見ているかどうかをチェックするために使用されます。
  • ZOS-APIの制限のため、現在、グレティンーグ 可視化チャートの外側と基板領域の屈折率は再定義する必要があることに注意してください。ツールはこれらの値を自動的に読み取ることができません。再定義するには、「ステップ2」の“Substrate material”」と“Outside material”という2つのテキストボックスを使用してください。
  • “Load from text”ボタンをクリックすると、テキストファイル内のユーザー定義のグレーチングデータを読み込みます。詳しくは「DLL パラメータ > ユーザー定義グレティンーグ パラメータ」のセクションを参照してください。

図 31.に示すように、グレティンーグ データをレイヤーごとに詳細に表示するエディタがあります。これらのデータは編集することができ、結果はリアルタイムでチャートに更新されます。キーボードの “Insert” キーと “Delete” キーを使用して、エディタ内の行の追加や削除が可能です。

ただし、エディタでグレティンーグ データを編集できても、そのデータを直接システムに押し戻すことはできないので注意が必要です。テキストファイルにエクスポートすることしかできません。このテキストファイルは RCWA DLL "srfg_user_defined_RCWA.dll "で読み込むことができます。詳細は DLL パラメータ > ユーザー定義グレティンーグ パラメータ を参照してください。

図 35 パラメータ エラーが可視化ツールによって検出された場合のメッセージボックスを示します。

 

“Step 4 - Setup system”セクション

このセクションでは、単一の回折グレティンーグの解析または最適化のためのシステムを生成するための便利なツールを提供します。

  • 最初の 2 つのテーブルでは、ユーザーが解析する入射角と波長を設定することができます。視野角度は、シーケンシャルモードの視野角度と同じ規約に従います。
  • 視野ウィザードは、視野角度のテーブルを定義するための実験機能です。
  • 偏光部分では、どの偏光を追跡するかを定義します。Both を選択すると、X偏光とY偏光の視野と波長の組み合わせごとに 2 つの光線が作成されます。
  • システム内で解析または最適化するためには、透過または反射の単一の次数を選択する必要があります。
  • “Rays from substrate”オプションがチェックされている場合、入射光線はグレーティング基板から来ます。そうでない場合は、基板の外側から入射し、グレーティングにヒットします。
  • システムの設定が終わったら、"Create test system "をクリックすると、テストシステムファイルが "GreatemaxSamples\RCWA_Analyze_x.zmx "に生成されます(xは累積整数)。このシステムは、図 36 の例に示すように、グレティンーグ、ディテクタ、複数の試験光線を含みます。また、図 37 に示すように、各入射光線とターゲットの回折パワーを 100% に読み取るためのメリットファンクションを生成します。
  • Step 2 - Set parameters”では、Max 列の任意のパラメータが Min 列のパラメータよりも大きい場合、生成された試験システムでは、図 37 に示すように、そのパラメータが変数として設定され、メリットファンクションで制約されます。

図 36 可視化ツールによるテストシステムの作成方法の一例です。

 

図 37 可視化ツールがテストシステムを生成する際に、必要なオペランドもメリット ファンクション エディタとマルチコンフィグレーション エディタで作成されます。

FAQ

標準搭載の回折モデルとの比較

これまで述べてきたグレーティングのモデルは RCWA アルゴリズムに基づいています。ここでは、この新しい RCWA モデルと、以前より標準搭載されている回折グレーティングのモデルとの相違点を確認します。

どちらのモデルでも、回折の方向はまったく同じです。相違点は、回折光線の電界の扱い方にあります。

RCWA のコアと標準搭載の回折モデルのどちらでも、回折光線を次式によって計算します。

は、それぞれ入射光線と回折光線の単位ベクトル、 はグレーティング面の単位法線ベクトル、 は単位グレーティング ベクトル、Λはグレーティングの周期、n1 と n2 は入射光線と回折光線が伝播する材料の屈折率、m は回折次数を表す整数です。

下図に、グレーティング上でのこれらのベクトルを示します。

 

図 38. この図では、入射光線、回折光線、グレーティング面の法線、グレーティングの各ベクトルを示しています。

 

2 つのモデルの主な違いは、RCWA のコードでは回折光線の電界を定義していますが、標準搭載のモデルではそれができないという点です。

 

最適化

RCWA コードを OpticStudio に組み込むことの利点として、光学系を総合的に考慮しながらグレーティングのパラメータを最適化できることが挙げられます。RCWA アルゴリズムは計算の負荷が大きいことから、より高速で円滑な最適化を実現するために、以下の各措置を講じることを推奨します。

  • 第 1 の要点は、補間モードのパラメータに関するものです。回折格子のパラメータまたは波長を変数とした最適化では、回折格子に多くの光線 (例えば > 1000) が入射する場合は補間モードをオンにすることを推奨します。その理由として、回折格子のパラメータまたは波長が変数の場合、最適化によってそれらの値が頻繁にランダムに変化します。これにより、DLL は RAM に新たなサンプリング グリッドを作成して、そのグリッド上のすべての効率データを再計算します。回折格子に多くの光線が到達する場合は補間モードはオンで良いですが、最適化中に 1 本だけ光線を追跡する場合や、回折格子のパラメータや波長が変数でない場合は、高速化が期待できないため、補間モードをオフにすることを推奨します。
  • 第 2 の要点は、最適化時に、慎重に選択された光線のみで系を最適化することです。例えば、どのようなビームであっても、主光線と数本のマージナル光線は、ビーム全体を表すのに使用できます。光源 (光線) は、これを用意に実現できます。光源 (光線) は、必ず指定された位置 (x, y, z) から指定された伝播方向 (l, m, n) に光線を発する光源オブジェクトです。また、任意の偏光状態は 2 つの直交成分に分離できます。[ランダム] (Random) 偏光ではなく、最適化したい偏光状態を、Jx と Jy で設定できます。この方法は、ランダム偏光を用いるよりも効率的な方法です。光線を慎重に選択することで、数千から数百万本の光線を出射する実際の光源よりも、最適化にかかる時間を大幅に短縮できます。

 

図 39. ノンシーケンシャル モードの光源オブジェクトの偏光状態は、オブジェクト プロパティで指定できます。

 

光源の光線を慎重に選択し、設定できます。数千本や数百万本の光線を発する真の光源を直接追加するよりも、はるかに迅速に処理を完了できます。

 

形状エラー

DLLは、パラメータエラーと呼ばれるパラメータの組み合わせの無効な組み合わせであるパラメータエラーを回避するために、コードの内部にいくつかのエラーチェックを持っています。DLL はエラーを検出すると計算を停止し、形状エラーのメッセージを返します。 パラメータエラーがあるかどうかを調べる最も簡単な方法は、可視化ツールを開くことです。詳細は「可視化ツール」を参照してください。

パラメータエラーの他に、可視化ツールでは発見できないが形状エラーを返すエラーもあります。これらは計算エラーと呼ばれています。光線追跡中にDLL内部で計算エラーが発生しているかどうかを確認するには、エラーログをオンにする必要があります。詳細については、"エラーログ "を参照してください。

これらの形状エラーで多く見られる原因と、その問題に対して考えられる解決方法を以下に示します。

  • ライセンス、OpticStudio のバージョン、OpticStudio のエディション、有効期限

これら 2 つの DLL は、OpticStudio バージョン 20.1 (2020 年 1 月 21 日) で実装されています。Premium サブスクリプション ライセンスでのみ使用できます。これらの DLL は、OpticStudio 20.1 の使用開始時点から、約 1 年で有効期限が終了します。DLL は、これらの条件のいずれかが満たされていないことを検出すると、計算を停止してエラーを返します。この場合は下図のようなエラー メッセージが表示されます。

図 40 ライセンス、有効期限、OpticStudio バージョンのいずれかが無効な場合のエラー メッセージ。

 

  • NSC 光線の分割

DLL モデルを使用する場合、[NSC 光線の分割] (Split NSC Rays) オプションをオンにする必要があります。このオプションをオンにしないと、DLL による計算が停止し、エラーが返されます。光線分割のオン/オフは、光線追跡コントロールのダイアログ、3D レイアウト、シェーデッド モデルで別々に設定できます。これらすべての設定が正しいことを必ず確認する必要があります。

  • グレーティングの各パラメータ

形状エラーが表示される原因として、物理的にあり得ないグレーティング パラメータを設定していることが一般的に考えられます。この記事にある「エラー チェック」の各項目を確認してください。

  • 最大 RAM 空間

「補間モード」と「最適化」で説明したように、DLL で使用する RAM 空間のサイズには内部的に上限が設定されています。この上限に達すると、DLL は計算を停止して形状エラーを返します。

この問題を解決するには、補間モードをオフにするか OpticStudio を再起動して、DLL によって割り当てられた RAM 空間を解放します。

グレーティングのパラメータまたは波長を変数として光学系を最適化しないかぎり、通常は、この上限に達することはありません。

このエラーはエラーログで報告することができます。

  • 過剰に大きい入射角

補間モードをオンにしている場合、グレーティングへの光線の入射角が大きすぎると、DLL から形状エラーが返されます。この理由は、補間モードであっても、サンプリング グリッドの端では外挿が実行されないことにあります。入射角が 89 度前後を超えると、このエラーが発生します。補間モードをオフすることで、この問題を解決できます。

  • エバネッセント波
    入射光線が次の 3 つの条件のいずれか 1 つを満たす特別な場合、DLL は計算を実行できず、形状エラーを返します。
    • (L + m*λ/Λ)^2 + M^2 = 1
    • (L + m*λ/Λ)^2 + M^2 = n1^2
    • (L + m*λ/Λ)^2 + M^2 = n2^2

(L, M) は、グレーティングのローカル座標を基準とした入射光線の x 方向と y 方向の方向余弦、λは光の波長、Λはグレーティングの周期、n1 は入射側媒質の屈折率、n2 は透過側媒質の屈折率、m は任意の整数値です。

上記の 3 つの式のいずれかが成立するような整数 m が存在する場合、DLL は計算を実行できず、形状エラーを返します。

このエラーが発生することは、きわめて稀です。上記の条件が成立して計算が停止する原因となる光線は、わずかであるからです。弊社の経験によると、この問題が発生する可能性が最も高くなるのは、光の波長がグレーティングの周期と同じで、光線がグレーティングに直交する方向から入射する場合です。その場合は、グレーティングの周期をわずかに変更することによって、この問題を解決できます。たとえば、0.55 µm から 0.55001 µm に変更します。

このエラーはエラーログで報告することができます。

  • エネルギー保存

RCWA モデルでは、光線の計算が完了するたびに、エネルギーが保存されているかどうかが DLL のコードで検証されます。

 

制限事項とフィードバック

現時点の DLL は、階段プロファイルまたは台形プロファイルの 1 次元グレーティングにのみ対応しています。回折レンズには対応していません。

これは、RCWA アルゴリズムによる制限ではありません。したがって、そのような機能を希望されるお客様は、弊社のサポート チーム (support@zemax.com) まで、フィードバックをお送りください。
一方、本 DLL は主に小周期用に設計されています。周期が例えば入射波長の100倍以上になると、多くの高調波を考慮した計算が必要となり、計算に時間がかかり、PC の RAM を多く必要とします。

 

計算例

計算例 1 :台形グレーティングの効率

この例では、次の論文の図 4 (a) に示されている結果を再現します。 "Design and fabrication of binary slanted surface-relief gratings for a planar optical interconnection." Applied optics 36.23 (1997): 5717-5727.

添付資料にある "verify_1997_Design_and_fabrication.zar" ファイルを開きます。

このファイルには、回折グレーティング オブジェクトの内部で光線を放射する光源 (光線) オブジェクトが記述されています (光源の [内部] (Inside Of) フラグの設定を参照)。この光源 (光線) オブジェクトの前のフェイスが回折性で、"srg_trapezoid_RCWA.dll" を使用するとします。2 つのディテクタ (極) オブジェクトで透過光 (オブジェクト 4 のディテクタ) と反射光 (オブジェクト 5 のディテクタ) を測定します。

 

図 41. (a) は、計算例 1 を記述したノンシーケンシャル コンポーネント エディタです。(b) は、計算例 1 のレイアウト表示です。

 

  1. 光学系の波長 = 0.633 µm
  2. オブジェクト 1 は、DiffractionGrating.dll を読み取るユーザー定義オブジェクトです。このオブジェクトは、前のフェイスに単純な線形グレーティングを設けた矩形体積で、x 方向、y 方向、および長さの各寸法をユーザーが指定できます。この計算例では、回折性オブジェクトの定義方法とテスト方法を紹介します。光線が前のフェイスまで追跡されると、[オブジェクト プロパティ] (Object Properties) → [回折] (Diffraction) でこのフェイスに関連付けられた回折 DLL が呼び出されます。

[オブジェクト プロパティ] (Object Properties) → [回折] (Diffraction) の [DLL] (DLL) で srg_trapezoid_RCWA.dll を選択し、次のように設定しておきます。

  • グレーティングの周期 : 0.943 * 波長 = 0.596919
  • グレーティングの深さ : 1.058 * 波長 = 0.669714
  • フィル ファクタ : 0.5
  • アルファ角およびベータ角 : 30 度。光学系の設定方法によってアルファとベータの符号が異なることに注意します。上記の論文では -30 度ですが、この計算例の光学系では 30 度です。

 

図 42. 計算例 1 の評価関数。

 

  1. 上の図では、Start OrderとStop Orderの両方が1に設定されていることに注意してください。これは、最初の回折次数のみが追跡されることを意味します。他の次数は無視されます。特定の次数の挙動を観察するのに役立ちます。
  2. メリット関数は以下のように構築されています。これは、各検出器の受信エネルギーを計算するために使用されます。

 

図 43. 計算例 1 の評価関数。これは、ディテクタで検出したエネルギーを計算する評価関数です。

 

  1. 回折 DLL のパラメータは、下図のようにマルチコンフィグレーション エディタ (MCE) に入力します。反射のパラメータは、透過の値をピックアップして得ている点に注目してください。



Figure 44. 回折 DLL のパラメータは、マルチコンフィグレーション エディタで表示できます。この図の 28 ~ 40 行のように、透過パラメータを反射パラメータから自動的にピックアップできるので、この方法が便利です。

 

  1. 最後に、[解析] (Analyze) → [ユニバーサル プロット] (Universal Plot) で [ユニバーサル プロット 1D] (Universal Plot 1D) を使用して、この論文の結果を検証します。
  • 下図の x 軸はグレーティングの深さです。
  • y 軸は、反射または透過のさまざまな次数で得られた回折効率です。

反射の次数 k = 0 と k = 2 (緑と紫の線) をプロットする場合は、[開始次数] (Start Order) と [終了次数] (Stop Order) を 0 および 2 に変更する必要があります。

 

図45. ユニバーサル プロット 1D の y 軸は回折効率、x 軸はグレーティングの深さです。
透過または反射のさまざまな回折次数での結果を、それぞれ異なる色で表しています。

 

下図は、参考文献に掲載されている結果です。

 

図 46. "Design and fabrication of binary slanted surface-relief gratings for a planar optical interconnection." Applied optics 36.23 (1997): 5717-5727 の 図 4 (a)

 

計算例 2 :台形グレーティングを使用した導波路

この計算例では、導波光学系に台形グレーティングを使用しています。導波路上に 2 つの台形グレーティングを配置します。このファイルは、RCWA_trap_waveguide_addlens.zar として添付されています。

下図の左側に示すように、近軸レンズの焦点面にランバーシアン画像光源を配置します。画像光源からの光は近軸レンズで屈折し、第 1 のグレーティングによる結合で導波路に導かれます。導波路の右側で、第 2 のグレーティングによる結合から光が射出方向に導かれます。最終的に、第 2 の近軸レンズの焦点面に配置されたディテクタ上で、射出した光が結像して画像が再現されます。

 

図 47. 計算例 2 の光学系のレイアウト表示。

 

この計算例については、いくつか指摘しておくべき点があります。

  1. このファイルでは、グレーティングの構築に srg_trapezoid_RCWA.dll を使用しています。2 つのグレーティングはどちらも同じ形状で、フィル ファクタ = 0.5、深さ = 0.2 µm、周期 = 0.43 µm のバイナリ グレーティングです。アルファ角とベータ角は、いずれも 0 度です。グレーティングの上面には厚さ 20 nm のコーティングが施されています。したがって、グレーティングの合計深さは 0.22 µm です。

下図に、各グレーティング周期の構造を示します。

 

図 48. 計算例 2 のグレーティングの屈折率分布と各層の厚み。

 

  1. このグレーティングは、ノンシーケンシャル コンポーネント (NSC) エディタに記述したユーザー定義オブジェクトです。矩形体積オブジェクトである導波路オブジェクトの後にグレーティングが定義されています。グレーティングは導波路のフェイス 1 と重なっています。グレーティングが導波路よりも後ろで定義されているため、この重なっている面に到達した光線は、ネスト規則により、グレーティングと作用して回折します。詳細は、ヘルプ ファイルの「[設定] (Setup) タブ」→「[エディタ] (Editor) グループ ([設定] (Setup) タブ)」→「[ノンシーケンシャル コンポーネント エディタ] (Non-sequential Component Editor)」→「ノンシーケンシャルの概要」→「オブジェクトの配置」を参照してください。

 

図 49. レイアウト表示とノンシーケンシャル コンポーネント エディタに記述された導波路と 2 つのグレーティング。

  1. オブジェクト 3 は、矩形の平行ビームをモデル化する光源 (矩形) です。オブジェクト 2 はスライド オブジェクトです。これは、画像ファイル "{Zemax}\IMAFiles\QR_code_Zemax.jpg" で定義されているカラー RGB 透明オブジェクトです。

図 50 計算例 2 で使用したテスト用画像。これは、テキスト "http://zemax.com" を示す QR コードです。

 

このスライド オブジェクトには、ランバーシアン散乱特性が設定されています。重要度サンプリングを使用して、近軸レンズへ散乱する光線のみが考慮されるようにします。



図 51. 計算例 2 のスライド オブジェクト (オブジェクト 2) の散乱設定。

 

QR コードが導波路を経て結像されます。下図は、ディテクタ上の画像をシミュレーションしたものです。



図 52. 計算例 2 の光学系によるシミュレーション画像。

 

参考文献

  1. M. G. Moharam, Drew A. Pommet, Eric B. Grann, and T. K. Gaylord, "Stable implementation of the rigorous coupled-wave analysis for surface-relief gratings: enhanced transmittance matrix approach," J. Opt. Soc. Am. A 12, 1077-1086 (1995)
  2. Kogelnik, H., "Coupled wave theory for thick hologram gratings, " Bell Syst. Tech. J. 48, 2909-2947 (1969).
  3. Glytsis, E. N. and Gaylord, T. K., "Rigorous 3-D coupled wave diffraction analysis of multiple superposed gratings in anisotropic media," Appl. Opt. 28(12), 2401-2421 (1989).

KA-01898

この記事は役に立ちましたか?
2人中1人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。