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: (coming soon)
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 a GitHub issue.
- Install Julia (instructions here).
- Open up a Terminal session and fire up the Julia REPL with
$ julia
(If using Windows it's easier to start a REPL with the julia executable available after installation.)
- Now run
julia> using Pkg
julia> Pkg.add("IonSim")
julia> Pkg.add("IJulia")
The last line adds Jupyter compatibility, so you'll have the option to start a Julia kernel from Jupyter notebook. This is the suggested way to interact with 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")
- Extract the downloaded file
- copy to
/opt
with:
$ sudo cp -r julia-1.3.1 /opt/
(replacing julia-1.3.1
with the appropriate version)
- then create a symbolic link in
/usr/local/bin
with
$ sudo ln -s /opt/julia-1.3.1/bin/julia /usr/local/bin/julia
If you want to run IonSim locally:
- Open up the Julia REPL
$ julia
- Open the package manager by pressing
]
- Run the following:
pkg> dev IonSim
This will clone a version of this repo in ~/.julia/dev/IonSim/
. Then when you make changes to that repo, it will be immediately reflected when using Julia.
You can run tests with
pkg> test IonSim
Don't forget to format the code! ./scripts/format.sh
To go back to the version in the registry, use
pkg> free IonSim
In order to update the IonSim.jl version that lives in the Julia general registry, change the version number in the Project.toml file, commit the changes and then add a comment to the commit that reads:
@JuliaRegistrator register
If you have any questions, please make a GitHub issue.