SSブログ

光学薄膜設計ソフトの設計 その5 薄膜光学計算のための数学 [考え中 - 光学薄膜設計]

薄膜設計ソフトの続き。前回CPUのベクタユニットを、AppleのvDSPとvForceライブラリを経由して使おうという話をした。実はそれは甘かった。
それを説明する前に、計算の内容を整理する必要がある。
今回は自分でもすぐ忘れるので計算のための数学について手短にまとめておく。

導出はH.A.Macleod著「光学薄膜」を参照のこと。ただし、層の数え方は逆で、基板側から0...M-1となってMacleodさんのとは逆になっている(どうでもいいけどMacleodさん、基礎方程式の導出が中途半端に親切なせいで、議論があちこち向いて読み辛いよ)。
0302fig1.png
図-1のように
  1. incident mediumとbase mediumに挟まれたM層の薄膜
  2. incident medium中での入射角がθiで偏光がp-またはs-偏光の入射光線
  3. 薄膜はbase mediumに接している層を第0層として第M-1層まで
と言う風に考える。

r番目の層は厚さが
0302eq0.png

0302eq1.png
なる屈折率を持つとする。ここでcは真空中での光の速度、vrは媒質rでの光の速度である。 薄膜のr番目の層の特性行列Arを
0302eq2.png
と定義する。ここで
Er 層の境界での電場の接線成分
Hr 層の境界での磁場の接線成分
添字r 層の下側境界を
添字r+1 層の上側境界を表す
とする。

複数の薄膜系に対して
0302eq3.png
となる。ここで
0302eq4.png
である。添字iは入射媒質での値、添字bは基板での値を表す。つまり、式-3は薄膜系の外の電磁場(の接線成分)と基板内での電磁場を結ぶ式になっている。 各層のマトリクスは具体的には
0302eq8.png
となる。 ここでηrは
0302eq10.png
で、またθrは
0302eq11.png
である。ここでθiは入射角である。

0302eq12.png
とすると、式-2は
0302eq13.png
この最後の式のB、Cを使うと振幅反射率ρと振幅透過率τは
0302eq15.png
であり、エネルギー反射率Rと透過率Tは
0302eq17.png
となる。ここで右肩のダガーは複素共役を表す。

計算に必要な材料は実質的にこれですべてである。計算の手順としては
  1. 計算する入射角と偏光を決める
  2. 計算する波長λを決める
  3. その波長での媒質の屈折率Nrを求める
  4. その屈折率と入射角から式-11に従って層内の光線角度θrを求める
  5. その角度と屈折率と偏光から式-10に従ってηrを求める
  6. 式-9に従ってδrを求める
  7. 式-8に従って層のマトリクスArを計算する
  8. 式-3に従って薄膜系全体のマトリクスを計算する
  9. 式-15〜18に従って反射率や透過率やその位相を求める
となる。 レンズの光線追跡なんかに比べたら単純で一直線に計算できて簡単である。

さて、ベクタユニットを使う上で何が問題か、というと式-8のマトリクスは、一般には複素数になるので前回できるんじゃない、とか言ったことは嘘だったということになる。よく見ると対角要素は虚数単位が含まれてるし、屈折率Nrは吸収のある媒質の場合、複素数になる。また吸収が無くても入射角によってはθrがやはり複素数になる場合がある。従ってマトリクスの要素は複素数として扱わなければならない。

vDSP.hにはvDSP_zmma()などの複素数の要素を持つマトリクスの積や和を計算する関数が定義されているが、大きなマトリクスを前提にしているらしく、実数部と虚数部が別の(out-of-place complex)マトリクスだけを扱うようになっていて、もし実数部と虚数部がペアになった(interleaved complex)複素数を使いたいなら、やはりvDSP.hに定義されているvDSP_ctoz()などの変換用の関数を使うようになっているらしい。2×2などの小さなマトリクスにはこのオーバーヘッドは大きい。最初からout-of-place complexのマトリクスにすればいいが、そのあともずっとout-of-place complexを使い続けなければならないのはけっこうつらい。

じゃあ、どうするか?やり方としては
  • out-of-place complexで薄膜光学計算を表現してvDSPを使う
  • 自然な定義をしてベクタユニット用のC関数を呼び出して使う
の二通りがある。最初のはもっと上位の表現も影響を受けてソースがわかりにくくなってしまう可能性がある。後のは逆に上位の表現はわかりやすく書けるが、具体的な計算の実装がぐちゃぐちゃになってしまうかもしれない。

