fullseye

tolerance_analysis — OPTICS design op

使い方

Monte-Carlo manufacturing tolerances + per-parameter sensitivities (table).

tolerances: {"radius_pct": 0.5, "thickness_mm": 0.05, "index": 0.001, "decenter_mm": 0.02, "tilt_deg": 0.05} — each perturbation is drawn uniformly in ±tol for every surface independently, trials times. Returns the distribution of efl and rms_spot (mean, std, p5, p95, worst), the nominal values, and sensitivity: the change of EFL and RMS spot per one full tolerance of each parameter on each surface (central finite difference), so you can see which surface’s radius or tilt drives the yield. Deterministic for a given seed. Spots are sampled to 99 % of the pupil radius so that edge vignetting by a tilt cannot masquerade as an improvement (n_vignetted would otherwise jump on the nominal design).

compensator says whether each perturbed lens is refocused: "back_focus" moves the image plane to the perturbed lens’s paraxial image (an assembler adjusting the back focus), "none" keeps the nominal image plane, "auto" (default, the behaviour before 2026-10-15) refocuses exactly when the last surface’s t is None (the image then follows each perturbed lens) and keeps the plane when t / image_mm is a number. ★The two answers differ by orders of magnitude (the default singlet: the std of the RMS spot changes about 300×), so the result reports the compensator actually used under compensator.

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

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

詳しい使い方ガイド

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

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

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

abcd_matrix · wavefront_stats · sfr_from_edge · paraxial_trace · seidel_coefficients · spot_stats · wavefront_from_opd · spot_diagram

同カテゴリ(design)

lens_system · thick_lens · glass · example_system · glass_catalog · sellmeier · paraxial_trace · seidel_coefficients


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

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