こんにちは。光学、光でのお困りごとがありましたか?
光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。2022年11月2日にZemaxソフトウェア一式(OpticStudio、OpticStudio STAR モジュール、OpticsBuilder、OpticsViewer)の新バージョン、22.3がリリースされました。このページでは、OpticStudioの新機能をレビューします。
リリースノートはインターネットで公開
以前はリリースノートをPDFでダウンロードしていましたが、21.3からコミュニティで公開されるようになりました。OpticStudio 22.3の日本語版のリリースノート(Zemaxコミュニティ) 、Ansys Zemax OpticStudio 2022 R2.02 リリースノート を参照してください。過去のリリースノートも閲覧できます。
OpticStudio 22.3とAnsys Zemax OpticStudio 2022 R2.02
少し前のリリースから、2つのソフトウェア名で新バージョンがリリースされるようになりました。
前者がZemax版です。OpticStudioの後に西暦の下二けた(22)にメジャーリリースの番号(.3)、そのあとにバグ修正が加わったサブリリースの番号がつきます。OpticStudio 21.2.1だと、2021年、2つ目のメジャーリリース、1つ目のサブリリースになります。
後者がAnsys版です。ZemaxがAnsysに買収された後、Ansys製品の1つとしてリリースされているバージョン表記で、他のAnsys製品にならっています。西暦が4桁で、そのあとにR付きのメジャーリリース番号、サブリリースの順番になっているようです。
Zemax版とAnsys版、永久ライセンスやサブスクリプションライセンス、エディション(スタンダード、プロフェッショナル、プレミアム、エンタープライズ)、これらによって使える機能は少しずつ異なっています。最新機能についても、使える・使えないの違いがあるので、自分たちがどのソフトウェアのライセンスを所有しているか、今一度確認が必要です。
OpticStudio 22.3、2022 R2.02 新機能
このページではリリースノートを情報源に、筆者が詳しく知らないOpticStudioの追加モジュールとなるSTARモジュールとOpticsBuilderは割愛して、OpticStudio 22.3と2022 R2.02で注目の新機能についてレビューします。筆者個人の主観が入っているのであくまで参考までとして、詳細は公式の情報を参照してください。
合成面 (Composit Surface)
詳細については、Introduction to Composite Surface (Zemax技術記事、英語) を参照してください。光ラーニングでもぜひ取り上げたい新機能です。
この面はシーケンシャルモード専用の面タイプで、サグを定義する面を複数重ね合わせることで最終的な面のサグ形状を定義する面です。例えば、Qタイプ非球面で定義するサグと、ゼルニケ標準サグ面で定義するサグを重畳することが可能です。この機能の活躍が期待されている使用シーンは、解析や公差解析です。
機能のコンセプトが近しい機能に、プレミアム限定のTrueFreeFormという面タイプもありましたが、個人的には合成面の方が使える幅が広そうです。
特に公差解析への恩恵が大きく、サグで定義する面であればすべての面にTEZIオペランドを使用したイレギュラリティ公差が設定可能になります。非球面レンズの設計に多用されているQタイプ非球面や、自由曲面の設計に多用される拡張多項式面など、公差解析機能の活用の幅が広そうですが、公差解析の既存機能との親和性は気になるところです。
ちなみに、他のイレギュラリティ公差解析用オペランド、TIRRとTEXIも合成面によってサポートする面タイプが拡張されます
位相面や回折面、理想面は未サポート
現在の合成面は、位相面(バイナリ、ゼルニケ位相など)や回折面(回折グレーティング、ホログラム)、理想面(近軸面)といった特殊面には対応していません。面の光学的な作用が、面の形状による光線の屈折のみに限定されている、とも言えます。将来的にこれらの面にも合成面の機能が拡張されるか注目です。
ノンシーケンシャル単一光線追跡 (NSC Single Ray Tracing)
ノンシーケンシャルモードで使う単一光線追跡機能です(そのまんま)。この機能は、シーケンシャルモードにある単一光線追跡をノンシーケンシャルモードで使える形で移植した機能で、光線を1本だけ追跡します。その結果を、視覚的なレイアウトと詳細な経路を記載したテキストの2通りで出力します。
シーケンシャル単一光線追跡は、正規化視野座標(位置)と正規化瞳座標(方向)を指定することで光線を特定していました。シーケンシャルモードの正規化視野・瞳座標については、正規化(視野, 瞳)座標_シングレットレンズの設計(OpticStudio入門) (7) を参照してください。
一方で、ノンシーケンシャル単一光線追跡が光線を特定する方法は、位置情報となるxyz座標と角度情報となる方向余弦LMNの計6パラメータです。参照オブジェクトも使用できるので座標の設定も比較的容易です。
NSC単一光線追跡のいいところ(個人的感想)
リリースノートによれば、この機能のメリットは「エディタに新しく光源オブジェクトを追加することなく単一の光線を追跡できる」点とのことです。ちなみに、筆者の経験で単一光線追跡用の光源をエディタに新たに設置することにデメリットを感じたことはなかったので、他のユーザはそう思っていたんだな~、というのが感想です。
個人的には「光線データを保存する設定にして光線追跡を実行しなくても」単一光線の経路情報をテキストで確認できることのメリットが大きいと思いました。わざわざ光線データベース(ZRDファイル)のファイル名を変えて保存するのは面倒ですし、もっと危険なのは、時間をかけて作成した大切な光線データファイルを上書きしてしまうリスクでした。
NSC単一光線追跡のいまいちなところ(個人的愚痴)
この機能で一番いまいちなのは、角度情報の設定方法が方向余弦のみなことです。ノンシーケンシャルコンポーネントエディタは角度で設定できて理解しやすいです。方向余弦の3値から光線が進む方向を直観的に理解できる人は、なかなかにレアだと思います。テキストで出力される経路のデータはフォーマットが決まっているので、出力結果を角度表記にしてほしいとまでは言いませんが、初期値を角度で入力するオプションがあれば使いやすくなりそうです。
なお、方向余弦については、位置、方向余弦、スネルの法則_光線に含まれる光学情報(1) を参照してください。
また、解析機能の宿命ともいえるのですが、指定している光線を切り替えるためには、一回一回設定画面を開いて光線座標を編集して、設定画面を閉じて結果を確認する必要があります。正直、これはめんどくさいです。加えて、角度を振る場合は方向余弦の計算しなおしです。
それだったら最初から、エディタに新たに光源を設置しておいて、エディタのセルを編集すればレイアウト画面に即座に反映されるので、はるかに作業性は高いです。
エディタに追加する方法では、いいところでも挙げたポイントの詳細な追跡データを確認することはできません。しかし、1本の光線の振る舞いを確認しているときは、詳細な座標よりも光学系内部での光線の進み方の確認が重要になります。
いまいちなところを解消する回避策
散々ネガティブなことを書き連ねましたが、上の課題は回避可能です。その方法は、機能のオプションにもなっている参照オブジェクトの活用です。単一光線の光源が参照先とするダミーオブジェクトを置き、そのダミーオブジェクトの角度を動かします。そうすると、それに連動して単一光線追跡で追跡される光線も移動します。
そうなると、リリースノートに記載されている「元のシステムに影響を与えることなく」のメリットの部分が打ち消されることになります。それでも筆者個人としては、光線の角度を方向余弦ではなく角度で設定できることのメリットが大きいと思います。
また、単一光線追跡の設定画面を開かなくても、ダミーオブジェクトのセルを入力すると、即座に光線座標が調整されてウィンドウが更新されます。追跡の詳細データもゲットできて、一番効率的な機能の使い方ではなかろうかと思います。
Lumerical 2D RCWA DLL
OpticStudioノンシーケンシャルモードの回折系のオブジェクトで使用するDLLで、同じAnsys製品であるLumericalとOpticStudioを動的にリンクさせることができます。既存機能のCADソフトウェアと連携して、CADのネイティブファイルをOpticStudioに取り込むダイナミックリンクのアナロジーです。
Zemaxの技術記事で、この機能の詳細を確認できます。Dynamic workflow between Lumerical RCWA and Zemax OpticStudio (Zeamx技術記事、英語)。
使用するための条件もCADダイナミックと同じで、同じマシンにCADソフトウェアとOpticStudioがインストールされており、かつ両方を使用できるライセンスを保持していることです。CADダイナミックリンクの場合は、ダイナミックリンクを使用するオブジェクトタイプを選択すると、OpticStudio内部でCADソフトウェアを立ち上げます。一方でこの Lumerical 2D RCWA DLL は、明示的にこのDLLが同じマシン内のLumericalを立ち上げるように機能します。
OpticStudioの光線データをLumericalが取り扱えるように変換して、Lumericalの計算結果をOpticStudioが取り扱えるデータに変換して光線データを生成するような機能になっていると思われます。
「2D RCWA」とLumerical側の計算内容が限定されているので、1DだったりFDTDだったりのソルバーと連携できるかどうかは分からないです。筆者はLumericalの知見がないので、これ以上の具体的な部分には踏み込まないことにします。
OpticStudioには、プレミアムエディション限定ですがRCWAを計算するDLLが搭載されています。このDLLはLumericalのような外部のソフトウェアとの連携ではなく、OpticStudio単体でRCWA計算を行う機能になります。できることとしては重複している部分もありそうですが、今後のこれらの機能のすみわけについても注目したいです。
OpticStudioに搭載されているRCWA機能については、Simulating diffraction efficiency of surface-relief grating using the RCWA method (Zemax技術記事、英語) を参照してください。日本語ページもありますが、最新の内容は英語の方が先に更新されます。
こういったソフトウェア連携は光学に限らず、シミュレーション分野においてはメガトレンドのように思います。光学、さらに幾何光学と波動光学のごく一部の狭い範囲とどまらず、他の分野との連携にも立ち向かっていけるような学習の必要性を、ひしひしと感じる今日この頃です。
Zemax版のメジャーリリースは23.1が最後
22.3のリリースノートによれば、来年2023年1月にリリースされるOpticStuidio 23.1がZemax版の最後のメジャーリリースです。それ以降、新機能はAnsys版にのみ搭載され、Zemax版はバグ修正だけを含んだサブリリースになります。2014年にOpticStudioがリリースされた後、ZEMAX 13がSP5か6までがリリースされたのが懐かしいです。今も相当数のZEMAXユーザがいると思います。
まとめ
2022年11月2日にリリースされたZemaxソフトウェアの最新バージョンから、OpticStudio 22.3の新機能をレビューしました。合成面は非球面、自由曲面設計の公差解析での活用が期待されます。ノンシーケンシャル単一光線追跡は、今後の機能強化に期待です。Lumericalとのダイナミックリンクは、筆者の状況的には、Lumericalをいかに使いこなせるかがネックになりそうです。
参考
[1] ばたぱら バター猫のパラドックス, 【ベクトル解析】はじめての 方向余弦 (図でわかる), https://batapara.com/archives/direction-cosine.html/
コメント
合成面を最近使ってみました。結果としてミラー保持により生じた変形をグリッドサグとして軸外し放物面ミラーに付加することができました。興味深かったのは、合成面は設定で主光線と合わせる設定が可能ということでした。軸外し放物面では面を定義する座標原点と主光線が当たる位置がずれますが、ミラーが当たる点を原点とし、その点でのミラーの法線をZ座標にしたサグ量を付与できるということです。
このようなオプトメカ変形の付与はSygmadyne社のSigFitというソフトを使っていたのですが、合成面でできると非常に助かります。もちろんSTARモジュールでもできるはずです。
ちなみに、合成面でグリッドサグを使用する場合は、グリッドファイルを変えるときは、一度合成面を解除しなければならない点が少しストレスでした。
コメントありがとうございます!新機能も使ってらっしゃるんですね。使用感の共有、ありがとうございます。
合成面は合成面ごとに位置調整できるのは魅力ですよね。公差解析用途が主眼の機能と感じていましたが、外部データの取り込みでも活躍するのですね。
グリッドサグを合成面で使用したときの制約もあるのですね。メモリ的な仕様なのか、改善できるバグ的挙動なのか、興味のあるポイントです。
コメントありがとうございます。ベースとなる軸外し面のアパチャーを設定していると、ボタン一つでシフト(XYZ)、チルト(XYZ)を自動的に計算、入力してくれるところが便利でした。
通常、保持変形などはFEMを用いて評価されますが、その結果をZEMAXに取り込みたいケースがあります。FEMは通常、メッシュが不等間隔ですので、そのデータを直接取り込む場合はSTARモジュールが必要です。行列計算ソフトで等間隔グリッドに補間するか、ZEMAXで定義出来る面(XY多項式面やZerinke多項式面)にフィッティングできた場合に、合成面が使えそうです。あとは、最適化で既存の面を組み合わせた形状の面を使用したいケースでも使えるかもしれませんが、その場合はもはや自由曲面で設計した方が製造しやすいかもしれません。
以前、不等間隔溝を持つトロイダルグレーティングを検討していたのですが、ZEMAXにいい面がなくて困っていました。最終的には不等間隔溝を定義できる、「楕円グレーティング1面」でトロイダル面を近似的に表すことで対処しました。現在はグレーティング面は合成面として使えないようですが、将来的に合成面でなんとかなると助かることがあるかもしれません。
なお、レンズエディタ上では「合成面」と表記されていますが、ヘルプファイルでは「複合面」と表記されているので注意が必要です。サポートにはお伝えしておりますので、どこかで修正されるかと思います。
大変興味深いです。使い慣れたOpticStudio機能、新しいけど元からある機能の拡張ともいえる合成面、別タブが用意された新しいSTAR機能、迷ってしまいますね。
合成面の位相面対応は筆者としても注目したいポイントです。複雑な曲面形状+位相面はポテンシャルが高いように感じます。
グレーティングのピッチが変わる素子も面白いです。グレーティングの活躍が期待されていたARグラス関連は最近ネガティブなニュースも多いですが、技術進歩は続くことを期待しています。