scotty.lensalot module
scotty.lensalot module#
Transfer matrix (2x2):
Consider a ray entering and leaving an optical system. It is distance \(r\) above the system axis, entering at an angle \(\theta\). It leaves at a distance \(r'\), and an angle \(\theta'\)
- class scotty.lensalot.ABCD_Lens(name, A, B, C, D)#
Bases:
scotty.lensalot.Lens
Generalised lens
- output_beam(Psi_w_in, freq_GHz)#
Return the refracted beam
Assumes Psi_w is diagonalised
Doesn’t assume that the diagnoalised Re(Psi_w)’s components are equal to each other, that is, the curvatures are allowed to be ‘elliptical’
- Parameters
Psi_w_in – Incident beam as a 2x2 matrix
- class scotty.lensalot.Lens(name, focal_length)#
Bases:
object
Abstract base class for different lens approximations
- output_beam(Psi_w_in, freq_GHz)#
Return the refracted beam
Assumes Psi_w is diagonalised
Doesn’t assume that the diagnoalised Re(Psi_w)’s components are equal to each other, that is, the curvatures are allowed to be ‘elliptical’
- Parameters
Psi_w_in – Incident beam as a 2x2 matrix
- class scotty.lensalot.Thick_Lens(name, focal_length, thickness, ref_index)#
Bases:
scotty.lensalot.Lens
Lens with finite thickness and refractive index
- output_beam(Psi_w_in, freq_GHz)#
Return the refracted beam
Assumes Psi_w is diagonalised
Doesn’t assume that the diagnoalised Re(Psi_w)’s components are equal to each other, that is, the curvatures are allowed to be ‘elliptical’
- Parameters
Psi_w_in – Incident beam as a 2x2 matrix
- class scotty.lensalot.Thin_Lens(name, focal_length)#
Bases:
scotty.lensalot.Lens
Thin lens approximation
- output_beam(Psi_w_in, freq_GHz)#
Return the refracted beam
Assumes Psi_w is diagonalised
Doesn’t assume that the diagnoalised Re(Psi_w)’s components are equal to each other, that is, the curvatures are allowed to be ‘elliptical’
- Parameters
Psi_w_in – Incident beam as a 2x2 matrix
- scotty.lensalot.make_my_lens(name, lens_type='thin', focal_length=None)#
Create one of a pre-existing set of parameterised lenses.
- Parameters
- Return type