Particle Simulation Software
HOOMD-blue
I lead development of the open source software HOOMD-blue. HOOMD-blue is a general purpose particle simulation tool developed from the ground up for GPUs. It executes Molecular Dynamics simulations with a variety of force fields. Performance scales from a single GPU up to thousands of GPUs.
Jobs are defined and controlled with simple python scripts, which enables enormous flexibility:
import hoomd
import 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)
See the HOOMD-blue homepage for more information.
HPMC
I lead the development of a High Performance hard particle Monte Carlo (HPMC) component of HOOMD-blue. HPMC implements massively parallel updates for off-lattice Monte Carlo, generalized to 3D anisotropic particles in triclinic boxes. HPMC executes in parallel on many CPU cores, on a single GPU, and in parallel on many GPUs. It supports many particle shapes.
HPMC is available open source in HOOMD-blue v2.0.
- Sphere
- Ellipsoid
- Convex (sphero)polygon
- Simple polygon
- Convex (sphero)polyhedron
- General polyhedron
Visualization Software
Fresnel
I designed and implemented Fresnel, a python library that ray traces publication quality images in real time. There are many rendering tools available, but none have exactly all the features set that a soft matter researcher needs. fresnel provides GPU accelerated path tracing to display and interact with simulation output in real time with full publication quality rendering. Using a simple python interface, users can tie fresnel into their workflow easily. fresnel provides many types of geometry primitives for research visualization:
- Spheres
- Spherocylinders
- Convex polyhedra
Here is an example fresnel script and output:
import fresnel, numpy, PIL
data = numpy.load('spheres.npz')
scene = fresnel.Scene()
scene.lights = fresnel.light.cloudy()
geometry = fresnel.geometry.Sphere(
scene,
position = data['position'],
radius = 0.5,
outline_width = 0.1)
geometry.material = fresnel.material.Material(
color = fresnel.color.linear([0.1, 0.8, 0.1]),
roughness = 0.8,
specular = 0.2)
out = fresnel.pathtrace(scene,
samples=64,
light_samples=32,
w=500, h=500)
Analysis Software
Freud
Freud is a group effort in Glotzer group that I have contributed to. It is a collection of common data analysis tools written in C++ for performance and wrapped in python to enable flexible workflows through scripting. Here is a list of a few of the quantities Freud can compute:
- Radial distribution function
- Hexatic order parameter
- Spherical harmonic order parameters
- Particle clustering
GSD
I lead the development of GSD, which is available open source. GSD is a lightweight container file format designed for extremely efficient sequential and random access of named sequences of data arrays. It is the default file format for HOOMD-blue.