vortex_coronograph#
- class arte.optical_propagation.vortex_coronograph.VortexCoronograph(referenceLambdaInM: float, charge: int, outPupilStopInFractionOfPupil: float = 1.0, inPupilStopInFractionOfPupil: float = 0.0, addInVortex: bool = False, inVortexRadInLambdaOverD: float = None, inVortexCharge: int = None, inVortexShift: float = None)#
Bases:
CoronographClass to simulate the vortex coronograph. The vortex coronograph applies an azimuthal phase ramp in the focal plane. An optional inner vortex phase ramp can be added to mitigate chromaticity effects close to the optical axis, resulting in a double vortex coronograph.
The reference for the double vortex coronograph is:
Desai, Niyati & Mawet, Dimitri & Bertrou-Cantou, Arielle & Kraus, Matthias & Deparnay, Arnaud & Serabyn, E. & Ruane, Garreth & Redmond, Susan. (2024). “Prototype development of broadband scalar vortex coronagraphs with phase dimples for exoplanet imaging”. 73. 10.1117/12.3020702.
- Parameters:
referenceLambdaInM (float) – The wavelength at which the coronograph is defined [m]. This is used to determine the focal plane mask size.
charge (int) – The number of cycles [0,2*pi) of the vortex phase ramp.
outPupilStopInFractionOfPupil (float (optional)) – Outer radius of the pupil plane stop, in ratio of pupil size (1 = full pupil, 0.3 = 30% pupil). By default 1, meaning that the pupil is not masked.
inPupilStopInFractionOfPupil (float (optional)) – Inner radius of the pupil plane stop, in ratio of pupil size (1 = full pupil, 0.3 = 30% pupil). By default 0, meaning that the pupil is not masked.
addInVortex (bool (optional)) – Whether to add an inner vortex phase ramp to mitigate chromaticity effects close to the optical axis. Default is False.
inVortexRadInLambdaOverD (float (optional)) – Inner radius of the inner vortex phase ramp, in lambda/D units. Default is 0.62 lambda/D.
inVortexCharge (int (optional)) – Charge of the inner vortex phase ramp. Default is equal to the outer vortex charge.
inVortexShift (float (optional)) – Phase shift applied to the inner vortex phase ramp, in radians. Default is pi radians.
Example
- vortex = VortexcCoronograph(referenceLambdaInM=800e-9,
charge=6, outPupilStopInFractionOfPupil=0.95)
psf = vortex.get_coronographic_psf(input_field, oversampling=4, lambdaInM=1000e-9)
- double_vortex = VortexcCoronograph(referenceLambdaInM=800e-9,
charge=4, outPupilStopInFractionOfPupil=0.95, addInVortex=True)
dv_psf = double_vortex.get_coronographic_psf(input_field, oversampling=4, lambdaInM=1000e-9)
Methods
get_coronographic_psf(input_field, oversampling)Function to obtain the post-coronographic PSF.
show_coronograph_prop([maxLogPsf])Simple function to show the EF propagation through the coronograph
showZoomedPSF