PerfectCoronagraph

class hcipy.coronagraphy.PerfectCoronagraph(aperture, order=2, coeffs=None)

Bases: hcipy.optics.optical_element.OpticalElement

A perfect coronagraph for a certain aperture and order.

These type of coronagraphs suppress all light for a flat wavefront. The incoming complex amplitude \(A\) is modified as follows (following [Cavarroc2006]):

\[\overline{A} = A - \Pi \sqrt{S}\]

where \(\overline{A}\) is the resulting complex ampliutude, \(\Pi\) is the telescope pupil, and \(S\) is the Strehl ratio of the incoming wavefront.

Higher orders are added by fitting higher-order electric field modes to the incoming wavefront and subtracting those, following [Guyon2006].

Cavarroc2006

Celine Cavarroc et al. “Fundamental limitations on Earth-like planet detection with extremely large telescopes.” Astronomy & Astrophysics 447.1 (2006): 397-403

Guyon2006(1,2)

Olivier Guyon et al. “Theoretical limits on extrasolar terrestrial planet detection with coronagraphs.” The Astrophysical Journal Supplement Series 167.1 (2006): 81

Parameters
apertureField

The reference aperture. The perfect coronagraph is designed for this aperture.

orderinteger

The order of the perfect coronagraph. This must be even.

coeffslist or ndarray or None

The coefficients that are used for subtraction. This allows for partial suppression of certain modes, which can be used to design perfect coronagraphs that are insensitive to stellar radius [Guyon2006]. If it is None, all modes are completely suppressed.

Methods Summary

backward(wavefront)

Propagate the wavefront backwards through the perfect coronagraph.

forward(wavefront)

Propagate the wavefront through the perfect coronagraph.

get_transformation_matrix_backward([wavelength])

Get the backwards propagation transformation matrix.

get_transformation_matrix_forward([wavelength])

Get the forward propagation transformation matrix.

Methods Documentation

backward(wavefront)

Propagate the wavefront backwards through the perfect coronagraph.

This method behaves the same as the forward propagation.

Parameters
wavefrontWavefront

The incoming wavefront (in the pupil plane)

Returns
Wavefront

The post-coronagraphic wavefront (in the pupil plane).

forward(wavefront)

Propagate the wavefront through the perfect coronagraph.

Parameters
wavefrontWavefront

The incoming wavefront (in the pupil plane)

Returns
Wavefront

The post-coronagraphic wavefront (in the pupil plane).

get_transformation_matrix_backward(wavelength=1)

Get the backwards propagation transformation matrix.

This method behaves the same as the forward propagation.

Parameters
wavelengthscalar

The wavelength at which to calculate the transformation matrix.

Returns
ndarray

The backward transformation_matrix.

get_transformation_matrix_forward(wavelength=1)

Get the forward propagation transformation matrix.

Parameters
wavelengthscalar

The wavelength at which to calculate the transformation matrix.

Returns
ndarray

The forward transformation_matrix.