Julia packages

Open-source Julia packages that accompany my research. Each package is on GitHub, and the registered packages can be installed directly from the Julia package manager.

Resurgence.jl

Adjacency graph of three saddle points in the Borel plane, with Stokes constants on the edges
The adjacency graph of the Pearcey integral: the three saddle points in the Borel plane, with every edge labelled by its Stokes constant.

Asymptotic evaluation of multidimensional oscillatory integrals with polynomial or rational exponents using resurgence. Integration by parts and Brieskorn reduction give the Gauss–Manin system of the exponent, which generates the asymptotic series of all saddle points. The monodromy of its Borel transform yields the Stokes constants and hence the adjacency of the saddle points. Combined with the South-East rule, this identifies the relevant saddle points and gives superasymptotic and hyperasymptotic approximations without computing steepest-descent manifolds. The package accompanies Asymptotic evaluation of multidimensional oscillatory integrals.

Not yet in the General registry; install it from GitHub:

pkg> add https://github.com/jfeldbrugge/Resurgence.jl

PicardLefschetzIntegration.jl

Interference pattern of a one-dimensional Lorentzian lens
Intensity of a one-dimensional Lorentzian lens in wave optics.

Numerical evaluation of multidimensional oscillatory integrals with meromorphic exponents using Picard–Lefschetz theory. The integration domain is deformed in the complex plane onto the Lefschetz thimbles, where the integral converges absolutely and can be evaluated efficiently. It is a more accessible Julia implementation of the method behind my C++ Picard–Lefschetz code, with applications to wave optics in astronomy.

pkg> add PicardLefschetzIntegration

PhaseSpaceDTFE.jl

Density field of the cosmic web in an N-body simulation
The density field of an N-body simulation, estimated with the phase-space Delaunay tessellation field estimator.

Estimates the density and velocity fields of an N-body simulation with the phase-space Delaunay tessellation field estimator, which follows the dark matter sheet in phase space and therefore resolves the multi-stream regions of the cosmic web. The package accompanies the paper Phase-space Delaunay tessellation field estimator, published in Monthly Notices of the Royal Astronomical Society.

pkg> add PhaseSpaceDTFE

Nbody2D.jl

Density field of a two-dimensional cosmological N-body simulation showing the cosmic web
The density field of a two-dimensional N-body simulation.

A particle-mesh code for two-dimensional cosmological N-body simulations, inspired by Johan Hidding’s nbody2d Python code. It is a quick environment to learn and experiment with cosmological N-body simulations: it samples unconstrained and constrained Gaussian random fields as initial conditions, evolves them to the present epoch, and estimates the density, velocity and number-of-streams fields with the phase-space Delaunay tessellation field estimator.

pkg> add Nbody2D

DiscreteNaturalNeighbors.jl

Voronoi cells of scattered data points with a grid of interpolation sites and the overlap regions of three neighbours
Discrete natural neighbour interpolation: the weights of the data points p1, p2 and p3 at the site xi follow from in-cell counts on a grid of interpolation sites.

Discrete natural neighbour interpolation of n-dimensional data, developed by Benjamin Hertzsch in collaboration with me. Natural neighbour (Sibson) interpolation is a parameter-free, smooth and spatially adaptive way to interpolate a field from scattered data points, but it requires a new Voronoi tessellation for every interpolation site. Following Park et al. (2006), the package replaces these volume calculations by in-cell counts on a discrete grid of interpolation sites, which makes the method practical for large data sets.

pkg> add DiscreteNaturalNeighbors