solves.thickness

Thickness Solve Module

This module defines ThicknessSolve, an abstract base class for solves that adjust surface positions to satisfy a condition.

Kramer Harrison, 2026

Classes

ChiefRayHeightThicknessSolve(optic, ...)

Solves for a target chief ray height on a specific surface.

MarginalRayHeightThicknessSolve(optic, ...)

Solves for a target marginal ray height on a specific surface.

ThicknessSolve(optic, surface_idx, height)

Abstract base class for thickness solves.

class ChiefRayHeightThicknessSolve(optic, surface_idx: int, height: float)[source]

Solves for a target chief ray height on a specific surface.

apply()

Applies the thickness solve to the optic.

This method calculates the necessary shift in z-position for the target surface and all subsequent surfaces to achieve the desired ray height.

classmethod from_dict(optic, data)

Creates a solve instance from a dictionary representation.

to_dict()

Returns a dictionary representation of the solve.

class MarginalRayHeightThicknessSolve(optic, surface_idx: int, height: float)[source]

Solves for a target marginal ray height on a specific surface.

apply()

Applies the thickness solve to the optic.

This method calculates the necessary shift in z-position for the target surface and all subsequent surfaces to achieve the desired ray height.

classmethod from_dict(optic, data)

Creates a solve instance from a dictionary representation.

to_dict()

Returns a dictionary representation of the solve.

class ThicknessSolve(optic, surface_idx: int, height: float)[source]

Abstract base class for thickness solves.

This class provides the common structure for solves that aim to achieve a specific ray height at a given surface by adjusting the z-position of that surface and subsequent surfaces.

optic

The optic object.

Type:

Optic

surface_idx

The index of the surface where the ray height is to be controlled.

Type:

int

height

The target height of the ray on the specified surface.

Type:

float

apply()[source]

Applies the thickness solve to the optic.

This method calculates the necessary shift in z-position for the target surface and all subsequent surfaces to achieve the desired ray height.

classmethod from_dict(optic, data)[source]

Creates a solve instance from a dictionary representation.

to_dict()[source]

Returns a dictionary representation of the solve.