Releases: LupoLab/Luna.jl
v0.6.2
Luna v0.6.2
Breaking changes
None
Other changes
- Updates to package compatibility
- The
temperatureargument toprop_capillarynow 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
Luna v0.6.1
Breaking changes
None
Other changes
- Luna outputs can now accept up to two string indices, e.g.
output["stats", "peakpower"]. This avoids loading the wholestatisticsgroup into memory ifoutputis anHDF5Output. - 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:
- update run_tests to include lts and pre (#394) (@jtravs)
- Add temperature to interface (#399) (@jtravs)
- Some miscellaneous changes (#402) (@chrisbrahms)
- CompatHelper: bump compat for Optim to 2, (keep existing compat) (#403) (@github-actions[bot])
- Update build script to fix CI (#404) (@chrisbrahms)
- Pass temperature through to Raman response (#406) (@chrisbrahms)
Closed issues:
v0.6.0
Luna v0.6.0
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:
- Mode error check (#391) (@chrisbrahms)
- Preionisation (#393) (@jtravs)
- improved argon ref index (#398) (@chrisbrahms)
v0.5.1
Luna v0.5.1
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:
- Documentation for mode-averaged propagation (#371) (@chrisbrahms)
- use stale_age for pidlock in FFTWcache (#380) (@chrisbrahms)
- Properly use check_spline_args in BSpline (#381) (@chrisbrahms)
- RFC: Stop saving "dumps" of the simulation (#383) (@chrisbrahms)
- set damping time to Inf for zero density (#385) (@chrisbrahms)
- PPT options and fixes (#388) (@chrisbrahms)
- Scan Exec mode for slurm (#392) (@chrisbrahms)
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
Luna v0.5.0
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.peakpowernow supports the option to sum the optical power over modes with thesumdimskeyword argument. (#354)- There is a new default statistics field,
peakpower_allmodeswhich 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)
runscannow manually calls the garbage collector after every iteration to avoid memory leaks in long-running scans (#367)
Merged pull requests:
- Add modal sum option to peak power in Stats and Processing (#354) (@chrisbrahms)
- add note to mailing list (#355) (@chrisbrahms)
- CompatHelper: bump compat for Peaks to 0.5, (keep existing compat) (#356) (@github-actions[bot])
- RFC: Complex ref index for gases (#359) (@chrisbrahms)
- add scalefield for PropagatedField (#360) (@chrisbrahms)
- PPT ionisation rate upgrades (#363) (@chrisbrahms)
- Fix complex refractive index for gases (#365) (@chrisbrahms)
- add latest v1 Julia to CI matrix (#366) (@chrisbrahms)
- add gc() call to scans (#367) (@chrisbrahms)
- switch off parallel scan tests on CI (#368) (@chrisbrahms)
- increment version to v0.5 (#369) (@chrisbrahms)
v0.4.3
Luna v0.4.3
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
Luna v0.4.2
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
Luna v0.4.1
Merged pull requests:
- Scratch spaces also for PPT cache/fix PIDlocks (#349) (@chrisbrahms)
v0.4.0
Luna v0.4.0
Merged pull requests:
- RFC: restrict to v1.9 (#345) (@chrisbrahms)
- change minimum Julia version in README (#346) (@chrisbrahms)
v0.3.2
Luna v0.3.2
Merged pull requests: