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
- Keeps track of the physical parameters necessary for describing the system.
- 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:
- Main code: https://github.com/HaeffnerLab/IonSim.jl/tree/master/src
- Documentation: https://docs.ionsim.org
- Examples: https://examples.ionsim.org
- Benchmarks:
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:
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
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.
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")