interactions.thin_lens_interaction_model

Interaction model for a thin lens

This module implements the ThinLensInteractionModel class, which handles ray interactions with a thin lens surface.

Kramer Harrison, 2025

Classes

ThinLensInteractionModel(parent_surface, ...)

Interaction model for a thin lens.

class ThinLensInteractionModel(parent_surface: Surface | None, focal_length: float, is_reflective: bool, coating: BaseCoating | None = None, bsdf: BaseBSDF | None = None)[source]

Interaction model for a thin lens.

flip()[source]

Flip the interaction model.

classmethod from_dict(data, parent_surface)

Creates an interaction model from a dictionary representation.

property geometry
interact_paraxial_rays(rays)[source]

Traces paraxial rays through the surface.

Parameters:

ParaxialRays – The paraxial rays to be traced.

interact_real_rays(rays)[source]

Interacts the rays with the surface by either reflecting or refracting

Note that phase is added assuming a thin lens as a phase transformation. A cosine correction is applied for rays propagating off-axis. This correction is equivalent to the ray z direction cosine.

Parameters:

rays – The rays.

Returns:

The refracted rays.

Return type:

RealRays

interaction_type = 'thin_lens'
property material_post
property material_pre
to_dict()[source]

Returns a dictionary representation of the thin lens model.