finesse.components.beamsplitter module

Optical components representing physical beamsplitters.

class finesse.components.beamsplitter.Beamsplitter(*args, **kwargs)[source]

Bases: Surface

The beamsplitter component represents a thin dielectric surface with associated properties such as reflectivity, tuning, and radius of curvature. It has four optical ports p1, p2, p3, and p4 which describe the four beams incident on either side of this surface. p1 and p2 are on side 1 and p3 and p4 are on side 2. A 100% transmissive beamsplitter will transmit all of the light incident at p1 to p3.

It also has a mechanical port mech which has nodes for longitudinal, yaw, and pitch motions. These mechanical nodes are purely for exciting small signal oscillations of the mirror. Static offsets in longitudinal displacements are set by the phi parameter (in units of degrees), misalignments in yaw by the xbeta parameter, and pitch the ybeta parameter. Macroscopic angle of incidence of the beamsplitter is set by the alpha parameter.

Beamsplitters physically operate the same as mirror components, except for the non-normal angle of incidence option.

See RTL relationship for more information on how the RTL relationship is handled.

Parameters

namestr

Name of newly created beamsplitter.

Rfloat, optional

Reflectivity of the beamsplitter.

Tfloat, optional

Transmissivity of the beamsplitter.

Lfloat, optional

Loss of the beamsplitter.

phifloat, optional

Microscopic tuning of the beamsplitter (in degrees).

alphafloat, optional

Angle of incidence (in degrees)

Rcfloat, optional

Radius of curvature (in metres); defaults to numpy.inf to indicate a planar surface.

xbeta, ybetafloat, optional

Angle of misalignment in the yaw plane (xbeta) and pitch (ybeta), respectively (in radians); defaults to 0.

planestr, optional

Plane of incidence, either ‘xz’ or ‘yz’. Defaults to ‘xz’.

misalignedbool, optional

When True the beamsplitter will be significantly misaligned and assumes any reflected beam is dumped. Transmissions will still occur.

Attributes

Attributes are set via the Python API and not available via KatScript.

surface_mapfinesse.knm.maps.Map

Describes the surface distortion of this beamsplitter component. Coordinate system to the map is right-handed with the positive-z direction as the surface normal on the port 1 side of the beamsplitter.

knm_apply_bayer_helms_firstbool

See How Bayer-Helms and map contributions are combined

ABCD(from_node, to_node, direction='x', symbolic=False, copy=True, retboth=False, allow_reverse=False)[source]

Returns the ABCD matrix of the beam splitter for the specified coupling.

The matrices for transmission and reflection are different for the sagittal and tangential planes (\(M_s\) and \(M_t\)), as shown below.

Transmission

../_images/abcd_bst.svg

For the tangential plane (direction = ‘x’),

\[M_t = \begin{pmatrix} \frac{\cos{\alpha_2}}{\cos{\alpha_1}} & 0 \\ \frac{\Delta n}{R_c} & \frac{\cos{\alpha_1}}{\cos{\alpha_2}} \end{pmatrix}, \]

and for the sagittal plane (direction = ‘y’),

\[M_s = \begin{pmatrix} 1 & 0 \\ \frac{\Delta n}{R_c} & 1 \end{pmatrix}, \]

where \(\alpha_1\) is the angle of incidence of the beam splitter and \(\alpha_2\) is given by Snell’s law (\(n_1\sin{\alpha_1} = n_2\sin{\alpha_2}\)). The quantity \(\Delta n\) is given by,

\[\Delta_n = \frac{n_2 \cos{\alpha_2} - n_1 \cos{\alpha_1}}{ \cos{\alpha_1} \cos{\alpha_2} }. \]

If the direction of propagation is reversed such that the radius of curvature of the beam splitter is in this direction, then the elements \(A\) and \(D\) of the tangential matrix (\(M_t\)) are swapped.

Reflection

../_images/abcd_bsr.svg

The reflection at the front surface of the beam splitter is given by,

\[M_t = \begin{pmatrix} 1 & 0 \\ -\frac{2n_1}{R_c \cos{\alpha_1}} & 1 \end{pmatrix}, \]

for the tangential plane, and,

\[M_s = \begin{pmatrix} 1 & 0 \\ -\frac{2n_1 \cos{\alpha_2}}{R_c} & 1 \end{pmatrix}, \]

