[57] NSCが遅い時の対応(3) – CAD_Zemaxコミュニティ注目トピック (14)

OpticStudio

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

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

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

結論

  • CADを含んだノンシーケンシャルモードの光線追跡が遅い場合、まず光線追跡実行時のCPUコア数を減らしてみましょう。マルチコア化の準備にばかり時間を取られている可能性があります。
  • OpticStudio 20.3からデフォルトのCADライブラリがSMSからACISに更新され、CADオブジェクトを含む光学モデルの光線追跡が高速化されましたので、使ってみましょう。
  • CADオブジェクトは複雑な形状を取り込む最終手段です。他の方法で代用できないか検討してみましょう。

このページの使い方

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

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

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

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

CADオブジェクトを含んだ光学モデル

OpticStudioノンシーケンシャルモードでは、CADで作成した部品データやアセンブリデータを取り込むことができます。形状として取り込んだのち、そのオブジェクトに材質やコーティング、散乱特性を付与することで、光線追跡の対象とすることができます。

図 57-1 OpticStudioノンシーケンシャルモードに取り込まれたCADオブジェクトの鏡筒。

この機能はシーケンシャルモードでは不可能な、光学部品をホールドするメカ部品の影響や、OpticStudioに搭載された機能では定義できない複雑な形状を取り扱う強力な武器になります。

一方で、CADオブジェクトを取り込むときには、いくつかの懸念事項が出てきます。

  • ファイルサイズの大きなCADモデルを取り込むと光線追跡が遅くなる。
  • そもそもCADモデルをどうやって光学モデルに取り込んでいるのか。

CPUのコア数を少なくする

CADを含むノンシーケンシャル光線追跡が遅い時にまず試したいのが、光線追跡コントローラのオプションで「コア数」を少なく、なんなら1にしてみることです。コア数のデフォルトは、Windowsが自動検出する最大コア数になっています(下図だと24)。

図 57-2 光線追跡コントローラの右上にある、# of Cores (コア数)を小さくすると、並列数を減らせる。

「光線追跡を短時間で実行したいなら、すべてのコアを使えばいいじゃないか」と思うかもしれませんが、落とし穴があります。複数のコアで並列で光線追跡を実行するには、各コアに光学モデルを保持させる必要があります。

この各コアに光学モデルを渡すとき、CADモデルを読み込む作業が必要になります。この作業に時間がめちゃくちゃかかる場合、並列化によって光線追跡の時間が短縮されたとしても、その前の準備の増分の影響が勝ってしまいます。

図 57-3 マルチコアを用いた光線追跡時間の短縮よりも、光学モデル分散に要する準備時間の増大が大きいケース。

光線追跡を実行すると、計算の進捗状況が0.00%から増えていきます。このパーセンテージはどうやら、「光線追跡そのもの」の進捗状況を表しているようです。もし進捗状況がほとんど動かず、終盤に突然100%になる状況であるなら、それはCADモデルを各コアで読み込む準備作業ばかりに時間がかかっているかもしれません。

計算時間の短縮を狙った、GPUやマルチコアCPUについては、GPUとマルチコアCPU_Zemaxコミュニティ注目トピック (2) を参照してください。CADモデルを含んだノンシーケンシャルモードでマルチコアの恩恵が受けられない状況は、まさしく計算並列化の短所と言えます。

ACISライブラリを有効にする

OpticStudio 20.3から、OpticStudioが使用するCADライブラリのデフォルトがACISライブラリに更新されました。CADライブラリが何をしているかは後述します。CADライブラリが更新されたことで、CADオブジェクトを含んだ光学モデルの光線追跡が高速になったようです。ちなみに、旧式のCADライブラリはSMSライブラリと言います。

ACISライブラリについて、Zemaxコミュニティ内で情報を得ることができます。OpticStudio 20.3の新しいACIS CADライブラリ(Zemaxコミュニティ)OpticStudio 21.3.2でCADオブジェクトを含んだ光線追跡を改善するデフォルト設定(Zemaxコミュニティ) などです。

現在のOpticStudioには、SMSとACISの2つのCADライブラリが共存しています。それらを1つのファイルで共存させることはできず、どちららか一方を選択して使用します。

CADライブラリの選択は、プロジェクト環境設定(Project Preferences) > 一般タブにある、Use ACIS libraries (ACISライブラリを使用する)オプションで行います。チェックを入れるとACISライブラリが使用され、チェックを外すとSMSライブラリが使用されます。

図 57-4 プロジェクト環境設定 > 一般タブ。左下にあるオプションがライブラリのスイッチ。

