Skip to content

Bump version / release notes - #415

Open
chrisbrahms wants to merge 4 commits into
LupoLab:masterfrom
chrisbrahms:version
Open

Bump version / release notes#415
chrisbrahms wants to merge 4 commits into
LupoLab:masterfrom
chrisbrahms:version

Conversation

@chrisbrahms

@chrisbrahms chrisbrahms commented Mar 2, 2026

Copy link
Copy Markdown
Collaborator

I'll use this PR to collect release notes for Luna v0.7. I'll wait for a few more current PRs to be merged before tagging a new release.

Release notes:

Breaking changes

  • The Ionisation module has been refactored to replace closures with functors (callable Structs) (Refactor Ionisation module #410). This simplifies the interface significantly, but the names for several important functions have changed:
    • The closure factories ionrate_fun!_PPTcached, ionrate_fun!_ADK, etc. have been replaced with constructors, IonRatePPTCached, IonRateADK etc. The function signatures are unchanged, so a simple find & replace should suffice (ionrate_fun!* -> IonRate*)
    • The simple functions ionrate_PPT and ionrate_ADK, which calculate the ionisation rate directly, have not changed--they simply create the respective IonRate instead.
  • Also as part of Refactor Ionisation module #410 , the ADK ionisation rate now includes an occupancy factor to take into account the spin degree of freedom. This has the same behaviour as for the PPT rate, i.e. it defaults to multiplying the overall rate by 2. This means that simulation results using the ADK ionisation rate may change from Luna v0.6 to v0.7.
  • The default noise model used in prop_capillary has changed from the "one-photon-per-mode" noise to noise only being added to the nonlinear response as per arXiv:2410.20567. Re-running previous noise-sensitive simulations with the same RNG or seed will produce different results on Luna v0.7. For more details see New noise model #414.
  • Two accuracy bugs have been fixed in the RK45 solver (Fix RK45 dense-output FSAL corruption and restore local extrapolation #436). Simulation results will change from Luna v0.6 to v0.7, and saved fields change considerably more than the propagation itself. On a fundamental-soliton test with an analytic solution, the worst error in a saved field improves by a factor of ~700 at the default rtol=1e-6, for the same number of steps. Note that in our testing this has little practical effect on simulations. But it is good to fix this.
    • DOPRI5 is FSAL: the last stage of a step is reused as the first stage of the next. That reuse happened before the completed step's dense output had been consumed, so every interpolated save was evaluated with the wrong first stage, degrading the interpolant from 4th to 2nd order. Because saves are made on a fixed z grid rather than at step endpoints, this affected essentially every saved field, while leaving the propagation itself untouched: interpolated saves are now as accurate as the stepped endpoints they sit between, and the endpoint values are bit-identical to v0.6.
    • The two weight vectors of the Dormand–Prince pair were labelled the wrong way round in dopri.jl, so locextrap=true (the default, and the only setting Luna uses) propagated the embedded 4th-order solution instead of the 5th-order one. The solver is now 5th order as intended, which also makes the FSAL reuse exact. This one does change the step sequence, and hence every result.

Other changes

  • We fixed the simple interface so that multiple modes are correctly created when requiring both degenerate/rotated modes for the HEnm modes when n is not 1 (enable orthogonal polarisation for HEnm with n != 1 #413)
  • Fixed a bug in the scan interface which sometimes caused repeated execution of a scan (thanks to @jtravs, see New noise model #414)
  • Fixed a bug in the Polarisation module which caused the polarisation ellipse angle calculated from a Stokes vector to always be zero (correct calculation of ellipse angle #428)
  • Added support for auxiliary files to scan execution via SSHExec. A new keyword argument files can contain a list of files to be transferred to the remote host along with the scan script (Ssh scan files #427)

@chrisbrahms chrisbrahms mentioned this pull request Mar 3, 2026
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant