fullseye

wave_grating_orders — MATH wave op

使い方

Where a grating sends each order: d (sin_out - sin_in) = m lambda solved for the angle.

The companion to the existing grating_wavelengths (which solves the same identity for lambda): given the pitch and the wavelength, this returns the outgoing direction of each order, and marks the orders that are evanescent — |sin_out| > 1 means that order does not propagate, which is why a CD shows fewer colours at grazing incidence.

★Why this earns its place: the two ops invert one another, so a round trip must return the wavelength it started from; and the angles can be compared against the peak positions of a simulated far field (the existing fraunhofer_pattern of a real grating aperture), which knows nothing about the grating equation.

Returns a table: order, sin_out, angle_deg (NaN when evanescent), propagates.

Raises ValueError: non-positive pitch or wavelength; |sin_in| > 1; order 0 alone with no others (it is always the specular direction — allowed, but a caller asking only for it probably meant something else); non-finite input.

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

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

詳しい使い方ガイド

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

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

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

dynsys_poincare_section · dwt_inverse · chebyshev_eval_nd

同カテゴリ(wave)

wave_membrane_mode · wave_mode_frequencies · wave_nodal_lines · wave_two_slit · wave_fringe_period


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

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