【フレネル反射:第2回】吸収を考えるとブリュスター角が存在しなくなる話

Python

はじめに

 光を吸収する物質の界面にてフレネル係数とブリュスター角を考えると、分からなくなったので解説する記事の第2回です。
 前回記事で周辺知識と吸収のないときのブリュスター角の求め方について説明しました。今回は、吸収がある場合を考えます。吸収を考えると、P偏光照明にて反射率は0にならず、ブリュスター角が存在しないことが理解できます。

前回記事

複素屈折率とフレネル反射

P偏光に対するフレネル係数は下記で求められるのでした。

$$r_p = \frac{\tilde{n}_2 \cos \theta_1 – \tilde{n}_1 \cos \theta_2}{\tilde{n}_2 \cos \theta_1 + \tilde{n}_1 \cos \theta_2}$$
  • $n_1$: 入射側の屈折率(空気なら $1$)
  • $n_2$: 反射側の物質の屈折率
  • $\theta_1$: 入射角
  • $\theta_2$: 屈折角(スネルの法則から求める)

吸収を考えると屈折率は複素数になりますが、フレネル係数の公式はそのまま成立します。$\theta_2$も複素数となりますが、これは光を進む方向としては考えらません。以下では意味には踏み込まず、そういうものとしてそのまま進めます。

ブリュスター角は$r_p$がゼロになる条件で求められるのでした。分子が0として下式が必要です。

$$\tilde{n}_2 \cos\theta_1 = \tilde{n}_1 \cos\tilde{\theta}_2$$

更に$\tilde{\theta}_2$ もスネルの法則を満たさなければならないので、この2つの条件式を同時に満たす実数の $\theta_1$ を探すことになります。
(入射角は実験条件のパラメータなので実数)
 この式の実物と虚部が両方ともに0となるように実数の入射角$\theta_1$を決めることが必要になります。式2個に対して自由度が1個なので、一般に解は存在せず$r_p$はゼロになりません。

吸収がある時のフレネル係数と擬ブリュスター角

実際にPythonでフレネル係数を計算してみます。
屈折率は1.5として、徐々に消衰係数($\kappa$)を0,0.3,0.6,1と大きくしていってみます。

import numpy as np
import matplotlib.pyplot as plt

def snell_theta2(n1, n2, theta1):
    return np.arcsin(n1 * np.sin(theta1) / n2)

def r_p(n1, n2, theta1):
    theta2 = snell_theta2(n1, n2, theta1)
    return (n2 * np.cos(theta1) - n1 * np.cos(theta2))/(n2 * np.cos(theta1) + n1 * np.cos(theta2))

theta1 = np.linspace(0.01, np.pi/2 - 0.01, 500)
n1 = 1.0
n2_base = 1.5  # 屈折率の実部は固定

for kappa in [0.0, 0.3, 0.6, 1]:
    n2 = n2_base + 1j * kappa
    Rp = np.abs(r_p(n1, n2, theta1))**2
    min_angle = np.degrees(theta1[np.argmin(Rp)])
    print(f"κ={kappa}: 最小反射率={Rp.min():.4f}  角度={min_angle:.1f}deg")
    plt.plot(np.degrees(theta1), Rp, label=f"κ={kappa}")

plt.xlabel("Incident Angle [deg]")
plt.ylabel("$R_p$")
plt.ylim(0,0.2)
plt.legend()
plt.grid(alpha=0.3)
plt.show()
$\kappa$の値が大きくなるほど、反射率の最小値が上昇していく様子がわかる
κ=0.0: 最小反射率=0.0000  角度=56.3deg
κ=0.3: 最小反射率=0.0036 角度=56.5deg
κ=0.6: 最小反射率=0.0183 角度=57.0deg
κ=1: 最小反射率=0.0592 角度=59.2deg

$\kappa=0$の時は入射角56度でゼロになっていて(前回記事参照)確かにブリュスター角ですが、$\kappa$がゼロより大きくなると、反射率はゼロまで落ちておらずブリュスター角が存在しないことが確認できます。

 また吸収が強いほど反射率が高くなっていて、ここは少し直感に反する所です。
なぜでしょうか?私は感覚的には下記で理解しています。
物質に光が入射すると、光の電場によって物質中の電子が強制的に振動させられます。
吸収のない誘電体では、この振動した電子が再放射する波が綺麗に重なり合い、特定の角度(ブリュスター角)で反射を打ち消し合いますが、吸収がある物質では電子の振動に『位相の遅れ』や『エネルギーの散逸(熱への変換)』が生じます。
このため、再放射される波の位相や振幅が理想的な条件からズレてしまい、結果として『反射を完全に打ち消し合う(反射率0にする)』という状態が作れなくなるのです。

 反射率はゼロにはなりませんが最小値を取り、これを擬ブリュスター角とよびます。
擬ブリュスター角を解析的に求める方法は調べた限り見つからず、pythonで計算したように数値計算で、反射率最小となる角度を拾うのが良さそうです。

次回

角度が複素数となる場合は、光の進む方向を意味しないと書きました。
実際には吸収がある物質での光の進む方向を知りたいケースは多いと思いますので、その辺りを整理できたらいいなと思います。

まとめ

 本記事では吸収があるときのブリュスター角について説明をしました。
・吸収があるとP偏光でも反射率が0にならない
・P偏光で反射率最小となる角度を擬ブリュスター角とよぶ
・擬ブリュスター角を求める際は総当たりで反射率をもとめるのがよい

物質の吸収を考えるというのは、自然と思いますが、広く知られているフレネル係数、ブリュスター角の性質が変わっている点は、とても面白く、またなぜ教科書での扱いが軽いのだろうと思います。

参考文献

大学から大学院入試の頃に読んでいた教科書。マクスウェル方程式から始まります。
フレネル反射を求めるには界面での電場の連続条件を用います。本記事では省略しましたが、ここだと詳細に説明されています。

理論電磁気学は数式中心ですが、直感的理解を大事にしたい若しくは気楽に反射・屈折、フレネル係数、複素屈折率まで体系的に学びたい方にはヘクトの光学がおすすめです。

コメント

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