fullseye

jones_element — OPTICS polarization op

使い方

A 2x2 complex Jones matrix for one polarisation element.

kind is one of :data:JONES_KINDS:

"polarizer" ideal linear polariser, transmission axis at angle_deg from x · "retarder" linear retarder, fast axis at angle_deg, retardance retardance_deg · "quarter_wave" / "half_wave" retarders with the retardance fixed at 90 / 180 degrees (retardance_deg is then ignored — stated here so a caller who passes one is not left wondering) · "rotator" optical rotator turning the polarisation by angle_deg.

The retarder is written symmetrically, diag(exp(-i*d/2), exp(+i*d/2)) before rotation, so it introduces no common phase — the fast axis leads. Elements are built as R(+a) @ J0 @ R(-a).

Returns a (2, 2) complex128 matrix acting on a Jones vector [Ex, Ey]; compose a train with J_total = J_last @ ... @ J_first and apply it with :func:jones_apply.

Ground truth it reproduces exactly (machine precision): two crossed ideal polarisers multiply to the zero matrix; a polariser is idempotent (P @ P == P); a half-wave plate is an involution up to a global phase (H @ H == -I in this symmetric convention); a quarter-wave plate at 45 degrees turns horizontal linear light into circular (|S3| == 1); the Malus law cos^2(theta) falls out of two polarisers at relative angle theta.

Raises ValueError: an unknown kind (the message lists the valid ones); non-finite angle_deg or retardance_deg.

Ideal, lossless, normal-incidence elements. A real polariser has a finite extinction ratio and a real waveplate is chromatic; neither is modelled, and neither is silently approximated. Jones algebra can only carry fully polarised light — for partial polarisation use :func:mueller_element.

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

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

詳しい使い方ガイド

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

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

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

angular_spectrum_propagate · jones_apply

同カテゴリ(polarization)

jones_apply · stokes_from_jones · mueller_element · mueller_apply · stokes_analyze


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

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