University of Michigan Logo

Latest stable release

Download: Source, Documentation

See the Installation Guide for system requirements and installation instructions. This download is CUDA-enabled to accelerate on GPUs.

Daily snapshots

Every morning, the latest development version is built and uploaded to downloads/daily. Download the latest version to test bleeding edge new features.

Releases

v1.0.0

Released 2014/05/25

Download: Source, Documentation

New features

  • Support for python 3
  • New NPT integrator capable of flexible coupling schemes
  • Triclinic unit cell support
  • MPI domain decomposition
  • Snapshot save/restore
  • Autotune block sizes at run time
  • Improve performance in small simulation boxes
  • Improve performance with smaller numbers of particles per GPU
  • Full double precision computations on the GPU (compile time option must be enabled, binary builds provided on the download page are single precision)
  • Tabulated bond potential bond.table
  • Tabulated angle potential angle.table
  • Tabulated dihedral potental dihedral.table
  • update.box_resize now accepts period=None to trigger an immediate update of the box without creating a periodic updater
  • update.box_resize now replaces None arguments with the current box parameters
  • init.create_random and init.create_random_polymers can now create random configurations in triclinc and 2D boxes
  • init.create_empty can now create triclinic boxes
  • particle, bond, angle, dihedral, and impropers types can now be named in init.create_empty
  • system.replicate command replicates the simulation box

Bug fixes

  • Fixed a bug where init.create_random_polymers failed when lx,ly,lz were not equal.
  • Fixed a bug in init.create_random_polymers and init.create_random where the separation radius was not accounted for correctly
  • Fixed a bug in bond.* where random crashes would occur when more than one bond type was defined
  • Fixed a bug where dump.dcd did not write the period to the file

Changes that may require updated job scripts

  • integrate.nph: A time scale tau p for the relaxation of the barostat is now required instead of the barostat mass W of the previous release.
    The time scale is the relaxation time the barostat would have at an average temperature T 0 =1, and it is related to the internally used (Andersen) Barostat mass W via W= d N T 0 tau 2 p, where d is the dimensionality and N the number of particles.
  • sorter and nlist are now modules, not variables in the main namespace.
  • Data proxies function correctly in MPI simulations, but are extremely slow. If you use init.create_empty, consider separating the generation step out to a single rank short execution that writes an XML file for the main run.
  • update.box_resize(Lx=...) no longer makes cubic box updates, instead it will keep the current Ly and Lz. Use the L=... shorthand for cubic box updates.
  • All init.** commands now take *data.boxdim objects, instead of hoomd.boxdim (or 3-tuples). We strongly encourage the use of explicit argument names for data.boxdim(). In particular, if hoomd.boxdim(123) was previously used to create a cubic box, it is now required to use data.boxdim(L=123) (CORRECT) instead of data.boxdim(123) (INCORRECT), otherwise a box with unit dimensions along the y and z axes will be created.
  • system.dimensions can no longer be set after initialization. System dimensions are now set during initialization via the data.boxdim interface. The dimensionality of the system can now be queried through system.box.
  • system.box no longer accepts 3-tuples. It takes data.boxdim objects.
  • system.dimensions no longer exists. Query the dimensionality of the system from system.box. Set the dimensionality of the system by passing an appropriate data.boxdim to an init method.
  • init.create_empty no longer accepts n_*_types. Instead, it now takes a list of strings to name the types.

Deprecated

  • Support for G80, G200 GPUs.
  • dump.bin and read.bin. These will be removed in v1.1 and replaced with a new binary format.

Removed

  • OpenMP mult-core execution (replaced with MPI domain decomposition)
  • tune.find_optimal_block_size (replaced by Autotuner)

v0.11.3

Released 2013/05/10

Download: Source, Documentation

Bug fixes

  • Fixed a bug where charge.pppm could not be used after init.reset()
  • Data proxies can now set body angular momentum before the first run()
  • Fixed a bug where PPPM forces were incorrect on the GPU

v0.11.2

Released 2012/12/19

Download: Source, Documentation

