Skip to content

Releases: LupoLab/Luna.jl

v0.6.2

31 Jan 09:26
8e73524

Choose a tag to compare

Luna v0.6.2

Diff since v0.6.1

Breaking changes

None

Other changes

  • Updates to package compatibility
  • The temperature argument to prop_capillary now correctly passes through the temperature to the distribution of rotational energy levels
  • Hollow capillary modes can now be used with negative azimuthal index n

Merged pull requests:

  • CompatHelper: bump compat for DSP to 0.8, (keep existing compat) (#374) (@github-actions[bot])
  • CompatHelper: bump compat for DataStructures to 0.19, (keep existing compat) (#389) (@github-actions[bot])
  • CompatHelper: bump compat for Peaks to 0.6, (keep existing compat) (#397) (@github-actions[bot])
  • Allow negative n in MarcatiliMode (#405) (@chrisbrahms)
  • better test for temperature pass-through to Raman response (#407) (@chrisbrahms)
  • bump version to v0.6.2 (#408) (@chrisbrahms)

v0.6.1

21 Jan 11:48
ce2da5b

Choose a tag to compare

Luna v0.6.1

Diff since v0.6.0

Breaking changes

None

Other changes

  • Luna outputs can now accept up to two string indices, e.g. output["stats", "peakpower"]. This avoids loading the whole statistics group into memory if output is an HDF5Output.
  • During propagation, the total number of steps taken so far is now displayed
  • A new function Processing.getφ returns the unwrapped spectral phase of a field

Merged pull requests:

Closed issues:

  • Help with low_level interface example (#347)
  • How to correctly propagate in vacuum speed of light reference frame (#370)
  • Unexpected Sudden Spectral Broadening in Free-Space Propagation Simulation with Luna (#396)

v0.6.0

21 Oct 19:55
9e8b7e4

Choose a tag to compare

Luna v0.6.0

Diff since v0.5.1

Breaking changes

The refractive index of argon in the far ultraviolet has changed (see below).

Argon refractive index

We have extended the Sellmeier expansion for argon to include the vacuum UV region down to ~110 nm. In the region above ~150 nm, results should be near identical to before. For more information, see #398

Convergence check in multi-mode propagation

Luna now saves some new statistics to track the "completeness" of the modal basis for the nonlinear polarisation, that is, whether the simulation includes enough modes to capture the spatial distribution of the nonlinearity. The statistics field mode_reconstruction_error tracks the root-mean-square difference between the nonlinear polarisation on the waveguide axis as calculated directly from the field, and as reconstructed from the modal polarisation components. A convergence test of this error with respect to the number of modes can give a simple indication of how many modes are required.

Gaussian beam inputs for capillary propagation

We fixed a bug which caused incorrect results when a Gaussian beam profile was used as the input to a capillary simulation (a GaussBeamPulse for prop_capillary). In addition, GaussBeamPulses now accept an additional keyword argument Nmodes, which can be :all (the default) or an integer. When it is not :all, the pulse is coupled only into the first Nmodes modes. This can avoid artificially high intensity at the fibre entrance, which can be caused by spurious interference between the modes.

Mode specification for capillary propagation

When using prop_capillary, the modes to be included in the propagation can now be specified in more ways:

- `modes`: Defines which modes are included in the propagation. Can be any of:
    - a single mode signifier (default: :HE11), which leads to mode-averaged propagation
        (as long as all inputs are linearly polarised).
    - a list of mode signifiers, which leads to multi-mode propagation in those modes.
    - a `Dict` mode signifier with keys `:kind`, `:n`, and `:m`, e.g. `Dict(:kind=>:HE, :n=>1, :m=>1)`
    - a `Tuple` of mode signifiers (`Symbol`s or `Dict`s), which leads to multi-mode propagation in those modes.
    - a `Number` `N` of modes, which simply creates the first `N` `HE` modes.

    Note that when elliptical or circular polarisation is included, each mode is present
    twice in the output, once for `x` and once for `y` polarisation.

In addition, ambiguous mode signifiers like :HE112 (which could be HE with n=1 and m=12 or HE with n=11 and m=2) now cause an error.

Merged pull requests:

v0.5.1

27 Aug 12:39
4c4e693

Choose a tag to compare

Luna v0.5.1

Diff since v0.5.0

PPT ionisation rate update

We have further updated the PPT ionisation rate to include a correction for the polarisability of the cation state. prop_capillary now accepts a new keyword argument, PPT_options::Dict{Symbol, Any}, with which many keyword options for the PPT rate can be set. For more detail, see #388 and for available keyword arguments see the docstring for Ionisation.ionrate_fun_PPT: https://github.com/LupoLab/Luna.jl/blob/4c4e6937a8356b5b63d13df67aac7e187186c512/src/Ionisation.jl#L282

Documentation

The documentation has been updated to include a derivation of the mode-averaged guided propagation model in Luna.

Minor updates

  • Luna simulations no longer save string-formatted dumps of the whole setup to save processing time and significant disk space (#383)
  • There is a new execution mode for scans, Scans.SlurmExec. As the name suggests this creates and submits a batch job file to run parallel scans on a machine with slurm installed (#392)
  • Several minor bugs have been fixed (#385, #381, #380)

Merged pull requests:

Closed issues:

  • Free propogation using Luna (#323)
  • Problems running the free Prop example (#323) (#340)
  • How to output electron density? (#348)
  • How to use Custom Temporal Field for Freespace Propagation (#357)
  • Glass materials in radial.jl (#362)
  • Simulating a large step-index fibre (#372)
  • Why VSCode is much slower than using Julia terminal (#376)
  • Extract power of pulse after mirror propagation (#377)
  • Installation Issue: PyCall, PyPlot, and Luna Precompilation Errors (#378)
  • How do I use a DataPulse pulse in the prop_capillary function? (#379)
  • Pressure gradient with N2 (#384)
  • Using the free space radial module with multiple pulses (#387)

v0.5.0

23 Oct 10:48
98aa6d8

Choose a tag to compare

Luna v0.5.0

Diff since v0.4.3

PPT ionisation rate updates

We have updated the PPT ionisation rate in Luna to reflect additional physical details and correct an error in how we account for different angular momentum states. In general, the effect will be to slightly increase ionisation rates and ionisation fractions for most gases, with a bigger effect in argon specifically. For more detail, see #363.

Minor updates

  • Processing.peakpower now supports the option to sum the optical power over modes with the sumdims keyword argument. (#354)
  • There is a new default statistics field, peakpower_allmodes which contains the maximum of the total optical power in all modes (#354)
  • The refractive index of gases is now complex-valued by default to avoid numerical issues when linearly propagating through e.g. air with large frequency grids (#359 and #365)
  • runscan now manually calls the garbage collector after every iteration to avoid memory leaks in long-running scans (#367)

Merged pull requests:

v0.4.3

09 Dec 16:19
45c6c17

Choose a tag to compare

Luna v0.4.3

Diff since v0.4.2

Merged pull requests:

  • match compat to julia version (#352) (@chrisbrahms)
  • CompatHelper: bump compat for CoolProp to 0.2, (keep existing compat) (#353) (@github-actions[bot])

v0.4.2

01 Nov 10:19
41a13b3

Choose a tag to compare

Luna v0.4.2

Diff since v0.4.1

Merged pull requests:

  • CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#350) (@github-actions[bot])
  • set compat for stdlib packages (#351) (@chrisbrahms)

v0.4.1

24 Oct 08:01
bd1c008

Choose a tag to compare

Luna v0.4.1

Diff since v0.4.0

Merged pull requests:

v0.4.0

19 Sep 20:41
23a8151

Choose a tag to compare

Luna v0.4.0

Diff since v0.3.2

Merged pull requests:

v0.3.2

19 Sep 09:29
2d34a6b

Choose a tag to compare

Luna v0.3.2

Diff since v0.3.1

Merged pull requests:

  • CompatHelper: bump compat for Polynomials to 4, (keep existing compat) (#338) (@github-actions[bot])
  • CompatHelper: bump compat for HDF5 to 0.17, (keep existing compat) (#343) (@github-actions[bot])
  • CompatHelper: bump compat for Documenter to 1, (keep existing compat) (#344) (@github-actions[bot])