Henyey-Greenstein 分布を使用したバルク散乱をモデル化する方法

この記事では、OpticStudio 付属のユーザー定義 DLL を使用してノンシーケンシャル モードで Henyey-Greenstein バルク散乱をモデル化する方法について解説します。このモデルの基盤となっている理論について簡単に説明し、DLL を使用した光学系の解析例を 2 つ紹介します。

著者 Sanjay Gangadhara, Kristen Norton

ダウンロード

記事の添付資料

序論

Henyey-Greenstein モデルは、微少な粒子で散乱する光の角度分布を記述します。このモデルは、生体組織による光の散乱1 から、星間物質による散乱2 まで、数多くの現象に適用されてきました。

OpticStudio でデフォルトに用意されているユーザー定義 DLL の中には、このバルク散乱モデルを任意のノンシーケンシャル体積に適用できるようにするものがあります。

Henyey-Greenstein バルク散乱モデル

Henyey-Greenstein モデルは、微少粒子で散乱する光の角度分布を記述します。このモデルでは、散乱光の角度分布を次式で計算します。

equation_1

分布の特性はパラメータ g で決まります。g = 0 の場合、すべての角度で均一な散乱確率を持つ材料を記述するモデルになります。g が 1 に近づくにつれ、θ = 0 °の付近に強いピークを持つ分布に変化していきます。角度 θ は、散乱光線が正反射光線に対して成す角度です。θ = 0°の場合は正反射光線に沿った前方への散乱、θ = 180°の場合は正反射光線に沿った後方への散乱を表します。

 Henyey-Greenstein モデルでのパワー分布

OpticStudio による Henyey-Greenstein モデルの実装を示すサンプルが記事の添付資料に用意されています。ファイル名は "HG-power.zmx" です。この設計は、Henyey-Greenstein 散乱分布が適用された矩形体積と、そこに垂直入射する光線を発する光源 (光線) オブジェクトで構成されます。この分布は、ユーザー定義 DLL を指定することで体積に適用されます。

[オブジェクト 2 プロパティ] (Object 2 Properties) → [体積物理特性] (Volume Physics) に移動します。ここでは、矩形体積に適用するバルク散乱モデルのタイプを選択できます。[モデル] (Model) に [DLL 定義の散乱] (DLL Defined Scattering) を選択し、使用する DLL ファイル名を "Henyey-Greenstein-bulk.DLL" とします。この DLL およびそのソース コードは Zemaxフォルダ \DLL\BulkScatter フォルダにあります。

Volume_Physics_section

DLL への入力パラメータは透過率 (散乱による入力パワーの減衰量を表します) および前式にあるパラメータ g です。散乱光線をいくつかの角度で測定するために、サンプル ファイルでは体積から等距離の位置に 3 つの小さいディテクタを配置しています。それらは入射光線に対して成す角度が 0°、30°、60°となる方向にあります。

Layout

上記のスクリーンショットは、散乱を有効にせずに表示した NSC 3D レイアウトです。したがって、正反射光線の経路のみが表示されています。散乱を有効にして結果を解析する前に、光源 (光線) の [オブジェクト プロパティ] (Object Properties) を展開します。[光源] (Sources) タブを見ると、入射光線 1 本に発生する散乱が 1 回のみになる明示的な設定が光学系に適用されていることがわかります。

NSCE_Properties_Sources

[バルク散乱] (Bulk Scatter) のデフォルトは [複数回] (Many) です。これは、光線が媒質内で複数回散乱する可能性があることを意味します。[1 回] (Once) を選択すると、光線の分岐ごとに発生するバルク散乱は 1 回のみになります。散乱体積の界面などで散乱の前に光線を分割した場合、それぞれの子光線が散乱できます。子光線の各ブランチにとっては、初めての散乱となるからです。[散乱しない] (Never) を選択すると、この光源からの光線にはバルク散乱が発生しません。

NSC 3D レイアウトで散乱の様子を確認するには、レイアウト設定で [NSC 光線の散乱] (Scatter NSC Rays) をチェックします。

Scatter_NSC_Rays

光線の多くはディテクタに到達しないため、これらの光線はその方向を示すために短い距離で描画されています。このような光線の描画長さを変更するには、[システム エクスプローラ] (System Explorer) → [ノンシーケンシャル] (Non-sequential) の [未到達光線の描画距離] (Missed Ray Draw Distance) で設定します。

System_explorer

このパラメータは、どのオブジェクトにも到達しない光線セグメントを描画する距離です。ゼロを指定した場合、未到達光線の描画距離にはデフォルト値が選択されます。

