Changelog

0.6.0 (Mar 15, 2024)

This HCIPy release provides further speed improvements for Fast Fourier transforms, New-Style Fields, new telescope pupils, the FQPM coronagraph, among some other minor improvements and bugfixes. See the list of all changes below for a summary. We added support for Python 3.11. This version supports Python 3.7+.

What’s Changed

New Contributors

Full Changelog: v0.5.1…v0.6.0

0.5.1 (Oct 17, 2022)

What’s Changed

  • Return mask on all exit paths by @ehpor in #156

  • Add segment transmission option to ELT and TMT apertures by @ivalaginja in #158

  • Add the possibility to get segments corresponding to the four quadrant of VLT aperture. by @npourre in #101

Full Changelog: v0.5.0…v0.5.1

0.5.0 (Aug 18, 2022)

This HCIPy release provides further speed improvements for Fourier transforms, among some other minor improvements and bugfixes. See the list of all changes below for a summary. This release can now also be installed with Conda. We dropped support for Python 3.6. This version supports Python 3.7+.

List of major changes

  • Further speed improvements using NumExpr and in-place operations (@ehpor).

  • Autodetect FFTs when doing general Fourier transforms (@ehpor)

  • Renamed some of the aperture functions to be more uniform (@ehpor)

  • Added file IO for Field, Grid and ModeBasis (@ehpor)

  • Allow the use of 32bit floating point Wavefronts (@ehpor)

  • Added the LUVOIR-B, GMT, TMT, ELT, Hale, HabEx, Hubble and JWST telescope apertures (@ivalaginja, @syhaffert & @ehpor)

  • Improved the speed of spiders and segmented apertures by 4x (@ehpor)

  • Knife edge coronagraph now works in all four directions (@syhaffert & @ehpor))

  • Improved support for animations (@ehpor)

  • Added focal-length parameter to Lyot coronagraph (@syhaffert)

  • Added a telescope pupil introductory tutorial (@ehpor)

  • Allow step-index fibers to be put at arbitrary positions (@syhaffert)

  • Fixed the PyWFS tutorial (@syhaffert)

  • Added CaF2 to the materials (@syhaffert)

  • Fixed deprecation warnings for Numpy 1.20 (@ehpor)

  • Added release for Conda (@ehpor)

  • Reading specific extensions of Fits files (@syhaffert)

  • CI and linting automation maintenance and upgrades (@ehpor)

  • Added support for Python 3.10 and removed support for Python 3.6 (@ehpor)

  • Added conda-forge installation (@ehpor)

0.4.0 (Feb 22, 2021)

This HCIPy release provides significant speed improvements for Fourier transforms, propagations and the vortex coronagraphs, among some other minor improvements and bugfixes. See the list of all changes below for a summary. We dropped support for Python 3.5. This version supports Python 3.6+.

List of major changes

  • Major bug fix in caching algorithm for optical elements (@ehpor)

  • Major improvement in computational efficiency of FFTs and MFTs (@ehpor)

  • FFTs now use MKL when installed (@ehpor)

  • Fourier transforms now retain bit depth and do not automatically cast to double precision (@ehpor)

  • A new class FourierFilter for efficient correlations and convolutions (@ehpor)

  • The vortex coronagraphs now use smooth windowing for their multiscale Fourier transforms (@ehpor)

  • Added VLT aperture (@dsdoelman, @ehpor, @syhaffert & @jmilou)

  • The perfect coronagraph can now handle polarized wavefronts (@ehpor)

  • Optical elements can now be pickled for multiprocessing (@ehpor)

  • Detectors can now do subsampling of the incoming light (@spbos & @ehpor)

  • Fixed the OD wavefront sensors (@syhaffert)

  • Fixed bug for the ZernikeWavefrontSensor when physical units were used (@yinzi-xin & @ehpor)

  • Two new tutorials (@jmilou & @ehpor)

  • Tutorial notebooks are now allowed to use up to 10mins per cell (@ehpor)

  • Added support for Python 3.8 and 3.9 (@ehpor)

  • Migration to Azure Pipelines for CI tests on all operating systems (@ehpor)

  • Miscellaneous minor bug fixes (@syhaffert, @jmilou & @ehpor)

0.3.1 (Apr 2, 2020)

This HCIPy release fixes a major bug in the caching algorithm for backwards propagation, among some other minor improvements. See the list of all changes below for a summary. This version supports Python 3.5+.

