Skip to content

Releases: Goobley/Lightweaver

Bugfixes & Newer Python Support

08 Jan 17:00
Compare
Choose a tag to compare

Closing a few outstanding issues and adding full build support for 3.11 and 3.12 🚀

SIMD Exp Fixes

02 Nov 15:17
Compare
Choose a tag to compare
SIMD Exp Fixes Pre-release
Pre-release

Added proper bounds checking to SIMD wide-exp function, as it was blowing up in the exp(-hnu/kT) term for continua at very short wavelengths (< 1 nm). This is very unlikely to have affected results, as it produces NaNs as soon as it explodes. The new value correctly gets truncated to 0.

Editable Build Fixes

22 Sep 15:59
Compare
Choose a tag to compare

Due to setuptools now defaulting to a PEP660 build system, the previous develop/editable build process no longer works, breaking the docs workflow/a develop build by default. This redesigned setup.py should fix editable installs.

Domain Decomposition Support + NumPy Version Updates

22 Sep 12:23
656f842
Compare
Choose a tag to compare

Adds support for ZPlaneDecomposition for 1D and 2D atmospheres, to be used in conjunction with this MPI layer, via mpi4py.
Removed the block on numpy versions due to numba 0.55.

Minor loop indexing bugfix in configure_hprd_coeffs which may trigger an assert on some cpp stdlibs.

Performance Focused Improvements

31 May 11:37
Compare
Choose a tag to compare

The v0.8 release of Lightweaver focuses significantly on performance enhancements in the backend, with some improved frontend flexibility regarding the printing of results. If you've been using a v0.8.0rc* version then you will already have most/all of these features.

Notable features:

  • Manual SIMD (x86_64) vectorisation throughout the opacity/emissivity gathering process and calculation of the radiative Gamma matrix. This can be a >50% performance uplift on iterative schemes depending on available instruction sets. (SSE2 seems fully supported on Apple M1, thanks J. Jenkins for testing)

  • Reduced multithreading overhead.

  • Assured data over-alignment where possible.

  • Optimised interpolation schemes and parallelisation of PRD/hPRD scattering integral calculations.

  • Ability to override the iteration scheme with dynamic libraries, similar to the formal solver, these all take an ExtraParams dict (containing basic types including arrays with the option to write-back) from Python.

  • Added IterationUpdate class, returning a lot more information about the updates going on in the backend. (This also ties in with the ability to override the iteration scheme -- consider how a GS method works 👀)

  • Finally added default function to iterate context to statistical equilibrium convergence. See lw.iterate_ctx_se

  • Added a benchmark and config file system to select the optimal SIMD implementation for the current machine. Home folder config can be overriden with a lightweaverrc in the folder where a script is run.

  • Minor documentation improvements.

Hopefully final v0.8.0 pre-release

20 May 19:21
Compare
Choose a tag to compare
Pre-release

Adding ExtraParams to most of the core functions finalises the intended API changes for v0.8.0, holding off full release in case of breakage.

Collection of Small Bug Fixes

12 May 15:57
Compare
Choose a tag to compare
Pre-release

Very happy with the performance of v0.8.0, a small number of outstanding niggles have been dealt with here. The final roadblock before this release is incorporating extraParams into formal-solver-ish functions.

Compile Fixes

25 Feb 12:01
Compare
Choose a tag to compare
Compile Fixes Pre-release
Pre-release
  • Fixed macOS compile of ExtraParams
  • Added return value to iterate_ctx_se as suggested by Jack.
  • Tidying compile warnings and hopefully ensuring correct headers available on all CI platforms.

Minor Bug Fixes & Features

22 Feb 21:51
Compare
Choose a tag to compare
Pre-release
  • C++ ExtraParams struct implemented, but not added to all functions yet
  • Basic iteration of J20 and continuum scattering polarisation in the polarised solver (all into Q as per convention).
  • Bug fix filling DepthData
  • Bug fix for rho not being created in some branches of the 1D atmosphere constructor. Thanks Jack!

New Optimised Backend

19 Feb 17:02
2f3c373
Compare
Choose a tag to compare
New Optimised Backend Pre-release
Pre-release

Multiple bugs also fixed, more detail will be provided in final release.