MultiScaleCoronagraph

class hcipy.coronagraphy.MultiScaleCoronagraph(input_grid, complex_mask, lyot_stop=None, q=1024, scaling_factor=4, window_size=32)

Bases: OpticalElement

A phase mask coronagraph.

This OpticalElement simulates the propagation of light through a phase mask in the focal plane. To resolve the singularity of the phase plate, a multi-scale approach is made. Discretisation errors made at a certain level are corrected by the next level with finer sampling.

Parameters:
input_gridGrid

The grid on which the incoming wavefront is defined.

complex_maskfield_generator

The complex focal-plane phase mask.

lyot_stopField or OpticalElement

The Lyot stop for the coronagraph. If it’s a Field, it is converted to an OpticalElement for convenience. If this is None (default), then no Lyot stop is used.

qscalar

The minimum number of pixels per lambda/D. The number of levels in the multi-scale Fourier transforms will be chosen to reach at least this number of samples. The required q for a high-accuracy vortex coronagraph for example depends on the charge of the vortex. For charge 2, this can be as low as 32, but for charge 8 you need ~1024. Lower values give higher performance as a smaller number of levels is needed, but increases the sampling errors near the singularity. Charges not divisible by four require a much lower q. The default (q=1024) is conservative in most cases.

scaling_factorscalar

The fractional increase in spatial frequency sampling per level. Larger scaling factors require a smaller number of levels, but each level requires a slower Fourier transform. Factors of 2 or 4 usually perform the best.

window_sizeinteger

The size of the next level in the number of pixels on the current layer. Lowering this increases performance in exchange for accuracy. Values smaller than 4-8 are not recommended.

Methods Summary

backward(wavefront)

Propagate backwards through the coronagraph.

forward(wavefront)

Propagate a wavefront through the coronagraph.

Methods Documentation

backward(wavefront)

Propagate backwards through the coronagraph.

This is essentially a forward propagation through the same coronagraph, but with the phase pattern inverted.

Parameters:
wavefrontWavefront

The Lyot plane wavefront.

Returns:
Wavefront

The pupil-plane wavefront.

forward(wavefront)

Propagate a wavefront through the coronagraph.

Parameters:
wavefrontWavefront

The wavefront to propagate. This wavefront is expected to be in the pupil plane.

Returns:
Wavefront

The Lyot plane wavefront.