fullseye

multilayer_reflectance — OPTICS film op

使い方

多層膜の分光反射率(または透過率・吸収率)を pairs(λ [nm], 値)で返す。特性行列(転送行列)の厳密解。

layers: 入射側から順の [(材料, 厚さ nm), ...]。材料は材料表の鍵("SIO2" / "SI3N4" / "PMMA" / "TIO2" …)・材料レコード・実数・複素数 n + ik。空にすると基板だけ(裸の面の Fresnel)。 substrate: 基板(半無限)。既定は材料表の Si(Green 2008、k つき)。 wl_min_nm / wl_max_nm / n_points: 波長の等間隔格子。wavelengths_nm を渡せばそちらを使う(昇順)。 angle_deg: 入射角(入射側の媒質の中)。 polarization: “unpolarized”(s と p の平均)/ “s” / “p”。 na: 集光の開口数(> 0 なら法線まわりの円錐で角度平均。瞳を一様に満たす照明 = 重みは sin²θ に一様)。 angle_deg と同時には指定できない。 roughness_nm: 共形な粗さの RMS σ。R に exp(−(4π n₀ σ cos θ₀ / λ)²)(Debye–Waller)が掛かる。 ambient: 入射側の媒質(実数か材料表の鍵、透明であること)。液浸なら "WATER"。 quantity: “reflectance” / “transmittance”(基板の中へ入る割合)/ “absorptance”(層での吸収 = 1 − R − T)。 粗さ > 0 では T と A を出さない(散乱光の行き先をこのモデルは持たない → ValueError)。

返り値: (K, 2) の pairs。

真値: 1 層なら matappear.thin_film_reflectance(Airy の式、別実装)と一致する。膜厚 0 は裸の基板の Fresnel、 λ/4 の AR 膜(n = √n_sub)は設計波長で R = 0、(HL)^N の鏡は閉形式 ((1 − q)/(1 + q))²、q = (n_s/n₀)(n_H/n_L)^{2N}(H が入射側)。 吸収の無い積層では R + T = 1。

p = multilayer_reflectance([(“SIO2”, 500.0)], “SI”, 400.0, 800.0, 5) p.shape (5, 2)

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(pairs を入力に取れる)

mtf50 · energy_to_photons · spectral_product · spectral_integral · spectral_stats · kubelka_munk_reflectance · hyperspectral_capture · film_thickness_fft

同カテゴリ(film)

film_color · film_thickness_fft · film_thickness_fit · film_thickness_map


Provenance: filmoptics.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.