大規模メタレンズ – 光線伝搬(Large-Scale Metalens – Ray Propagation)
本記事では、センチメートル(cm)スケールの、メタレンズの設計のためのシミュレーションのワークフローを紹介しています。ナノ素子はLumericalでモデリングされ、半径の関数として単一セルによって誘起される位相と振幅のデータベースを作成するためにRCWA法が使用されます。このデータはOpticStudioに出力されて、平行なビームがメタレンズによって集光される光線追跡システムに統合されます。
注意: この機能は、Ansys Zemax OpticStudio Premium/Enterpriseでのみ利用可能です。また、.h5ファイルの生成には、Ansys Lumerical バージョン2023R2以降が必要です。多波長のシミュレーションは2025R1またはそれ以降のプラグインのバージョンによってのみサポートされています。
概要

メタレンズは、ナノ要素から構成される高度な光学構造です。個々のセルを局所的に調整することで、複雑な光学機能を実現することが可能です。しかし、この種のデバイスを大規模にシミュレーションすることは大きな課題です。なぜなら、メタレンズは周期構造ではないことに加え、非常に多くのナノ要素から構成されているためです。さらに、メタレンズは本質的に波動光学に基づいていますが、光線追跡システムへ統合する必要があります。
メタレンズの作成方法及びRCWA計算の検証の詳細については、「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」という記事に記載されています。このワークフローでは、比較的小さなスケールのメタレンズについて紹介しており、OpticStudioのPhysical Optics Propagation(POP)ツールを用いて光学系を通過するビーム伝搬をシミュレーションするのに適しています。しかし、この方法にはシミュレーション可能なレンズサイズに制限があり、主に計算に必要となるメモリ量がその要因となります。本記事では、直径10mmの大規模メタレンズを設計するための、別のワークフローを紹介しています。このワークフローでは、ナノ要素レベルでメタレンズを設計し、それをセンチメートルスケールに組み上げることができることを示しています。その後、このメタレンズをOpticStudioの光線追跡システムに統合します。同じワークフローを用いることで、ユーザーは自身の要件や計算リソースに応じて、より大きなメタレンズを設計することも可能です。そのため、このワークフローを完了した後の演習として、ユーザーは直径20mmのレンズ設計に取り組むことを推奨します。これにより、ワークフローに慣れるとともに、シミュレーションファイル内の重要なパラメータを理解することができます。また、製造のためにメタレンズ情報をGDSファイルとして抽出するプロセスについても説明します。
ステップ1:ユニットセルシミュレーション ― 高さと半径のスイープ
Lumericalでは、ユニットセルのパラメータ(例:ナノロッドの半径)をスイープし、パラメトリックなナノ要素の応答データベースを作成します。さらなる詳細については、記事「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」のステップ2を参照してください。この例では、ナノロッドの半径 R、高さ h、及び入射光の角度 θに対する位相(φ)と透過率(T)のデータベースを作成しています。
ステップ2:目標位相の定義とナノ要素マップの生成
メタレンズの目標とする位相プロファイルを定義します。数百マイクロメートルを超えるスケールでは、完全な位相マップを生成・保存・使用するために必要なメモリ量が、一般的なCPUでは非常に大きくなります。そのため、このワークフローでは、球面や円筒面などのように解析的に定義できる目標位相プロファイルを使用します。また、Ansys OpticStudioを用いて、光学系全体の中でメタレンズ面における望ましい波面を最適化することも可能です。これにより、目標位相は離散的な数の係数(例:多項式)を持つ関数として定義できます。より高度な最適化ワークフローの例としては、「Eye tracking optical system with a metalens」または「Fiber Endoscope Design Using Metalens for Illumination and Collection」を参照してください。この例では、データベースから収集したデータを用いて目標位相に一致させるための .h5 ファイルを作成します。さらに、ナノロッドの半径 Rとそれらの位置 (x,y)のデータも .h5 ファイルとして保存され、これらは後のステップ4で GDS exportファイルを作成する際に使用されます。
ステップ3:OpticStudioへの統合
前のステップで定義した目標位相プロファイルとデータベースに基づいて、大型のメタレンズを定義します。データベースはファイルとして書き出され、このファイルには屈折率マップが含まれており、各セルに対して屈折率が取り得る位相及び振幅の離散的な値のリストを参照する形になっています。その後、このファイルをダウンロードパッケージに含まれている Zemaxプラグインで使用し、大型メタレンズを光線追跡システムに統合します。
ステップ4:GDS生成
このスケールでも GDS exportはサポートされています。詳細については、「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」の記事を参照してください。
実行と結果
ステップ1:ユニットセルシミュレーション ― 高さと半径のスイープ
1.スクリプト generate_meta-atom_database.lsf を実行します。
このステップは、セルパラメータ(例:ナノロッドの半径)のスイープを実行し、セル要素の局所特性とその出力位相・振幅との関係を決定することから成ります。この手順は、メタレンズの最終的なスケールに影響を受けません。詳細については、記事「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」のステップ2を参照してください。このスイープの出力ファイルには、位相と振幅のデータベース情報が含まれており、ファイル名は phase_amp_vs_radius_wave_theta_phi.h5 です。
スイープは離散的な数の位相に対して実行されるため、ナノロッドの半径も離散的な数の値に限られることに注意してください。この離散化は結果として得られる位相に反映されており、実際には一定の離散的な数の異なるメタアトムしか製造できないというナノ素子の自然な製造上の制約を模擬しています。
RCWAソルバーのパラメータを設定することも重要です。スイープは特定のスペクトル範囲および角度範囲に対して実行されます。角度範囲が最大想定入射角をカバーし、スペクトル範囲にターゲット位相が定義された設計波長が含まれるようにすることが推奨されます。
ステップ2:目標位相の定義とナノ要素マップの生成
実際の設計では、Ansys Zemax OpticStudio を用いて、目的の位相関数を最適化プロセスによって導出することができます。このプロセスの詳細については、後述の付録及び「Eye tracking optical system with a metalens」や「Fiber Endoscope Design Using Metalens for Illumination and Collection」を参照してください。この例では、解析的に定義できる単純な位相関数を使用するため、Lumericalスクリプト内で直接定義した簡単な関数を利用できます。
直径20 mmのメタレンズを生成する場合、処理に多少時間がかかることがあります。そのため、まずはより小さいレンズ(例:直径10 mm、焦点距離25 mm)で一度ワークフローを試すことを推奨します。
2.スクリプト generate_metalens_data.lsf を開き、レンズタイプを "spherical" に設定し、焦点距離とレンズ半径を指定した後、Part 1を実行して1次元プロファイルを確認します。
ナノ要素のサイズによって決まるナノスケールの分解能で、直径数ミリメートルのスケールのレンズを扱う場合、目標位相の完全なマップを含むファイルを生成するには大量のメモリが必要になるかもしれません。その代わりに、このワークフローでは、解析関数で記述できる位相マップに制限する方法を採用しています。本記事では、半径 5 mm、焦点距離 25 mm の球面レンズを目標としています。

