[56] NSCが遅い時の対応(2) – 光線散乱_Zemaxコミュニティ注目トピック (13)

OpticStudio

こんにちは。光学、光でのお困りごとがありましたか?

光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。このページでは、Zemaxコミュニティのトピックで共有された、ノンシーケンシャルモードの光線追跡で長い時間がかかるときの対処法のうち、光線の散乱に関する機能を紹介します。

Zemaxコミュニティについては、こちらのページ で概略を説明しています。

結論

  • 散乱光線の方向を限定する、散乱方向リスト、重要度サンプリングを使用すると、一部の散乱光線のみが追跡されるため、計算時間を短縮できます。
  • 迷光解析のような、予見できない経路からの光をシミュレーションする場合、散乱光線の方向を限定する機能を使用すると迷光経路の見落としを誘発するので注意が必要です。
  • 散乱方向を限定する機能を設定していることを忘れて場合があるので、確認してください。

このページの使い方

このページでは、Zemaxコミュニティに投稿されたトピック中から、よく参照されているもの、コメントが多いもの、筆者が気になったものを取り上げて紹介します。よくある疑問や注目されているトピックについての情報を発信することで、何かしらの気づきとなれば幸いです。

ノンシーケンシャルモードが遅いと感じたときの対応

トピックへのリンク: NSCモードで重い解析や設計を行うときの戦略

ノンシーケンシャルモードは光学モデルが複雑になるほど、追跡する光線・セグメント数を増やすほど、「ノンシーケンシャル光線追跡にとても時間がかかる」状況になります。このトピックでは、そのような状況で光線追跡の時間を短縮するためのテクニックが共有されていました。

光線散乱の設定

ノンシーケンシャルモードを使用する理由の上位に、散乱のシミュレーションがあります。シーケンシャルモードは、結像性能の向上を目指すのが基本であること、光線が追跡される光学面の順番が決まっているといった特徴から、散乱のシミュレーションには不向きです。

ノンシーケンシャルモードでの散乱の設定方法の基本については、OpticStudioでの散乱設定_Zemaxコミュニティ注目トピック (5) を参照してください。散乱特性はオブジェクトのプロパティから、面ごとに別々に設定できます。

図 56-1 散乱の設定画面。散乱タブの下にある、散乱方向(Scatter to)タブが本ページで紹介する機能。

さて、ノンシーケンシャルモードの光線追跡が遅くなる理由の2位は「散乱」です。(ちなみに、1位は光線セグメントが多いことです。NSCが遅い時の対応(1) – 光線分割_Zemaxコミュニティ注目トピック (12) を参照してください。)

散乱を考慮したシミュレーションでノンシーケンシャルモードが遅くなる、結果として時間がかかるようになる理由は、2つあります。

1つは、散乱した光線がたくさんのオブジェクトに入射して追加の計算が必要になることです。これは散乱をしミューレーションする理由でもあるので仕方ない部分でもあります。もう1つ、こちらの方が重要で、光線追跡の効率が低下することです。光線追跡の効率とは、(ディテクタに到達する光線数) / (生成した光線数) で、散乱が強いほど低下しやすい傾向にあります。

光が散乱すると、光線が到達するエリアが広がります。そうすると、ディテクタに到達する光線が減ったり、ディテクタ上の光線密度が低下するため、ディテクタの結果がザラザラになっていきます。ディテクタのノイズについては、ディテクタのノイズ対策_ノンシーケンシャル光学系の最適化 (1) を参照してください。

図 56-2 散乱による光線追跡効率の低下。ディテクタに入射する光線数も、SN比も両方が低下する。

散乱後、到達してほしいオブジェクトに向かわない散乱光線のほとんどはディテクタに到達せず、無駄になります。しかし、実物の表面特性が決まっている以上、散乱特性を変えることはできません。例えば、ランバーシアン散乱を指向性を持ったガウス散乱面には置き換えられません。

妥当なシミュレーション結果を得るには、ディテクタに到達する光線本数を増やす必要があります。まず思いつくのは、「解析光線本数を増やす」「散乱光線本数を増やす」といった力技です。2つをうまく組み合わせることで、光線追跡が効率化されるかもしれません。

