Note
The current master branch is undergoing a large overhaul to modernize the C++
code and doesn't actually do much of anything yet. See the thesis
tag for
a version that nominally worked before.
IonMD is a molecular dynamics (MD) simulation of ions in a linear Paul trap. The implmentation uses the leapfrog integration technique and Newtonian equations of motion to clasically simulate the forces on individual ions. Methods are largely based on the MD simulation described in [1] and [2].
IonMD simulates ions in a linear Paul trap by solving each ion's classical equation of motion \ddot{\vec{x}}_i = \vec{F}_i/m_i where the force on each ion is the sum of forces due to the trapping potential, cooling lasers, Coulomb repulsion, and stochastic processes such as background gas collisions. In other words,
\vec{F}_i = \vec{F}_{T,i} + \vec{F}_{L,i} + \vec{F}_{C,i} + \vec{F}_{S,i}
Warning
This section is a work in progress.
To build, Armadillo and CMake are required. If using Anaconda or Miniconda, these can be installed with:
$ conda install cmake $ conda install -c conda-forge armadillo
Note
The Armadillo package on conda-forge does not include Windows binaries. Instead, download and install binaries from Armadillo website.
Building the Python bindings requires pybind11 and scikit-build. The former is included here as a git submodule:
$ git submodule init && git submodule update
The latter is installed with pip:
$ pip install scikit-built
To build without Python bindings:
$ mkdir -p build && cd build && cmake .. && cmake --build .
See demo/demo.cpp
.
IonMD is principally written by Michael V. DePalatis with some optimization enhancements by Ben Land.
IonMD is freely distributable under the terms of the GNU GPL version 3 (see COPYING for details).
[1] | C.B. Zhang et al., Phys. Rev. A 76, 012719 (2007). |
[2] | C.B. Zhang, Production and Sympathetic Cooling of Complex Molecular Ions, PhD thesis, Heinrich-Heine-Universität Düsseldorf (2008). |