開口数(Numerical Aperture ; NA)を適切な値に保つことが重要であることに注意して下さい。メタレンズが非常に高速のレンズプロファイルを目標として設計される場合、レンズ端部での位相変化がナノ要素の分解能で実現できる範囲を超えてしまう可能性があります。ユニットセル間で 2πの位相範囲を確保するためには、開口数は 以下に示すようなNyquist サンプリングの基準 [1] を満たす必要があります。
ここでpはユニットセルのサイズ、λは設計波長、NA = 半径 / 焦点距離を表します。この基本的な限界を超えると、ラップされた位相の勾配が急峻になりすぎてしまい、局所位相勾配法(Local phase gradient method)を用いる際に急激なジャンプが生じるため、メタレンズモデルに制限が生じることが予想されます。詳細については付録にある考察を参照してください。
Lumericalによる位相マップの生成
3. スクリプト generate_metalens_data.lsf の Part 2 を実行します。
4. スクリプトによって生成された .h5 ファイルをZemax > DLL > Surfaces フォルダにコピーします。
前のステップで定義した目標位相プロファイルと位相ライブラリに基づき、センチメートルスケールのレンズが定義されます。.h5 ファイルには屈折率マップが含まれており、各セルの位相及び振幅の離散的な値のリストを参照する構造になっています。各屈折率は、位相と振幅が取り得る値のリスト内のエントリーを示しています。各エントリーは、半径によって特徴づけられるナノピラーに対応しています。
また、位相及び振幅のデータベースは、RCWAオブジェクトで定義された各入射角に対して計算されている点に注意してください。RCWAソルバーの “Excitation”タブでパラメータを確認すると、この例では 0〜40°の入射角の範囲でRCWA計算を実行していることがわかります。さらに、phiの範囲についても重要で、phiは−180°~ 180°の範囲で設定するか、phi=0°の単一の値として設定する必要があることに注意して下さい。

