HOOMD-blue is a *general-purpose* particle simulation toolkit. It scales from a single CPU core to **thousands of GPUs**.

You define particle initial conditions and interactions in a high-level python script. Then tell HOOMD-blue how you want to execute the job and it takes care of the rest. Python job scripts give you unlimited flexibility to create custom initialization routines, control simulation parameters, and perform in situ analysis.

Download and get started using HOOMD-blue today. You must cite HOOMD-blue if you use it published work.

```
from hoomd_script import *
init.read_xml('init.xml');
lj = pair.lj(r_cut=2.5)
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0)
integrate.mode_standard(dt=0.005)
integrate.nvt(group=group.all(), T=1.2, tau=0.5)
run(1e5)
```

```
$ hoomd run.py --mode=cpu
$ hoomd run.py --mode=gpu
$ mpirun -n 256 hoomd run.py --mode=cpu
$ mpirun -n 64 hoomd run.py --mode=gpu
```

### Fast GPU performance

On a single NVIDIA GPU, HOOMD-blue performs an order of magnitude faster than a multi-core CPU in typical benchmarks. Obtain faster time to solution, execute larger simulations than were previously possible, or increase job throughput through a cluster given a fixed monetary budget.

### Scalable

HOOMD-blue scales up to thousands of GPUs on Titan and Blue Waters, two of the largest GPU accelerated supercomputers in the world. It runs just as efficiently from one to dozens of GPUs on smaller clusters like Stampede (XSEDE), Maverick (XSEDE), your local GPU cluster, and the workstation at your desk.

### Flexible

Want to run a Molecular Dynamics simulation using a custom force field? Or maybe you are simulating granular dynamics, dissipative particle dynamics, or active particles? HOOMD-blue is the right tool for you, with a variety of potentials and integration modes. Mix and match any of these in your job script.

## Molecular Dynamics capabilities

### Integrators

Apply any number of integrators to separate particle groups. HOOMD-blue has integrators built in for many different thermodynamic ensembles and energy minimization. Many of them support integration of orientational degrees of freedom.

- NVE, NVT, NPH, NPT
- Langevin dynamics
- Brownian dynamics
- Berendsen thermostat
- Dissipative Particle Dynamics (DPD)
- FIRE energy minimization

### Pair potentials

- CGCMM
- DPD
- Lennard-Jones
- Gaussian
- Mie
- Moliere
- Morse
- Yukawa
- ZBL
- User-defined (table)

### Bond potentials

- Harmonic
- FENE
- User-defined (table)

### Angle potentials

- Harmonic
- CGCMM
- User-defined (table)

### Rigid bodies

Combine particles together to form rigid bodies. Potentials still evaluate particle to particle, but the integrator keeps particles in rigid bodies together. HOOMD-blue contains the following rigid body integrators.

- NVE, NVT, NPT
- Langevin dynamics
- Dissipative Particle Dynamics (DPD)
- FIRE energy minimization

### Advanced neighbor list algorithms

Efficiently handle large cutoff radius disparities using a BVH tree, and/or stenciled cell list to compute the neighbor list. These algorithms make possible large colloid and explicit solvent simulations with.

### Anisotropic potentials

- Gay-berne
- Dipole

### Wall potentials

- Sums of planar, cylindrical, and spherical half-spaces
- lj, gauss, slj, yukawa, morse, force_shifted_lj, and mie interactions

### Long-ranged potentials

- PPPM electrostatic

### Constraints

- Sphere

### Dihedral potentials

- Harmonic
- OPLS
- User-defined (table)

### Improper potentials

- Harmonic

### External potentials

- Periodic
- Constant force
- Electric field

### Many-body potentials

- EAM
- Tersoff

## General features

### Simulation box

Simulations in HOOMD-blue can be 2D or 3D. The box is a parallelepiped with arbitrary lengths and angles allowing for generic triclinic symmetry with periodic boundary conditions in all directions.

### Initializers

- Random particle placement
- Random polymer placement
- Read XML input file
- Set from python (arbitrary)
- Replicate periodic box

### Output files

- DCD
- MOL2
- PDB
- HOOMD-blue XML
- JSON metadata stores simulation and system configuration parameters

### Extend HOOMD-blue

Need a capability not listed here? Fork the project and modify the code. HOOMD-blue is written in well documented C++ and its design is modular. Extensions that just add a new pair or bond potential don't even require CUDA code.

If your work is useful to a wide audience of users, submit it to the HOOMD-blue developers as a pull request for inclusion into the main code.

### Update properties

- Resize box over time
- Temperature rescale
- Zero system momentum
- Arbitrary manipulation of system and particle properties from python
- Add/remove particles while the simulation progresses
- Access particle properties via numpy arrays

### Analysis

- Realtime visualization in VMD using IMD.
- Mean-squared displacement
- Log thermodynamic properties
- Query logged values from python
- Arbitrary analysis in python

### News

- 2016/3/6 - HOOMD-blue version 1.3.3 released
- 2016/2/8 - HOOMD-blue version 1.3.2 released
- 2016/1/14 - HOOMD-blue version 1.3.1 released
- 2015/12/8 - HOOMD-blue version 1.3.0 released