HOOMD-blue¶
HOOMD-blue is a Python package that runs simulations of particle systems on CPUs and GPUs. 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. Many features are targeted at the soft matter research community, though the code is general and capable of many types of particle simulations.
Resources¶
GitHub Repository: Source code and issue tracker.
Citing HOOMD-blue: How to cite the code.
Installation guide: Instructions for installing HOOMD-blue binaries.
Compilation guide: Instructions for compiling HOOMD-blue.
HOOMD-blue discussion board: Ask the HOOMD-blue user community for help.
HOOMD-blue website: Additional information and publications.
HOOMD-blue benchmark scripts: Scripts to evaluate the performance of HOOMD-blue simulations.
HOOMD-blue validation tests: Scripts to validate that HOOMD-blue performs accurate simulations.
Example scripts¶
These examples demonstrate some of the Python API.
Hard particle Monte Carlo:
import hoomd
mc = hoomd.hpmc.integrate.ConvexPolyhedron()
mc.shape['octahedron'] = dict(vertices=[
(-0.5, 0, 0),
(0.5, 0, 0),
(0, -0.5, 0),
(0, 0.5, 0),
(0, 0, -0.5),
(0, 0, 0.5),
])
cpu = hoomd.device.CPU()
sim = hoomd.Simulation(device=cpu, seed=20)
sim.operations.integrator = mc
# The tutorial describes how to construct an initial configuration 'init.gsd'.
sim.create_state_from_gsd(filename='init.gsd')
sim.run(1e5)
Molecular dynamics:
import hoomd
cell = hoomd.md.nlist.Cell(buffer=0.4)
lj = hoomd.md.pair.LJ(nlist=cell)
lj.params[('A', 'A')] = dict(epsilon=1, sigma=1)
lj.r_cut[('A', 'A')] = 2.5
integrator = hoomd.md.Integrator(dt=0.005)
integrator.forces.append(lj)
bussi = hoomd.md.methods.thermostats.Bussi(kT=1.5)
nvt = hoomd.md.methods.ConstantVolume(filter=hoomd.filter.All(), thermostat=bussi)
integrator.methods.append(nvt)
gpu = hoomd.device.GPU()
sim = hoomd.Simulation(device=gpu)
sim.operations.integrator = integrator
# The tutorial describes how to construct an initial configuration 'init.gsd'.
sim.create_state_from_gsd(filename='init.gsd')
sim.state.thermalize_particle_momenta(filter=hoomd.filter.All(), kT=1.5)
sim.run(1e5)
Contents
- Getting started
- Tutorials
- How-to
- How to determine the most efficient device
- How to choose the neighbor list buffer distance
- How to model molecular systems
- How to continuously vary potential parameters
- How to apply arbitrary forces in MD
- How to minimize the potential energy of a system
- How to prevent particles from moving
- How to compute the free energy of solids
- How to apply arbitrary pair potentials in HPMC
- How to tune move sizes in multicomponent HPMC systems