振幅及び位相値のデータベース自体はレンズのスケールに依存しませんが、屈折率マップはレンズサイズが大きくなるにつれて増加します。設計に含まれるナノ要素の数に比例してファイルサイズも大きくなるため、まずはより小さい直径のレンズで仮テストを行うことを推奨します。また、斜め入射の場合は、異なる入射角を考慮する必要があるため、データベースはさらに広範囲な値をとります。詳細については関連する記事を参照してください。位相及び振幅の応答を表現するためには、単一の平均ユニットセルの値を用いることで十分です。この処理(ダウンサンプリング)の詳細については、記事「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」のステップ2で説明されています。
ステップ3:OpticStudioへの統合
5. ファイル metalens_10mm.zprj を開きます。
6. システムのパラメータを確認してください。
1. .h5 ファイルは、メタレンズ面のComment列に設定されています。
2. メタレンズ面で選択されているMethodは1に設定されています。これは推奨されている方法で、詳細は付録を参照して下さい。
3. Multi-configuration Editorでは、2つの異なる波長が考慮されています。550 nm の場合、2つの異なる回折次数が選択されています。
メタレンズは OpticStudio において User Defined Surfaceとして設定され、lumerical-metalens-XXXX.dll(ここで”XXXX”はバージョン及びタイムスタンプを表します)というDLLを使用します。その後、生成された .h5 ファイル名(拡張子を含む)をComment列に入力することで、データが読み込まれます。直径20 mmのメタレンズの場合、データの読み込みに多少時間がかかることがあります。
メタレンズ要素と相互作用した後の光線の出射方向を計算するために、2つの異なる方法が用意されています。この選択は“Method” パラメータを設定することで行います。値 0は局所位相勾配法に、値1または2はWindowed Fourier Transform(WFT)法(精度レベルが異なる)に対応しています。これら2つの方法の違いについては、付録で説明されています。
デフォルトではWFT法を使用しており、これはWTFではより精度が高く、さらに複数の回折次数を解析することが可能であるためです。

Local Phase Gradientと比較すると、WFT法では、使用する回折次数(order)を選択できます。ただし、この文脈における”order”は、標準的な回折次数の定義と完全には一致しない場合があります。角度空間で検出されたピークは、強度の大きい順に並べられます。”Order 0”は、最もエネルギーが大きい次数に対応します。もしorderパラメータの値が検出されたピーク数より大きい場合は、最後の次数(最も弱いピーク)が使用されます。
ステップ4:GDS生成
7. スクリプト gds_export.lsf を開きます。焦点距離を25mm、レンズ半径を5mm に設定してスクリプトを実行します。
GDS形式へのエクスポートは、製造のために必要な重要な最終ステップです。この大きなスケールでもこの機能はサポートされています。詳細については「LumericalとZemaxを連携したメタレンズ設計:設計フローと妥当性評価ガイド」の記事を参照してください。