New features

  • Block sizes tuned for K20

Bug fixes

  • Warn user that PPPM ignores rigid body exclusions
  • Document that proxy iterators need to be deleted before init.reset()
  • Fixed a bug where body angular momentum could not be set
  • Fixed a bug where analyze.log would report nan for the pressure tensor in nve and nvt simulations

v0.11.1

Released 2012/11/2

Download: Source, Documentation

New features

  • Support for CUDA 5.0
  • Binary builds for Fedora 16 and OpenSUSE 12.1
  • Automatically specify /usr/bin/gcc to nvcc when the configured gcc is not supported

Bug fixes

  • Fixed a compile error with gcc 4.7
  • Fixed a bug where PPPM forces were incorrect with neighborlist exclusions
  • Fixed an issue where boost 1.50 and newer were not detected properly when BOOST_ROOT is set
  • Fixed a bug where accessing force data in python prevented init.reset() from working
  • Fixed a bug that prevented pair.external from logging energy
  • Fixed a unit test that failed randomly

v0.11.0

Released 2012/07/27

Download: Source, Documentation

New features

  1. Support for Kepler GPUs (GTX 680)
  2. NPH integration (*integrate.nph*)
  3. Compute full pressure tensor
  4. Example plugin for new bond potentials
  5. New syntax for bond coefficients: bond.bond_coeff.set('type', params)
  6. New external potential: external.periodic applies a periodic potential along one direction (uses include inducing lamellar phases in copolymer systems)
  7. Significant performance increases when running analyze.log, analyze.msd, update.box_resize, update.rescale_temp, or update.zero_momentum with a small period
  8. Command line options may now be overwritten by scripts, ex: options.set_gpu(2)
  9. Added --user command line option to allow user defined options to be passed into job scripts, ex: --user="-N=5 -phi=0.56"
  10. Added table.set_from_file method to enable reading table based pair potentials from a file
  11. Added --notice-level command line option to control how much extra information is printed during a run. Set to 0 to disable, or any value up to 10. At 10, verbose debugging information is printed.
  12. Added --msg-file command line option which redirects the message output to a file
  13. New pair potential pair.force_shifted_lj : Implements http://dx.doi.org/10.1063/1.3558787

Bug fixes

  1. Fixed a bug where FENE bonds were sometimes computed incorrectly
  2. Fixed a bug where pressure was computed incorrectly when using pair.dpd or pair.dpdlj
  3. Fixed a bug where using OpenMP and CUDA at the same time caused invalid memory accesses
  4. Fixed a bug where RPM packages did not work on systems where the CUDA toolkit was not installed
  5. Fixed a bug where rigid body velocities were not set from python
  6. Disabled OpenMP builds on Mac OS X. HOOMD-blue w/ openmp enabled crashes due to bugs in Apple's OpenMP implementation.
  7. Fixed a bug that allowed users to provide invalid rigid body data and cause a seg fault.
  8. Fixed a bug where using PPPM resulted in error messages on program exit.

API changes

  1. Bond potentials rewritten with template evaluators
  2. External potentials use template evaluators
  3. Complete rewrite of ParticleData - may break existing plugins
  4. Bond/Angle/Dihedral data structures rewritten
    1. The GPU specific data structures are now generated on the GPU
  5. DPDThermo and DPDLJThermo are now processed by the same template class
  6. Headers that cannot be included by nvcc now throw an error when they are
  7. CUDA 4.0 is the new minimum requirement
  8. Rewrote BoxDim to internally handle minimum image conventions
  9. HOOMD now only compiles ptx code for the newest architecture, this halves the executable file size
  10. New Messenger class for global control of messages printed to the screen / directed to a file.

Testing changes

  1. Automated test suite now performs tests on OpenMPI + CUDA builds
  2. Valgrind tests added back into automated test suite
  3. Added CPU test in bd_ridid_updater_tests
  4. ctest -S scripts can now set parallel makes (with cmake > 2.8.2)

Older versions

Older versions are archived in the HOOMD-blue git repository. Older change log entries are available in the project wiki