List of major changes

  • Bug fix in the caching algorithm when using backwards propagation for the first time (@ehpor)

  • Add input/output to FITS and ASDF files for Field, Grid and ModeBasis (@ehpor)

  • Fixed normalization for the Fourier, Gaussian-Hermite and Gaussian-Laguerre mode bases (@ehpor)

  • Allow anamorphic magnification (@ehpor)

  • Allow variable wind speed for atmospheric layers (@syhaffert)

  • Add plotting utilities for pupils and PSFs (@ehpor)

  • Fix FFMpegWriter for MacOS (@ehpor & @stevenbos)

  • Minor documentation clarifications (@ehpor)

  • Increased test coverage (@ehpor)

0.3.0 (Jan 21, 2020)

This HCIPy release contains full Stokes polarization support, some performance improvements and bug fixes. See the list of major changes below for a summary. This version supports Python 3.5+. This and later releases may still work with Python 2.7, but this is not a supported use case.

List of major changes

  • Many new tutorials (everyone)

  • Windows support for GifWriter (@jamienoss)

  • Support for partially polarized wavefronts using Stokes vectors (@stevenbos, @dsdoelman & @ehpor)

  • Addition of general Jones matrix optical elements (@dsdoelman, @stevenbos & @ehpor)

  • Addition of wave plates (@dsdoelman, @stevenbos & @ehpor)

  • Addition of linear and circular polarizers and beam splitters (@dsdoelman & @stevenbos)

  • Addition of a vector vortex coronagraph (@ehpor)

  • Addition of a vector Zernike wavefront sensor (@dsdoelman)

  • Automated testing of all polarization optical elements (@stevenbos, @dsdoelman & @ehpor)

  • Bug fix in the Zernike wavefront sensor (@dsdoelman)

  • Addition of a material refractive index catalog (@syhaffert & @ehpor)

  • Addition of better microlenses (@syhaffert)

  • Addition of better single/few mode fibers (@syhaffert)

  • Fixed APP optimization code (@dsdoelman)

  • Improved handling of agnostic optical elements (@ehpor)

  • Improved of documentation, including developer notes (@ehpor)

  • Removal of much old, unused code (@ehpor)

  • Subpixel interpolation of atmospheric wavefronts is now default (@ehpor)

  • Speed improvements for calculating telescope apertures of up to 12x (@ehpor)

  • Evaluation of field generators can now be supersampled by any factor (@ehpor)

  • Bug fix where data files were not found on pip-installed versions of HCIPy (@ehpor)

0.2 (Aug 7, 2019)

This HCIPy release contains lots of new functionality, performance improvements and bug fixes. See the list of major changes below for a summary. Currently Python 2.7, 3.5-3.7 are supported. Our intention is to drop support for Python 2.7 in the near future.

List of major changes

  • Many bug fixes (everyone)

  • Many additions to the documentation (everyone)

  • Atmospheric layers are now tested to conform to analytical formulas for the total wavefront error and variance for each Zernike mode (@ehpor & @vkooten)

  • The InfiniteAtmosphericLayer now supports subpixel interpolation to improve predictive control simulations (@ehpor)

  • The phase shift for an AtmosphericModel can now be retrieved (@ehpor)

  • Calculating of influence functions for a tilted DM (@ehpor)

  • Polygonal and hexagonal apertures can now be rotated with arbitrary angles (@ehpor)

  • An optical element that performs (de)magnification was added (@syhaffert)

  • Coronagraphs are now included in automatic testing for starlight suppression capabilities (@ehpor & @cukeller)

  • HiCAT and LUVOIR-A pupils and Lyot stops were added (@kstlaurent & @RemiSoummer)

  • A segmented deformable mirror was added (@ivalaginja)

  • Much improved (modulated) Pyramid WFS models (@syhaffert)

  • Added tip-tilt mirror (@syhaffert)

  • Improved Zernike WFS model based on semi-analytical Lyot coronagraph propagation (@ehpor)

  • A mode basis can now be sparse (@ehpor)

  • All segmented pupils can now also return the pupil by segment (@ehpor, @kstlaurent, @ivalaginja & @RemiSoummer)

  • Reduced memory usage of evaluate__supersampled() (@ehpor)

  • Removal of deprecated atmospheric model (@ehpor)

  • Improved Fresnel propagation model that avoids/corrects for aliasing (@syhaffert & @ehpor)

  • Automated testing of Fraunhofer, Fresnel and ASP propagators (@ehpor & @syhaffert)

  • Introduction of grid-agnostic optical elements (@ehpor)

  • Added a knife-edge Lyot coronagraph model (@ehpor)

  • All telescope pupils are now included in the automated testing framework (@ehpor)

  • Faster calculation of Zernike modes using q-recursive algorithm (@ehpor)

  • Accelerated APP optimization based on Douglas-Rachford operator splitting (@cukeller)

  • Add methods for linear and nearest interpolation for Fields (@ehpor)

0.1 (Jul 5, 2018)

This is the first open-source release of HCIPy.