デフォルトではACISライブラリとなっていることから、Zemaxの推奨ライブラリもACISライブラリです。ACISライブラリで問題(CADオブジェクトを取り込めないなど)があった場合はサポートで対応してくれそうですが、SMSライブラリで問題があっても対応してくれないかもしれません。

SMSライブラリでないと取り込めないCADオブジェクトもある

CADライブラリは万能ではありませんし、ACISライブラリが常にSMSライブラリの上位互換と言うわけではありません。ACISライブラリだと取り込みに失敗するオブジェクトでも、SMSライブラリであれば取り込める場合もありますし、その逆もあります。CADライブラリが新旧で共存しているのは、私たちにとっては選択肢が確保されているということでうれしいです。CADオブジェクトの取り込みがうまくいかない場合は、ライブラリを切り替えてみましょう。

OpticStudioで行われるCADオブジェクトの処理

「CADデータをOpticStudioの光学モデルに取り込んで、光線追跡を実行する」というのが、どのようなプロセスで処理されているのか、CADライブラリがどのような働きをしているのか、簡単に説明します。

外部のソフトウェアで作成されたCADファイル(例えばSTEP)がOpticStudioの光学モデルに取り込まれる前に、OpticStudioのCADライブラリに送られます。CADライブラリの中では、STEPファイルの中身が解析されて、OpticStudioでの処理ができるようにデータが変換された後、OpticStudioの光学モデルとして使用できるようになります

図 57-5 CADソフトからOpticStudioにCADオブジェクトを受け渡す流れ。ライブラリが翻訳機のような役割を果たす。

ACISライブラリは、旧式のSMSライブラリと比較して、読み込む作業と光線追跡の両方で大幅な時間短縮が実現されているとのことです。いろいろな事情でOpticStudioのバージョンを20.3よりも前で使っていて、CADオブジェクト込みのノンシーケンシャル光線追跡の遅さに困っていれば、このACISライブラリに期待してバージョンを挙げてみると改善するかもしれません。

オブジェクトプロパティのCADタブの設定

ACISライブラリを有効にしてCADオブジェクトを取り込むと、そのオブジェクトのプロパティでCADタブで様々な設定が可能です。タブの右側にある「モデルパラメータ」には、光線追跡に関連するオプションが用意されているので、これを調整することで精度を落として計算時間を短縮したり、時間をかけてでも精度を上げることができます。が、顕著な差があるかと言われると。。??

図 57-6 CADオブジェクトのプロパティ > CAD タブ。モデルパラメータもACISライブラリになって新しくなった。

描画公差 [Chord Tolerance]は、シェーデッドモデルやレイアウト図での描画と、オブジェクトディテクタでの分解能を調整できます。描画だけに影響して光線追跡とは無関係かと思いきや、光線とオブジェクトが交差する位置を大まかに計算する、最初の推測値に影響します

公差を小さくした場合、グラフィック性能には高精度な描画を行うために、グラフィックカードのパワーが要求されます。そして、光線追跡性能には最初の推定値の精度が向上することでCADオブジェクトの形状に従った正しい結果が得られます。

描画公差はデフォルトはゼロで、OpticStudio内部で自動的に適切な値が設定されます。描画公差を確認するには、オブジェクトを描画する三角形が見やすい、3Dレイアウト図がおすすめです。もし三角形が大きいと思った場合は、描画公差をマニュアルで入力してみます。

最大エッジ長[Maximum edge length]は、描画公差と似ていますが、三角形の最長の辺の長さを制限するパラメータです。形状が細長~い三角形に分割されるようなケースで、対策として使用できます。

追跡モード[Trace mode]は、光線追跡の精度と時間のトレードオフになります。が、正直ヘルプファイルの説明ではカーネル[Kernel]が最も高精度で最も低速であること以外、どれが速いとか精度が高いとかは明確ではありません。おそらく速い順で、平面>シェーデッド>標準>>>カーネルと思われます。

CADオブジェクトは最後の手段

CADオブジェクトの光線追跡が遅くなるのは避けられません。身も蓋もない話ですが、光線追跡の速度を考えると、CADオブジェクトを使用せずに解析するのが一番です。複雑な形状を取り扱えるのはOpticStudioノンシーケンシャルモードの強みの一つで、方法はいくつかあります。詳細については、ノンシーケンシャルの3つの特技_OpticStudioのノンシーケンシャルモードについて (4 fin) を参照してください。

まとめ

このページでは、Zemaxコミュニティに投稿された「NSCモードで重い解析や設計をするときの戦略」から、「CADオブジェクトの使用」によって光線追跡の時間が長くなる状況に役立つ機能を取り上げました。コア数を減らすことや、ACISライブラリ、CADライブラリがどのように機能しているかを理解することで、CADオブジェクトを含んだノンシーケンシャルモードの利用がスムーズになります。

コメント

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