まあ、別に仕事でやってる訳ではないので両方やってみるか。 続きは次回。
nice!(0)  コメント(6)  トラックバック(0) 

nice! 0

コメント 6

岡 大輔

 エリプソメトリーのソフトの解析を始めたものですけど、分かりやすいですね。
 「光学薄膜」は、僕は滋賀県立図書館から借りました。
これからもよろしくお願いします。
 
by 岡 大輔 (2009-03-21 22:23) 

decafish

コメントありがとうございます。記事の中身は第3者にチェックしてもらったわけではなく書きっぱなしなのでぜひとも突っ込みをお願いします。
ずっと昔、単色のエリプソのデータからクラマースクローニヒを数値積分して分散を計算しようとしたことがあったのですが、ネブラスカ大に大御所がいらっしゃって自らソフトを書いておられて、それが「てってーてき」なもので、足下にも及ばず挫けた記憶があります。しかも件の大御所が経営する会社の(一声1千万の)ハードを買わないとソフトをライセンスしてくれませんでした。
どーでもいい話になってしまいました、すみません。今後ともよろしくお願いします。
by decafish (2009-03-22 02:59) 

岡 大輔

 大変役に立つブログを公開していただいて、ありがとうございます。
 ところで、「光学薄膜」を参照しながら式を読んでいたのですが、
 (13)のAは、アドミタンスで、サンプル全体の吸収ですよね。
 それで、(14)のBとCは、具体的には何を表すのでしょうか?

 忙しいところをすみません。どうかご教授願います。

by 岡 大輔 (2009-03-25 09:49) 

岡宏一

 R.M.A.Azzamのエリプソメトリーポーラライゼドライトの本を引用してエリプソと透過反射スペクトルの膜厚解析ソフトを作成しています。Johnsマトリックスを用いて多層膜モデルを解析しています。
 本ブログでは特性マトリックスで理論式を書いています。各層表面の電場磁場のマトリックスを用いて解析しています、H.A.Macleodの薄膜フィルタが参考されているようです。
 質問として、特性マトリックスとJohnsマトリックスとで違っていると思いますがどの様に違うかお教え願えたらありがたいです。
by 岡宏一 (2009-03-25 10:52) 

decafish

まず、式-13のAと式-14のB、Cですが、これは2×2のマトリクスのAをただベクトルにかけてしまっただけの単なる算数です。B=a+bη、C=c+dηで、Eはスカラとしてくくり出されているだけです。わかりにくくてすみません。

また、R.M.A.Azzamの本は不勉強で知らないのでどのような扱いになっているのかわかりません。
特性マトリクスとJonesマトリクスはよく似ています(2×2のマトリクス)が、物理的な意味は違います。特性マトリクスは間の薄膜をブラックボックスと見て入力と出力(薄膜の上と下)の電場と磁場を結びつけるマトリクスですが、Jonesマトリクスはふたつの独立な偏光に対する入出力の関係を表しています。
従って、特性マトリクスは2種類の偏光それぞれに対して別の式、別の値をとることになって独立に計算する必要がありますが、Jonesマトリクスは偏光の変化を表現するのが目的なので両方の偏光が同時に考慮されています。
逆に、特性マトリクスは電場と磁場の組み合わせの変化を考えているので、例えば入射角が変わる(電場と磁場では境界条件が違っているので)ことが表現できますが、Jonesマトリクスでは電場の関係しか考慮していないのでそもそも入射角の変化を考慮することは不可能です。
特性マトリクスとJonesマトリクスの両方を両立させた新しい4×4のマトリクスを定義することは可能です。このマトリクスを使えば偏光も入射角も同時に扱えます。
ただしそのマトリクスは物理的な要請から16個の要素のうち6個しか独立ではないなはずです(ちゃんと計算していませんが)。冗長で制約の多いマトリクスになるので扱いは面倒でしょう。Azzamがどのように扱っているのかお教えいただくとなにかわかるかもしれません。

これで答えになりましたでしょうか?解決しなければ、どこがどのようにと言っていただければ別記事で整理します。よろしくお願いします。
by decafish (2009-03-26 00:36) 

岡 大輔

 丁寧な説明をありがとうございました。
 これからもいろいろご教授いただくことも多いかと思いますが、よろしくお願いします。
by 岡 大輔 (2009-04-05 21:19) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立03/01献立03/02 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。