Skip to content

Prisms ​

Refractive prisms are represented by the Prism type, which wraps any closed shape together with a (wavelength dependent) refractive index. The package provides constructors for prisms with a convex polygonal cross-section, i.e. right prisms: a 2D polygon in the local x-y-plane which is extruded symmetrically along the local z-axis (the height). The local origin is the origin of the polygon coordinates, and like all components the prisms can be moved freely, see Moving optical elements.

Alignment

Except for the DovePrism, whose long axis lies along +y after construction, prisms are not aligned with the global optical axis (+y). Use the kinematic functions to orient them, e.g. zrotate3d! to rotate about the extrusion axis.

Arbitrary convex prisms ​

Prism accepts the corner points of the cross-section in [m] in either orientation (they are normalized to counter-clockwise). The polygon must be strictly convex, otherwise an ArgumentError is thrown. The underlying shape is the BeamletOptics.PolygonPrismSDF, whose signed distance function is exact. All faces are flat, so rays enter and leave exactly on the faces.

julia
# N-BK7, Schott Sellmeier coefficients
NBK7 = SellmeierEquation(1.03961212, 0.231792344, 1.01046945, 0.00600069867, 0.0200179144, 103.560653)

# a 30-60-90 prism
prism = Prism([(0.0, 0.0), (30e-3, 0.0), (0.0, 17.32e-3)], 20e-3, NBK7)
BeamletOptics.Prism Method
julia
Prism(vertices, height, n)

Creates a Prism with a convex polygonal cross-section, extruded along the local z-axis. The local origin is the origin of the given coordinates, i.e. the prism is placed where the vertices are, and rotations act around it. Like the RightAnglePrism the prism is not aligned with the y-axis, orient it with the kinematic functions. See PolygonPrismSDF for the geometry. See also EquilateralPrism and DovePrism.

Arguments

  • vertices: corners (x, y) of the cross-section in the local x-y-plane in [m], as a vector of 2D points or tuples. Both vertex orders are accepted. The polygon must be strictly convex.

  • height: extent along the local z-axis in [m], the prism is centered at z = 0

  • n: AbstractRefractiveIndex of the prism

source
BeamletOptics.PolygonPrismSDF Type

Implements the exact SDF of a right prism, i.e. the extrusion of a convex polygon along the local z-axis. The local origin is the origin of the coordinates given to the constructor, it is not shifted.

Fields

  • vertices: corners of the cross-section in the local x-y-plane in [m], in counter-clockwise order

  • normals: outward unit normals of the edges, where edge i runs from vertex i to vertex i + 1

  • height: extent along the local z-axis in [m], the prism spans z ∈ [-height/2, height/2]

source

Common prisms ​

The following constructors create the prisms found in most catalogs. All figures show the prisms from above, i.e. looking along -z onto the local x-y-plane of the cross-section.

Equilateral prism ​

The EquilateralPrism is centered at the centroid of its triangle with the apex along +y and is the classic dispersing prism. A ray traversing it symmetrically at minimum deviation is deflected by    with the apex angle  . With a dispersion model such as a SellmeierEquation, depends on the wavelength and the prism splits white light into its colors. The figure shows rays from 450 nm to 650 nm through an N-SF11 prism at minimum deviation for 550 nm: blue light is refracted the most.

BeamletOptics.EquilateralPrism Method
julia
EquilateralPrism(side, height, n)

Creates an equilateral triangular Prism, e.g. for dispersion. The local origin is the centroid of the triangle. The apex points along the local +y-axis and the base face has the normal -y. A beam travelling along +x or -x through the faces next to the apex at (approximately) minimum deviation is deflected towards the base.

Arguments

  • side: edge length of the triangular cross-section in [m], must be positive

  • height: extent along the local z-axis in [m]

  • n: AbstractRefractiveIndex of the prism

source

Dove prism ​

The DovePrism is a trapezoid with 45° end faces whose long axis is the y-axis. A beam along the axis is refracted at the entrance face, totally internally reflected at the base and leaves parallel to its original direction. The image is mirrored: in the figure, the order of the three parallel rays is reversed after the prism. Rotating the prism about its long axis by an angle rotates the image by twice that angle.

BeamletOptics.DovePrism Method
julia
DovePrism(length, aperture, height, n)

Creates a Prism with an isosceles trapezoid cross-section and 45° end faces, e.g. a Dove prism that inverts an image without deviating a beam along its axis. The long axis is the local y-axis, so that a beam travelling along +y enters the 45° end face. The base face with the normal -x is the one that totally internally reflects. The local origin is the center of the cross-section's bounding box.

Arguments

  • length: length of the long base face in [m], must be larger than 2 * aperture

  • aperture: distance between the base face and the parallel short face in [m], must be positive

  • height: extent along the local z-axis in [m]

  • n: AbstractRefractiveIndex of the prism

source

Right angle prism ​

The RightAnglePrism has its legs along x and y. A ray that enters a leg at normal incidence is totally internally reflected at the hypotenuse and leaves through the other leg, deflected by 90°, as shown in the figure. A ray that enters through the hypotenuse is reflected at both legs and returned antiparallel.

BeamletOptics.RightAnglePrism Method
julia
RightAnglePrism(leg_length, height, n)

Creates a right angle symmetric Prism. The legs are the faces with the normals -x and -y and the hypotenuse passes through the local origin, see RightAnglePrismSDF. The prism is not aligned with the y-axis.

Arguments

  • leg_length: dimension in x- and y-direction in [m]

  • height: extent along the local z-axis in [m]

  • n: AbstractRefractiveIndex of the prism

source