Refractive Surface Classes#

BaseRefraciveSurface#

class BaseRefraciveSurface(origin, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Bases: OpticalComponent

Base interface between two refractive media.

__init__(origin, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#
Parameters:
  • origin – Component origin in lab coordinates.

  • n1 – Refractive index for local x > 0 side.

  • n2 – Refractive index for local x < 0 side.

  • reflectivity – Additional reflected branch coefficient.

  • transmission – Transmitted branch coefficient.

  • **kwargs – Optional surface override and rendering options.

interact_local(ray)[source]#

Apply Snell refraction and optional reflection in local frame.

The method determines incident side from the local surface normal, computes transmitted direction using Snell’s law, handles total internal reflection, and updates Gaussian beam q with ABCD matrices when available.

render(ax, type: str, **kwargs)[source]#

Render refractive surface outline.

get_bbox_local()[source]#

Return local bounding box from the active surface.

SquareRefractive#

class SquareRefractive(origin, width: float = 1.0, height: float = 1.0, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Bases: BaseRefraciveSurface

Rectangular refractive interface.

__init__(origin, width: float = 1.0, height: float = 1.0, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Initialize a rectangular refractive surface.

CircleRefractive#

class CircleRefractive(origin, radius: float = 0.5, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Bases: BaseRefraciveSurface

Circular refractive interface.

__init__(origin, radius: float = 0.5, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Initialize a circular refractive surface.

SphereRefractive#

class SphereRefractive(origin, radius: float = 0.5, height: float = 0.5, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Bases: BaseRefraciveSurface

Spherical-cap refractive interface.

__init__(origin, radius: float = 0.5, height: float = 0.5, n1: float | Material = 1.0, n2: float | Material = 1.0, reflectivity: float = 0.0, transmission: float = 1.0, **kwargs)[source]#

Initialize a spherical refractive surface.