finesse.components.beamsplitter module
Optical components representing physical beamsplitters.
- class finesse.components.beamsplitter.Beamsplitter(*args, **kwargs)[source]
Bases:
SurfaceThe 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
alphaparameter.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.infto 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_map
finesse.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
- 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
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
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
- tre
TotalReflectionError If total reflection occurs for the specified coupling - i.e. if \(\sin{\alpha_2} > 1.0\).
- tre
- 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.
- 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 xbeta
Yaw misalignment
- property ybeta
Pitch misalignment