University of Michigan Logo

HOOMD-blue is a general-purpose particle simulation toolkit optimized for execution on both GPUs and CPUs. As a Python package, HOOMD-blue gives you the flexibility to create custom initialization routines, control simulation parameters, and perform in situ analysis.

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

import hoomd, hoomd.md
hoomd.context.initialize()
unitcell=hoomd.lattice.sc(a=2.0, type_name='A')
hoomd.init.create_lattice(unitcell=unitcell, n=10)
nl = hoomd.md.nlist.cell()
lj = hoomd.md.pair.lj(r_cut=3.0, nlist=nl)
lj.pair_coeff.set('A', 'A', epsilon=1.0, sigma=1.0)
all = hoomd.group.all();
hoomd.md.integrate.mode_standard(dt=0.005)
hoomd.md.integrate.langevin(group=all, kT=1.2, seed=4)
hoomd.run(10e3)

Fast GPU performance

On a single NVIDIA GPU, HOOMD-blue performs an order of magnitude faster than a multi-core CPU for typical simulations. Obtain faster time to solution, execute larger simulations than were previously possible, or increase job throughput.

Scalable

HOOMD-blue scales to thousands of GPUs on Summit, one of the the largest GPU accelerated supercomputers in the world. It runs just as efficiently from one to dozens of GPUs on smaller clusters like Comet (XSEDE), Bridges (XSEDE), or your local GPU cluster.

Flexible

HOOMD-blue supports a variety of Molecular Dynamics, Dissipative Particle Dynamics, active matter, and hard particle Monte Carlo simulation methods.


Hard particle Monte Carlo capabilities

Execution

  • Single CPU core
  • Single GPU
  • Many CPU cores
  • Many GPUs
  • Frenkel-Ladd free energy determination
  • Wall constraints (sphere, cylinder, plane)
  • Geometric cluster moves

Energy evaluation

  • Evaluate user-defined pairwise energy functions with runtime compiled code
  • Evaluate user-defined external energy functions with runtime compiled code

Shape classes

  • Spheres / disks
  • Union of spheres
  • Convex polygons
  • Convex spheropolygons
  • Simple polygons
  • Ellipsoids / ellipses
  • Convex polyhedra
  • Union of convex polyhedra
  • Convex spheropolyhedra
  • Faceted spheres
  • General polyhedra

Ensembles

  • NVT
  • NPT
  • Implicit depletants
  • Grand canonical ensemble
  • Gibbs ensemble

Analysis

  • Pressure sampling in NVT
  • Free volume

Molecular dynamics capabilities

Integrators

  • NVE, NVT, NPH, NPT
  • Langevin dynamics
  • Brownian dynamics
  • Berendsen thermostat
  • Dissipative Particle Dynamics (DPD)
  • FIRE energy minimization
  • Most integrators support orientation degrees of freedom

Rigid bodies

Combine particles together to form rigid bodies.

Pair potentials

  • Buckingham
  • CGCMM
  • DLVO
  • DPD
  • Lennard-Jones
  • Gaussian
  • Mie
  • Moliere
  • Morse
  • Reaction field
  • Yukawa
  • ZBL
  • User-defined (table)

Bond potentials

  • Harmonic
  • FENE
  • User-defined (table)
  • Special pair lj
  • Special pair coulomb 1-4

Angle potentials

  • Harmonic
  • CGCMM
  • cosine squared
  • User-defined (table)

Neighbor list algorithms

  • Cell list
  • Stencilled cell list
  • BVH - efficiently handle large particle sizes

Constraints

  • Sphere
  • Ellipsoid
  • Distance
  • Rigid body
  • One dimensional motion

Other forces

  • Active force
  • Multi-particle collision dynamics

Anisotropic potentials

  • Gay-berne
  • Dipole
  • DEM (faceted shapes)

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 electrostatics
  • PPPM with Debye screening

Dihedral potentials

  • Harmonic
  • OPLS
  • User-defined (table)

Improper potentials

  • Harmonic

External potentials

  • Periodic
  • Constant force
  • Electric field

Many-body potentials

  • EAM
  • Tersoff
  • square density

General features

Simulation box

  • 2D periodic
  • 3D periodic
  • Triclinic

Initialization

  • Place particles on a lattice
  • Read GSD input file
  • Read GETAR input file
  • From numpy arrays
  • Replicate periodic box

Output files

Extend HOOMD-blue

HOOMD-blue is open source. Fork the project and add new functionalities. Submit changes useful to the whole user community 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
  • Introduce flow with the Mueller/Plathe method

Analysis

  • Realtime visualization in VMD using IMD.
  • Mean-squared displacement
  • Log thermodynamic properties to text or HDF5
  • Query logged values from python
  • Arbitrary analysis in python
  • Execute inside Jupyter notebooks

Software that uses HOOMD-blue