SingleModeFiberArray¶
-
class
hcipy.optics.
SingleModeFiberArray
(input_grid, fiber_grid, mode, *args, **kwargs)¶ Bases:
hcipy.optics.optical_element.OpticalElement
Methods Summary
backward
(self, wavefront)Propagate a wavefront backward through the optical element.
forward
(self, wavefront)Propagate a wavefront forward through the optical element.
get_transformation_matrix_backward
(self[, …])Calculate the linear transformation matrix that corresponds to a backward propagation.
get_transformation_matrix_forward
(self[, …])Calculate the linear transformation matrix that corresponds to a forward propagation.
Methods Documentation
-
backward
(self, wavefront)¶ Propagate a wavefront backward through the optical element.
A backward propagation is a literal backward propagation through the element. It is not (in general) the inverse of the forward propagation, except in cases where energy is conserved.
This function will be implemented by the derived class.
- Parameters
- wavefrontWavefront
The wavefront to propagate.
- Returns
- Wavefront
The propagated wavefront.
-
forward
(self, wavefront)¶ Propagate a wavefront forward through the optical element.
This will be implemented by the derived class.
- Parameters
- wavefrontWavefront
The wavefront to propagate.
- Returns
- Wavefront
The propagated wavefront.
-
get_transformation_matrix_backward
(self, wavelength=1)¶ Calculate the linear transformation matrix that corresponds to a backward propagation.
The matrix is defined such that E_in = M.dot(E_out), where E_out and E_in are the electric fields of the output and input plane respectively, and M is the transformation matrix returned by this function.
A backward propagation is a literal backward propagation through the element. It is not (in general) the inverse of the forward propagation, except in cases where energy is conserved.
- :: warning::
Depending on the chosen resolution, this matrix can be extremely large and use extremely large amounts of memory. For example, a Fresnel propagation on a 128x128 grid will already create a matrix of 2.1GB. Use with caution.
This function will be implemented by the derived class.
- Parameters
- wavelengthscalar
The wavelength for which the transformation matrix will be calculated.
- Returns
- ndarray
The full propagation matrix.
-
get_transformation_matrix_forward
(self, wavelength=1)¶ Calculate the linear transformation matrix that corresponds to a forward propagation.
The matrix is defined such that E_out = M.dot(E_in), where E_out and E_in are the electric fields of the output and input respectively, and M is the transformation matrix returned by this function.
- :: warning::
Depending on the chosen resolution, this matrix can be extremely large and use extremely large amounts of memory. For example, a Fresnel propagation on a 128x128 grid will already create a matrix of 2.1GB. Use with caution.
This function will be implemented by the derived class.
- Parameters
- wavelengthscalar
The wavelength for which the transformation matrix will be calculated.
- Returns
- ndarray
The full propagation matrix.
-