HOOMD-blue is a general purpose particle simulation toolkit. It performs hard particle Monte Carlo simulations of a variety of shape classes, and molecular dynamics simulations of particles with a range of pair, bond, angle, and other potentials. HOOMD-blue runs fast on NVIDIA GPUs, and can scale across many nodes. For more information, see the HOOMD-blue website.
Read the HOOMD-blue tutorial online.
HOOMD-blue binary images are available on Docker Hub and packages on conda-forge.
Pull the glotzerlab/software to get HOOMD-blue along with many other tools commonly used in simulation and analysis workflows. Use these images to execute HOOMD-blue in Docker/Singularity containers on Mac, Linux, and cloud systems you control and on HPC clusters with Singularity support. CUDA and MPI operate with native performance on supported HPC systems See full usage information on the glotzerlab/software docker hub page.
Singularity:
$ umask 002
$ singularity pull docker://glotzerlab/software
Docker:
$ docker pull glotzerlab/software
HOOMD-blue is available on conda-forge.
To install, first download and install miniconda.
Then add the conda-forge
channel and install hoomd
:
$ conda config --add channels conda-forge
$ conda install hoomd
If you have already installed hoomd
in conda
, you can upgrade to the latest version with:
$ conda update hoomd
Download source releases directly from the web: https://glotzerlab.engin.umich.edu/Downloads/hoomd
$ curl -O https://glotzerlab.engin.umich.edu/Downloads/hoomd/hoomd-v2.4.2.tar.gz
Or, clone using git:
$ git clone --recursive https://bitbucket.org/glotzer/hoomd-blue
HOOMD-blue uses git submodules. Either clone with the --recursive
option, or execute git submodule update --init
to fetch the submodules.
- Required:
- Python >= 2.7
- numpy >= 1.7
- CMake >= 2.8.0
- C++ 11 capable compiler (tested with gcc 4.8, 4.9, 5.4, 6.4, 7.0, 8.0, clang 3.8, 5.0, 6.0)
- Optional:
- NVIDIA CUDA Toolkit >= 8.0
- Intel Threaded Building Blocks >= 4.3
- MPI (tested with OpenMPI, MVAPICH)
- LLVM >= 3.6, <= 7.0.0
Configure with cmake and compile with make. Replace ${PREFIX}
your desired installation location.
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=${PREFIX}/lib/python
make install -j10
Add ${PREFIX}/lib/python
to your PYTHONPATH
to use HOOMD-blue.
$ export PYTHONPATH=$PYTHONPATH:${PREFIX}/lib/python
For more detailed instructions, see the documentation.
HOOMD-blue job scripts are python scripts. You can control system initialization, run protocol, analyze simulation data, or develop complex workflows all with python code in your job.
Here is a simple example.
import hoomd
from hoomd import md
hoomd.context.initialize()
# create a 10x10x10 square lattice of particles with name A
hoomd.init.create_lattice(unitcell=hoomd.lattice.sc(a=2.0, type_name='A'), n=10)
# specify Lennard-Jones interactions between particle pairs
nl = md.nlist.cell()
lj = md.pair.lj(r_cut=3.0, nlist=nl)
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0)
# integrate at constant temperature
all = hoomd.group.all();
md.integrate.mode_standard(dt=0.005)
hoomd.md.integrate.langevin(group=all, kT=1.2, seed=4)
# run 10,000 time steps
hoomd.run(10e3)
Save this as lj.py
and run with python lj.py
(or singularity exec software.simg python3 lj.py
if using containers).
Read the reference documentation on readthedocs.
See ChangeLog.md.
See CONTRIBUTING.md.