for the sagittal plane.

At the back surface \(R_c \rightarrow - R_c\) and \(\alpha_1 \rightarrow - \alpha_2\).

See Connector.ABCD() for descriptions of parameters, return values and possible exceptions.

Raises

treTotalReflectionError

If total reflection occurs for the specified coupling - i.e. if \(\sin{\alpha_2} > 1.0\).

property L

L : float, optional Loss of the beamsplitter.

property R

R : float, optional Reflectivity of the beamsplitter.

property Rcx

Radius of curvature (x)

property Rcy

Radius of curvature (y)

property T

T : float, optional Transmissivity of the beamsplitter.

property abcd12x[source]

Numeric ABCD matrix from port 1 to port 2 in the tangential plane.

Equivalent to beamsplitter.ABCD(1, 2, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd12y[source]

Numeric ABCD matrix from port 1 to port 2 in the sagittal plane.

Equivalent to beamsplitter.ABCD(1, 2, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd13x[source]

Numeric ABCD matrix from port 1 to port 3 in the tangential plane.

Equivalent to beamsplitter.ABCD(1, 3, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd13y[source]

Numeric ABCD matrix from port 1 to port 3 in the sagittal plane.

Equivalent to beamsplitter.ABCD(1, 3, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd21x[source]

Numeric ABCD matrix from port 2 to port 1 in the tangential plane.

Equivalent to beamsplitter.ABCD(2, 1, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd21y[source]

Numeric ABCD matrix from port 2 to port 1 in the sagittal plane.

Equivalent to beamsplitter.ABCD(2, 1, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd24x[source]

Numeric ABCD matrix from port 2 to port 4 in the tangential plane.

Equivalent to beamsplitter.ABCD(2, 4, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd24y[source]

Numeric ABCD matrix from port 2 to port 4 in the sagittal plane.

Equivalent to beamsplitter.ABCD(2, 4, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd31x[source]

Numeric ABCD matrix from port 3 to port 1 in the tangential plane.

Equivalent to beamsplitter.ABCD(3, 1, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd31y[source]

Numeric ABCD matrix from port 3 to port 1 in the sagittal plane.

Equivalent to beamsplitter.ABCD(3, 1, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd34x[source]

Numeric ABCD matrix from port 3 to port 4 in the tangential plane.

Equivalent to beamsplitter.ABCD(3, 4, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd34y[source]

Numeric ABCD matrix from port 3 to port 4 in the sagittal plane.

Equivalent to beamsplitter.ABCD(3, 4, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd42x[source]

Numeric ABCD matrix from port 4 to port 2 in the tangential plane.

Equivalent to beamsplitter.ABCD(4, 2, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd42y[source]

Numeric ABCD matrix from port 4 to port 2 in the sagittal plane.

Equivalent to beamsplitter.ABCD(4, 2, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd43x[source]

Numeric ABCD matrix from port 4 to port 3 in the tangential plane.

Equivalent to beamsplitter.ABCD(4, 3, "x").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property abcd43y[source]

Numeric ABCD matrix from port 4 to port 3 in the sagittal plane.

Equivalent to beamsplitter.ABCD(4, 3, "y").

Getter:

Returns a copy of the (numeric) ABCD matrix for this coupling (read-only).

property alpha

alpha : float, optional Angle of incidence (in degrees)

property alpha2[source]

Angle of incidence on side 2 in degrees, i.e. port 3 and 4 side.

Returns

alpha2Symbol

Symbolic form of alpha on side 2. Use float() to convert to a numerical value if needed.

Raises

Will raise a TotalReflectionError if total internal reflection is occuring at this beamsplitter.

get_adjacent_port(p)[source]

Get the port adjacent (on the same side of the surface) as p.

property misaligned

misaligned : bool, optional When True the beamsplitter will be significantly misaligned and assumes any reflected beam is dumped. Transmissions will still occur.

property phi

phi : float, optional Microscopic tuning of the beamsplitter (in degrees).

property plane

plane : str, optional Plane of incidence, either ‘xz’ or ‘yz’. Defaults to ‘xz’.

property refractive_index_1[source]

Refractive index on size 1 (port 1 and 2)

property refractive_index_2[source]

Refractive index on size 2 (port 3 and 4)

property xbeta

Yaw misalignment

property ybeta

Pitch misalignment