d-meiser / cold-atoms

A tool box for cold-atom simulations.
GNU General Public License v3.0
13 stars 5 forks source link
cold-atom-simulations numerical-simulations quantum-optics

Build Status AppVeyor Coverage Status Stories in Ready

What is it?

The cold-atoms library is a tool box for the simulation of ensembles of neutral atoms or ions for atomic, molecular, and optical physics (AMO) experiments. Its design goals and principles are:

Computationally, we represent atomic ensembles as collections of point particles with data describing their internal state. In this way, cold-atoms' approach is similar to that of a molecular dynamics simulation or a tracking code for the simulation of particle accelerators. Simulations requiring a fluid representation of the particles, wave mechanics (e.g. Bose-Einstein condensates), or a correct account of quantum statistics are beyond the scope of the cold-atoms library.

Getting started

Currently, the best way to obtain and use the cold-atoms library is by downloading and building its source. We recommend installing cold-atoms and its dependencies into a python sandbox. Installing into a sandbox is possible without super-user privileges and there is no risk of breaking the system python distribution.

Linux

# Download the package source from github.
git clone https://github.com/d-meiser/cold-atoms

cd cold-atoms

# Download external dependencies.
pip install -r requirements.txt

# Build package.
python setup.py develop

# Run the tests of the package.
nosetests

# Install the package.
pip install .

# Have a look at the examples.
cd examples
jupyter notebook &

Mac

The instructions given for Linux above should work for Mac as well.

Windows

Windows users may wish to check out cold-atoms' appveyor project. Binary installers and package files can be downloaded from the artifacts of a recent build of the master branch. The 32bit builds are currently broken and they 64bit builds have not been tested nearly as thoroughly as the linux or windows builds. Any help in improving the state of the windows package is greatly appreciated.

Contributing

If you wish to contribute to this project, please do the following:

All python code should adhere to PEP8 and we use the linux kernel style guide for C code.

To file a ticket pleas use the github issue tracker.

License

cold-atoms is distributed under the GPLv3 license. See the license file for details.

Acknowledgements

The cold-atoms library relies on a number of open source libraries including