generate_app_keller

hcipy.coronagraphy.generate_app_keller(wavefront, propagator, contrast, num_iterations, beta=0)

Accelerated Gerchberg-Saxton-like algorithm for APP design by Christoph Keller [Keller2016] and based on Douglas-Rachford operator splitting. The acceleration was inspired by the paper by Jim Fienup [Fienup1976]. The acceleration can provide speed-ups of up to two orders of magnitude and produce better APPs.

[Keller2016]

Keller C.U., 2016, “Novel instrument concepts for characterizing directly imaged exoplanets”, Proc. SPIE 9908, Ground-based and Airborne Instrumentation for Astronomy VI, 99089V doi: 10.1117/12.2232633; https://doi.org/10.1117/12.2232633

[Fienup1976]

J. R. Fienup, 1976, “Reconstruction of an object from the modulus of its Fourier transform,” Opt. Lett. 3, 27-29

Parameters:
wavefontWavefront

The input aperture as a wavefront; a phase can be provided as a starting point for the APP generation.

propagatorPropagator

The propagator from the pupil grid to the focal plane grid.

contrastarray_like

The required contrast in the focal plane; this is a float mask that is 1.0 everywhere except for the dark zone where it is the contrast such as 1e-5.

num_iterationsint

The maximum number of iterations.

betascalar

The acceleration parameter. The default is 0 (no acceleration). Good values for beta are typically between 0.3 and 0.9. Values larger than 1.0 will not work.

Returns:
Wavefront

The APP as a wavefront.

Raises:
ValueError

If beta is not between 0 and 1.