フィルタ文字を使用すれば、矩形体積内部で散乱してディテクタ (矩形) に到達した光線のみを解析できます。フィルタ文字列により、描画または表示されるために光線が適合しなければならない「テスト」を定義できます。フィルタ文字列の構文は、コマンドまたはフラグの間で実行する論理演算で構成されます。これらのコマンドまたはフラグでは、光線がオブジェクトに到達したかどうか、到達した場合はオブジェクトで反射、屈折、散乱、回折、ゴースト反射したかどうかを指定します。フィルタ文字列のコマンドの全リストは、ヘルプ ファイルの「[設定] (Setup) タブ」→「[エディタ] (Editor) グループ ([設定] (Setup) タブ)」→「[ノンシーケンシャル コンポーネント エディタ] (Non-sequential Component Editor)」→「ノンシーケンシャルの概要」→「フィルタ文字列」に掲載されています。

以下に、この例で使用するフラグを示します。

  • Bn : オブジェクト番号 n のオブジェクト内部でバルク散乱した光線を表示します。
  • Hn : オブジェクト番号 n のオブジェクトに到達した光線を表示します。

これらのフラグは以下の演算子を使って結合することができます。

  • & : 論理積 (AND)。 & 記号の両側のフラグがどちらも TRUE である場合にのみ、AND 演算は TRUE を返します。
  • | : 論理和 (OR)。いずれかのフラグが TRUE である場合、OR 演算は TRUE を返します。

したがって、矩形体積 (オブジェクト 2) 内部でバルク散乱し、ディテクタ (オブジェクト 3、4、5) のいずれかに到達した光線を表示するには、フィルタ文字列 "B2 & (H3 | H4 | H5)" を使用します。このフィルタ文字列は、NSC 3D レイアウトまたはシェーデッド モデルの描画光線に適用できます。

Filter_string_applied

この結果を光線データベースに保存するときに、フィルタ文字列を光線追跡コントロールで解析光線に適用できます。

Ray_Trace_Control

全パワーを 1 W、透過率を 1 として解析光線を 5,000,000 本とし、各ディテクタに到達するパワーの分布を測定します。下表に、"g" = 0.001 と "g" = 0.5 の場合の結果を示します。

Table

[平均光路] (Mean path) (平均自由光路) は、体積の厚み 0.1 mm よりも小さい 0.0001 mm に設定しています。OpticStudio による測定値は、各光線による散乱を 1 回のみとした場合に予想される理論モデルの結果と、統計誤差の範囲内で一致しています (統計に基づいているため、光線追跡の結果は毎回異なります。したがって、実際に得られる値は、ここに示した値と異なりますが、それでも十分に近い結果になると考えられます)。

上表の測定値は、各ディテクタ ビューアから読み取ることができます。

Detector_Viewer

注意: 入力として "g" = 0 を指定した場合、計算で実際に使用される "g" は 10-4 です。これは、"g" = 0 が計算の特異点であるための対策です。ごく小さい値の "g" で得られた結果は、"g" = 0 における想定値とほぼ等しくなるので、この近似が十分に正確であることがわかります。

Henyey-Greenstein モデルでの角度分布

このモデルに関連する角度分布は、添付のサンプル ファイル "HG-angular.zmx" で確認できます。

このファイルでも、全パワー 1 W、透過率 1 で 5,000,000 本の光線を発する光源 (光線) を使用して、Henyey-Greenstein 分布が適用された体積に光線が垂直入射するようにしています。この光源は、各入射光線が体積で 1 回だけ散乱するように設定されています。平均自由光路には、体積の厚みに比較して小さい値を設定します。

次に、散乱体積の前方 4 mm の位置に置いた大型のディテクタで放射強度 (W/ステラジアン) 分布を測定します。"g" = 0.001 の場合、予想どおり分布は均一です。

Radiant_intensity_distribution

"g" = 0.5 の場合、分布には明確なピークが現れます。

Radiant_intensity_distribution_2

これらの結果を、確率分布の理論モデルと比較すると、きわめて良好に一致していることがわかります。

Radiant_intensity_distribution_3

参考文献

  1. AK Dunn, "Light scattering properties of cells," Dissertation, 1997, ece.neu.edu. (以前は http://www.nmr.mgh.harvard.edu/~adunn/papers/dissertation/node54.html で入手可能であった文献)
  2. Henyey-Greenstein scattering function http://omlc.ogi.edu/classroom/ece532/class3/hg.html

KA-01685

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

コメント

0件のコメント

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