重要なモデル設定
このモデルで使用されている重要なオブジェクトと設定の説明
- この最新のワークフローを用いた場合でも、シミュレーション可能な最大サイズはコンピュータのRAM容量によって制限されます。64GBのRAMを使用した場合、生成可能な最大サイズは半径が約10mmを少し超える程度のメタレンズです。
- 現在のところ、偏光に依存しないメタ原子のみが光線追跡でサポートされています。
- メタレンズは有限サイズのユニットセルで構成されており、位相ライブラリは離散的な位相値で生成されます。そのため、レンズのF値は、位相プロファイルの変化がユニットセルの分解能で解像できる範囲を超えないように設定する必要があります。
- また、光線の出射方向を決定する2つの方法は、光線がメタレンズに入射する位置の周囲の局所的なプロファイルに基づいて計算されるため、レンズの端で、周囲領域の一部がメタレンズの外側に出てしまう場合は、精度が低下する可能性が考えられます。これにより、レンズの端に当たる光線が期待通りに屈折されないことがあります。そのため、アパーチャサイズをメタレンズの実際のサイズより少し小さく設定することが推奨されます。本例では、メタレンズの直径が20 mmであるのに対し、システムのアパーチャ直径は19.8 mmに設定されています。また、メタレンズの正しいサイズを確保するために、アパーチャタイプとして”Entrance Pupil Diameter”を使用することが推奨されます。
- さらに、メタ原子データベース生成のためのRCWAスイープでは、phiの角度範囲は0のみまたは−pi~piの範囲をカバーするように設定する必要があります。
モデルをユーザーのパラメータに合わせて更新する
デバイスパラメータに基づいてモデルを更新するための手順
- ステップ1で定義した焦点距離、レンズの大きさ、位相関数は、異なる機能を持つメタレンズを生成するためにカスタマイズすることができます。
- Zemax OpticStudioでメタレンズを最適化する場合、通常はBinary 2 surfaceを用いて目標のメタレンズ位相プロファイルを定義します(詳細はHow to model diffractive optics using the Binary 2 surface を参照してください)。この場合、ステップ2でレンズタイプを “Binary2” に設定します。さらに、Zemaxで最適化された正規化半径とBinary 2係数をコピーして、スクリプト内の '
norm_radius'と 'zemax_coeffs'に貼り付けます。 - この例では、ナノロッドの半径を主要なパラメータとして使用し、目的の位相を生成しています。しかし、異なるカスタムユニットセルを定義することも可能であり、高さやデューティ比などのパラメータもスイープに含めて、ステップ2で示したようなデータベースライブラリを生成することができます。
- RCWAスイープの際には、メタ原子パラメータに対して少ないサンプル点(例:半径を10 nm間隔)でデータベースを高速に生成することが可能です。位相がメタ原子パラメータに対して比較的滑らかに変化すると仮定できる場合には、スプライン補間を用いてデータベースをより細かく補間します(例:半径に対して1 nm間隔でサンプリング)。もし変化が滑らかでない場合には、スイープをより多くのサンプル点で直接実行し、補間方法を スプライン補完から線形補間に変更するか、補間を行わない方が良い可能性があります。これは特に、メタ原子サイズが共振に近づく場合に重要で、この場合振幅プロファイルに深いディップが生じることがあります。
モデルをさらに発展させる
モデルをさらにカスタマイズしたいユーザー向けの情報とヒント
.h5ファイルには、ラップされた位相の情報のみが含まれています。これは実際には、メタレンズの物理構造に対応しており、通常はメタ原子パラメータのみの範囲内で 0から2π の位相範囲をカバーします。光線の屈折計算では、第1の方法では位相勾配のみを使用するため、WFT法でも位相ラッピングは計算に影響しないという理由から、ラップされた位相で十分です。しかし、OPD(Optical Path Difference:光路差)などのさらなる解析を行う場合には、位相をアンラップすることに利点があります。ただし、位相アンラップは簡単ではないので、このモデルでは参照位相プロファイル(reference phase profile)を設定できるオプションが用意されていて、これを使用するとZemaxがメタレンズの位相プロファイルを正しくアンラップできるようになります。ただし、このオプションは 局所位相勾配法を選択した場合、すなわちMethod = 0 のときのみ利用可能です。参照位相マップの式は次のように定義されます。
ここで、
今回の例のような単純な球面プロファイルの場合、この式は次のようになります。

