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
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