Amalthea.jl v1.0.0 #58
vdiego28
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Amalthea.jl v1.0.0
First stable release, and first release under the new name: this package was
previously developed as Luna-Rust.jl, a performance-focused fork of
Luna.jl. The Julia API remains fully
backwards-compatible with Luna.jl; performance-critical numerical kernels are
offloaded to a native Rust backend (
luna-rust), called transparently viaccall— no Rust knowledge is required to use the package.Added
RustNativeStepper/NativeSim): theentire RK45 hot loop — field, RK scratch buffers, and FFTW plans — lives in
Rust for the duration of a
solve, eliminating the per-stage Juliacallback round-trip. Covers mode-averaged, radial, modal, and free-space
geometries;
RealGridandEnvGrid; Kerr, plasma (PPT/ADK), and Raman(including
:SiO2intermediate-broadening) nonlinearities; gas mixtures;z-dependent (graded-core, tapered, multi-point gradient) linear operators;
and shot noise. Falls back to the Julia stepper automatically for any
configuration outside this scope (
NativeIneligible).AVX-512/Apple AMX → AVX2/NEON → portable scalar, including an opt-in
GPU-resident backend (
LUNA_USE_RUST_CUDA_NATIVE=1).LUNA_USE_RUST_*toggles,used independently of the resident stepper): PPT ionisation rate,
time-domain Raman (ADE exponential integrator), Zeisberger/Marcatili
dispersion, and QDHT batch transforms.
python/,juliacall-based, pip-installable) with anumpy-backed output wrapper and ASCII/Unicode keyword translation(
lambda0↔λ0, etc.).libluna_rustforLinux, macOS, and Windows;
deps/build.jldownloads the matching prebuiltlibrary for the installed version before falling back to a local
cargo build.flockon Unix,LockFileExonWindows), validated by CI on all three platforms.
Changed
of Luna.jl); citation metadata updated (Zenodo DOI), new package UUID
minted, registered as a new package in the Julia General registry.
Fixed
Polarisation.ellipseangle calculation (was always 0; nowangle(Q + 1im*U)/2), and other fork-vs-upstream parity fixes — seedocs/dev/REVIEW.mdfor the full audit.Scans.jl's SSH/Slurm/Condorsubmission paths (
Cmdarrays instead of interpolated shell strings).See
CHANGELOG.mdfor the full changelog anddocs/dev/BACKLOG.md/docs/dev/native-port/PORT_LOG.mdfor the full phase-by-phase native-port development history.
This discussion was created from the release Amalthea.jl v1.0.0.
All reactions