このオプションを有効にすると、“Surface Phase”解析ツールを使用してアンラップされた位相を可視化することが可能になります。
追加資料
関連論文
- Mu Ku Chen, Yongfeng Wu, Lei Feng, Qingbin Fan, Minghui Lu, Ting Xu, and Din Ping Tsai “Principles, Functions, and Applications of Optical Meta-Lens”, Advanced Optical Materials, Volume 9, Issue 4 (January 2021); https://doi.org/10.1002/adom.202001414
- T. Leportier, D. Bacon-Brown, D. McGuire, S. Gangadhara, B. Williams, M. George, A. Reid, “Novel workflow for metalens optical system design, simulation, and manufacture,” Proc. SPIE 13373, Photonic Instrumentation Engineering XII, 133730R (19 March 2025); https://doi.org/10.1117/12.3040737
- Han-Hsiang (Michael) Cheng, Thibault Leportier, Dan-Nha Huynh, Jens Niegemann, Adam Reid, Wei-Hsin Chen, “Ray-tracing compatible methods for large-scale metalenses in multiwavelength imaging system,” Proc. SPIE 13378, High Contrast Metastructures XIV, 1337809 (19 March 2025); https://doi.org/10.1117/12.3040478
付録
補足情報と理論
メタレンズと相互作用した後の出射光線の方向を計算するために、2つの異なる伝搬方法を利用できます。

局所位相勾配法(Local Phase Gradient Method)
局所位相勾配法は、パラメータ “Method”を0に設定した場合に適用されます。 この方法では、光線がメタレンズに入射した位置周辺の位相値を補間し、その位置での局所位相勾配を求め、得られた位相勾配から、m次の回折光線に対する出射光線の方向が次の式で計算されます。
ここで(Xi, Yi, Zi)は入射光線及び出射光線の単位ベクトル、n1とn2はそれぞれ入射側媒質及び出射側媒質の屈折率、λは波長、mは回折次数、P(x,y)はラジアン単位で示される局所位相をそれぞれ示します。なお、z方向は表面の法線方向と仮定されています。
位相勾配から光線の曲がりを計算するために、2種類の補間方法が用意されています。これらはOpticStudioのsurface parameterで選択できます。値1はバイリニア補間(bilinear interpolation)であり、値3はバイキュービック補間(bicubic interpolation)です。バイキュービック補間の方がやや高精度ですが、バイリニア補間は位相ジャンプに対してより安定であると期待されます。
Windowed Fourier Transform(WFT)
WFT法は、パラメータ “Method” を 1 または 2 に設定した場合に適用され、それぞれ”fast”(高速設定)、”standard”(標準設定)に対応します。
通常は速度と精度の観点からMethod = 1を使用することが推奨されます。
WFT法の基本原理は、メタレンズに入射する光線を局所的な平面波として扱うことです。メタレンズのプロファイル(位相及び振幅)に対してウィンドウ関数を適用し、その後FFT(高速フーリエ変換)を実行して角度空間の情報を取得します。メタレンズによって生じる各回折次数は、角度空間にピークとして現れます。角度空間内のこれらのピーク位置を検出することで、メタレンズとの相互作用後の光線の出射方向を計算できます。

この方法における重要な要素の1つはウィンドウのサイズです。角度空間での精度はウィンドウサイズに反比例するため、ウィンドウは十分に大きく設定する必要があります。しかし、各光線に対してFFT計算が実行されるため、ウィンドウサイズが大きすぎると計算速度が低下します。Method 1 または 2 を選択した場合、ウィンドウサイズ(λ単位)を設定するパラメータが利用できます。デフォルトでは100 λに設定されていますが、経験則としては程度に設定することが推奨されます。
Method 1は、ウィンドウ選択に関する高度なパラメータを備えた高速WFT実装です。実験測定と一致するMTF結果を得るのに十分な速度と精度が期待されます。Method 2は、より標準的なWFT実装です。計算速度がかなり遅く、ウィンドウサイズが 150 λ を超える場合には扱いにくくなります。ただし、他の実装で予期しない挙動が生じる特殊なケースに対応するために提供されています。
各方法の比較に関する注意
局所位相勾配法は計算が比較的単純であるため、高速に処理できます。そのため、初期設計段階、または単一波長での簡易評価に適しています。ただし、設計波長とは異なる波長では、この方法は正確な結果を与えない可能性があります。その理由の1つは、波長が変わるとメタレンズ構造による位相ジャンプが、0〜2πの位相ジャンプと一致しなくなるためです。その結果、位相ジャンプの周期性が本来の位相プロファイルと一致しなくなります。
一方、WFT法は設計波長以外の波長でもより正確な結果を提供します。また、複数の回折次数を扱えるため、システムのより詳細な解析が可能です。ただし、結果の精度(特にMTF)は、選択したウィンドウサイズに依存する場合があります。




