sequences.sequenced_surface_group#
SequencedSurfaceGroup: the SurfaceGroup interface over a sequence of views.
Presents a list of SurfaceView
objects — resolved from a base surface list and a raw step list — through
the read/trace subset of the SurfaceGroup
interface that analyses and the tracing pipeline rely on. A sequence is
static once resolved: unlike SurfaceGroup, there is no add/remove;
to change a sequence’s traversal, resolve a new one.
Kramer Harrison, 2026
Classes
|
A traversal-ordered group of |
- class SequencedSurfaceGroup(base_surfaces: list[Surface], raw_steps: list[RawStep])[source]#
A traversal-ordered group of
SurfaceViewover shared base surfaces.- Parameters:
base_surfaces – The optic’s base surfaces, indexed as in
raw_steps.raw_steps – The raw sequence definition. See
optiland.sequences.steps.parse_steps().
- Raises:
ValueError – If
raw_stepsis empty, malformed, or references an out-of-range surface index.SequenceValidationError – If adjacent steps are not physically consistent.
- property L#
x direction cosines at each step.
- Type:
np.array
- property M#
y direction cosines at each step.
- Type:
np.array
- property N#
z direction cosines at each step.
- Type:
np.array
- get_thickness(step_number: int)[source]#
Calculate the (signed) axial distance between two consecutive steps.
- property intensity#
ray intensities at each step.
- Type:
np.array
- n(wavelength)[source]#
Get the exit-medium refractive index at each step.
- property opd#
optical path difference recorded at each step.
- Type:
np.array
- property positions#
z positions of each step’s surface vertex, in traversal order.
- Type:
np.array
- property radii#
radii of curvature at each step.
- Type:
np.array
- property surfaces: tuple[SurfaceView, ...]#
- trace(rays, skip: int = 0)[source]#
Trace the given rays through the sequence.
- Parameters:
rays (BaseRays) – The rays to be traced.
skip (int, optional) – Number of steps to skip before tracing. Defaults to 0.
- Returns:
The traced rays.
- Return type:
BaseRays
- property u#
paraxial ray angles at each step.
- Type:
np.array
- property x#
x intersection points at each step.
- Type:
np.array
- property y#
y intersection points at each step.
- Type:
np.array
- property z#
z intersection points at each step.
- Type:
np.array