IonSim.jl

A simple tool for simulating trapped ion systems
Author HaeffnerLab
Popularity
31 Stars
Updated Last
2 Years Ago
Started In
February 2020

Build Status codecov License: MIT Twitter

A simple tool, built on top of QuantumOptics.jl, for simulating the dynamics of a configuration of trapped ions interacting with laser light.

IonSim.jl primarily performs two jobs

  1. Keeps track of the physical parameters necessary for describing the system.
  2. Using these parameters, constructs a function that quickly computes the system's Hamiltonian as a function of time.

The functional form of the Hamiltonian can then be used as input to any of the solvers implemented in QuantumOptics.timeevolution. For more information see:

If you have an idea for how to improve IonSim, need some help getting things working or have any other IonSim-related questions feel free to open up a discussion on our Gitter Channel: Gitter

Installation

Installing Julia

Platform specific instructions found here

If using Linux, once you've extracted the downloaded file copy it to /opt with:

$ sudo cp -r julia-1.3.1 /opt/

(replacing julia-1.3.1 with the appropriate version) and then create a symbolic link in /usr/local/bin with

$ sudo ln -s /opt/julia-1.3.1/bin/julia /usr/local/bin/julia

Installing IonSim

Once Julia has been installed, open a terminal session and begin a Julia REPL with:

$ julia

(If using Windows it's easier to start a REPL with the julia executable available after installation.)

And then enter the following commands:

julia> using Pkg

julia> Pkg.add(PackageSpec(url="https://github.com/HaeffnerLab/IonSim.jl.git"))

You'll also need to download the QuantumOptics package:

julia> Pkg.add("QuantumOptics")

And will probably want to add Jupyter compatability by downloading IJulia:

julia> Pkg.add("IJulia")

after which you'll have the option to start a Julia kernel from Jupyter notebook.

Updating IonSim

IonSim.jl is a work in progress. You can update your local code to the most recent version with the following:

julia> using Pkg
julia> Pkg.update("IonSim")