散乱面に何度も光線が入射する場合は、散乱光線本数は増やさない方が良いです。光線数が雪崩式に増加してしまうためです。いくつかの組み合わせで、より短時間で光線追跡の効率が上がる条件を探してみましょう。

散乱光を効率的に追跡する2つの機能

散乱を伴うシミュレーションに時間がかかる場合のおすすめの対策は、「散乱光線の方向を限定する」です。ターゲットに向かわない無駄な光線は追跡せず、最終的に欲しい結果に貢献する光線のみを追跡します。

散乱特性を設定したオブジェクトのプロパティ > 散乱方向タブには、散乱光線を限定する機能が2つ選択できます。「散乱方向リスト」と「重要度サンプリング」は、散乱のシミュレーションを効率化できる理由が異なります。以下、機能を簡単に紹介します。

図 56-3 散乱範囲を限定してシミュレーションを効率化する概念。

散乱方向リスト

散乱光線を追跡するオブジェクトを指定することで、追跡する散乱光線を限定する機能です。一度散乱光線を発生させて、指定したオブジェクトに到達する光線のみが追跡されます。それ以外の光線は散乱後の追跡が行われません。指定するオブジェクトが散乱面に対して比較的近い位置にあるとき、指定したオブジェクトの形状がいびつなときに高い効果があります。

この機能は、 「必要なところに散乱光線が十分に届かない」という状況を解消するものではありません。「不要な散乱光線を追跡するのに要する計算を削減できる」機能ですので、どちらかと言えば、想定した経路を通過する散乱光線のみを抽出した解析が行いたい、というのが目的として近いです。散乱のシミュレーションを効率化においては、下で紹介する重要度サンプリングの方が優れています。

図 56-4 散乱方向リストの概念図。ターゲットに指定したオブジェクトに到達した光線のみが追跡される。

重要度サンプリング

オブジェクトを指定して追跡する散乱光線を限定する点は散乱方向リストと同じですが、「その方向にしか散乱光線を生成しない」点が異なります。散乱光線の無駄が少なくなるので、シミュレーションが大幅に効率化されます

重要度サンプリングの詳細については、重要度サンプリングを使用して散乱を効率的にモデル化する方法(Zemax技術記事) を参照してください。とても重要な機能なので、光ラーニングでも別途取り上げたいと思います。

2つの機能を比較すると、散乱光線を生成して「そのうち指定したオブジェクトに到達した光線のみを追跡する」のが散乱方向リストで、「指定したオブジェクトの方向にのみに散乱光線を生成する」のが重要度サンプリングです。

図 56-5 重要度サンプリングの概念図。指定したオブジェクトに向かうように散乱光線を生成する。

散乱方向の限定の注意点

2つの機能で散乱光線を効率的に計算することは、たしかに計算時間の短縮に有効です。気を付けたいのは、「散乱光の経路を指定すること」=「その経路を予見している」ことです。ノンシーケンシャルモードの利点に、「予見できない経路を通った光線の解析ができる」ことをあげましたが、散乱方向の限定はこれに逆行します。

散乱方向の限定を注意すべきケースの例は、迷光解析です。「この面での散乱光線は迷光にならないから大丈夫」と油断していると、予想以上に迷光になってしまう可能性があります。

図 56-6 散乱方向の限定は大事な光線を見落とす可能性がある。

もう1つの注意点は、「散乱方向リストや重要度サンプリングを設定していることを忘れちゃう」ことです。最初に散乱方向の設定をしてしばらくシミュレーションを続けていると、結果が変化していくことに注目するあまり、設定自体が正しいかどうかを考えなくなります。

散乱方向を限定した設定したモデルで迷光がないと思っていて、いざ実物を作成すると迷光が出てくるみたいな悲劇があるので、是非とも設定は定期的に確認するようにしてください。

まとめ

このページでは、Zemaxコミュニティに投稿された「NSCモードで重い解析や設計をするときの戦略」から、「光線の散乱」によって光線追跡の時間が長くなる状況に役立つ機能をトピックに取り上げました。 散乱光線がターゲット方向にのみ追跡される機能、散乱方向リスト、重要度サンプリングを使うことで、散乱シミュレーションを大幅に効率化できます。 設定していたことを忘れることがあるので、このページを読まれた方は、今一度、散乱の設定をご確認ください。

コメント

タイトルとURLをコピーしました