Skip to content

AshtonSBradley/VortexDistributions.jl

Repository files navigation

VortexDistributions.jl

Build Status Coverage

Tools for creating and detecting quantum vortices in Bose-Einstein condensates.

  • Fast, accurate vortex detection.
    • Highly optimized version of the plaquette method (phase integral around each 4-point plaquette), with recursive interpolation to achieve a good balance between speed and accuracy.
    • At present only tests for charge +/-1 in 2D
  • Vortex creation
    • Solves the 2D GPE problem for charge n on the infinite domain
    • Interpolates vortex solution to density and phase imprint on arbitrary 2D domains
  • Recursive cluster algorithm
  • Vortex correlation functions

Installation

]add VortexDistributions

Detection Example

using VortexDistributions, Plots
gr(xlabel="x",ylabel="y",legend=false)

# make a simple 2D test field
Nx = 400; Ny = Nx
Lx = 200; Ly = Lx
x = LinRange(-Lx / 2, Ly / 2, Nx); y = x
psi0 = one.(x*y') |> complex

# doubly periodic boundary conditions
psi = Torus(psi0,x,y)

# make a point vortex
pv = PointVortex(30.0,70.3,-1)

# make a scalar GPE vortex with exact core
spv = ScalarVortex(pv)
vortex!(psi,spv)

# make some more random vortices
vort = rand_vortex(10,psi)
vortex!(psi,vort)

We can recover the raw point vortex data from PointVortex() with

vortex_array(pv)

or from a ScalarVortex() with

vortex_array(spv.vort)

We can find all the vortices, removing edge vortices by default:

vfound = findvortices(psi)

For a single vortex example, we show have the phase at successive zoom levels with vortex location, +, and detected location, o (see examples):

and density at successive zoom levels with vortex location and detected location:

The benchmark gives (2018 MacBook Pro 2.33GHz Intel i5)

using BenchmarkTools
julia> @btime vort = findvortices(psi)
  4.037 ms (585 allocations: 3.84 MiB)

Acknowledgements

Matthew Reeves, Thomas Billam, Michael Cawte

External links

Signatures of Coherent Vortex Structures in a Disordered 2D Quantum Fluid,
Matthew T. Reeves, Thomas P. Billam, Brian P. Anderson, and Ashton S. Bradley,
Physical Review A 89, 053631 (2014)

Onsager-Kraichnan Condensation in Decaying Two-Dimensional Quantum Turbulence,
Thomas P. Billam, Matthew T. Reeves, Brian P. Anderson, and Ashton S. Bradley,
Physical Review Letters 112, 145301 (2014)