IRayTraceNormPolData

IRayTraceNormPolData は、正規化瞳座標を使用して、偏光光線のバッチ光線追跡を実行します。

ツールを起動して、追跡する光線の最大数、使用する光線の種類 (実光線または近軸光線)、電界を定義するジョーンズ ベクトル、光線追跡の終了面をユーザー側で選択します。

CreateNormPol (int MaxRays, RaysType rayType, double Jx, double Jy, double phaX, double phaY, int toSurface)

つづいて、AddRay 関数で光線を 1 本ずつ定義します。光線は、波長、相対視野座標と相対瞳座標、ジョーンズ ベクトルで定義します。Jx と Jy は、それぞれ x 方向と y 方向の電界の振幅、Phax と Phay は複素電界の相対位相を度単位で表した値です。これらには任意の値を指定できますが、Jx * Jx + Jy * Jy の値は 1.0 になる必要があります (ただし、後述の重要な例外があります)。生成される電界は、システム エクスプローラで選択した J から E への変換方法によって異なります。

AddRay (int waveNumber, double Hx, double Hy, double Px, double Py, double exr, double exi, double eyr, double eyi, double ezr, double ezi)
  • 電界の 6 つの値がすべてゼロの場合、CreateNormPol 関数によって求められる Jx と Jy の値に基づいて電界が決まります。
  • OpticStudio では、Jx、Jy、Phax、Phay がすべてゼロの場合のみ、「非偏光」の光線追跡が求められていると見なされます。非偏光光線追跡の場合は、2 本の直交する光線を追跡し、得られた透過強度の平均値を求める必要があります。これら 4 つの値のいずれかがゼロでない場合は、1 本の偏光光線が追跡されます。
  • 電界の 6 つの値がすべてゼロ以外の場合、これら 6 つの値で電界が定義されます。定義された電界ベクトルは光線ベクトルと直交する必要があります。そうでない場合は光線追跡が誤った結果になります。

結果

結果を返すメソッドとして以下の 2 つがあります。

ReadNextResult (out int rayNumber, out int ErrorCode, out double exr, out double exi, out double eyr, out double eyi, out double ezr, out double ezi, out double intensity)
 
ReadNextResultFull (out int rayNumber, out int ErrorCode, out double xo, out double yo, out double zo, out double lo, out double mo, out double no, out double exr, out double exi, out double eyr, out double eyi, out double ezr, out double ezi, out double intensity)
  • rayNumber
  • ErrorCode
  • exr、exi、eyr、eyi、ezr、ezi : ex、ey、ez の値は電界の各座標方向成分で、r と i はそれぞれ実数部と虚数部であることを表します。
  • intensity : 光線の強度。
  • ReadNextResultFull を使用した場合の xo、yo、zo: 指定した面における光線の座標。
  • ReadNextResultFull を使用した場合の lo、mo、no: 指定した面における光線の方向余弦。

次へ :