Mirror Classes#

BaseMirror#

class BaseMirror(origin, reflectivity: float = 1.0, transmission: float = 0.0, **kwargs)[source]#

Bases: OpticalComponent

Base reflective surface

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

  • reflectivity – Fraction of incoming intensity sent to reflected ray.

  • transmission – Fraction of incoming intensity sent to transmitted ray.

interact_local(ray)[source]#

Compute reflected/transmitted rays in local coordinates.

The input ray must already be in this component local frame. A reflected branch is generated when reflectivity > 0 and a straight-through branch when transmission > 0.

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

Render mirror outline.

get_bbox_local()[source]#

Return local bounding box from the active surface.

Mirror#

class Mirror(origin, radius: float = 0.5, reflectivity: float = 1.0, transmission: float = 0.0, **kwargs)[source]#

Bases: BaseMirror

Circular mirror.

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

Initialize a circular mirror.

SquareMirror#

class SquareMirror(origin, width: float = 1.0, height: float = 1.0, reflectivity: float = 1.0, transmission: float = 0.0, **kwargs)[source]#

Bases: BaseMirror

Rectangular mirror.

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

Initialize a rectangular mirror.

CylMirror#

class CylMirror(origin, radius: float = 0.5, height: float = 1.0, theta_range=(-3.141592653589793, 3.141592653589793), **kwargs)[source]#

Bases: BaseMirror

Cylindrical mirror segment.

__init__(origin, radius: float = 0.5, height: float = 1.0, theta_range=(-3.141592653589793, 3.141592653589793), **kwargs)[source]#

Initialize a cylindrical mirror.

BeamSplitter#

class BeamSplitter(origin, width=1.0, height=1.0, eta: float = 0.5, **kwargs)[source]#

Bases: SquareMirror

Rectangular beamsplitter modeled as a partially reflective mirror.

__init__(origin, width=1.0, height=1.0, eta: float = 0.5, **kwargs)[source]#

Initialize beamsplitter from splitting ratio eta.

Parameters:
  • origin – Component origin in lab coordinates.

  • width – Aperture width.

  • height – Aperture height.

  • eta – Power ratio sent to reflected branch.

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

Render the beamsplitter boundary and optional filled face in 2D.