Latest stable release
- Mac OS X 10.6 dmg
- Ubuntu 12.04 amd64 deb
- Ubuntu 12.10 amd64 deb
- Fedora 18 x86_64 rpm
- OpenSUSE 12.2 x86_64 rpm
- Centos 6 x86_64 rpm
Every morning, the latest development version is built and uploaded to downloads/daily. Download the latest version to test bleeding edge 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
- 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.
- Support for G80, G200 GPUs.
- dump.bin and read.bin. These will be removed in v1.1 and replaced with a new binary format.
- OpenMP mult-core execution (replaced with MPI domain decomposition)
- tune.find_optimal_block_size (replaced by Autotuner)
- 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
- Block sizes tuned for K20
- 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
- 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
- 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
- Support for Kepler GPUs (GTX 680)
- NPH integration (*integrate.nph*)
- Compute full pressure tensor
- Example plugin for new bond potentials
- New syntax for bond coefficients: bond.bond_coeff.set('type', params)
- New external potential: external.periodic applies a periodic potential along one direction (uses include inducing lamellar phases in copolymer systems)
- Significant performance increases when running analyze.log, analyze.msd, update.box_resize, update.rescale_temp, or update.zero_momentum with a small period
- Command line options may now be overwritten by scripts, ex: options.set_gpu(2)
- Added --user command line option to allow user defined options to be passed into job scripts, ex: --user="-N=5 -phi=0.56"
- Added table.set_from_file method to enable reading table based pair potentials from a file
- 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.
- Added --msg-file command line option which redirects the message output to a file
- New pair potential pair.force_shifted_lj : Implements http://dx.doi.org/10.1063/1.3558787
- Fixed a bug where FENE bonds were sometimes computed incorrectly
- Fixed a bug where pressure was computed incorrectly when using pair.dpd or pair.dpdlj
- Fixed a bug where using OpenMP and CUDA at the same time caused invalid memory accesses
- Fixed a bug where RPM packages did not work on systems where the CUDA toolkit was not installed
- Fixed a bug where rigid body velocities were not set from python
- Disabled OpenMP builds on Mac OS X. HOOMD-blue w/ openmp enabled crashes due to bugs in Apple's OpenMP implementation.
- Fixed a bug that allowed users to provide invalid rigid body data and cause a seg fault.
- Fixed a bug where using PPPM resulted in error messages on program exit.
- Bond potentials rewritten with template evaluators
- External potentials use template evaluators
- Complete rewrite of ParticleData - may break existing plugins
- Bond/Angle/Dihedral data structures rewritten
- The GPU specific data structures are now generated on the GPU
- DPDThermo and DPDLJThermo are now processed by the same template class
- Headers that cannot be included by nvcc now throw an error when they are
- CUDA 4.0 is the new minimum requirement
- Rewrote BoxDim to internally handle minimum image conventions
- HOOMD now only compiles ptx code for the newest architecture, this halves the executable file size
- New Messenger class for global control of messages printed to the screen / directed to a file.
- Automated test suite now performs tests on OpenMPI + CUDA builds
- Valgrind tests added back into automated test suite
- Added CPU test in bd_ridid_updater_tests
- ctest -S scripts can now set parallel makes (with cmake > 2.8.2)
Older versions are archived in the HOOMD-blue git repository. Older change log entries are available in the project wiki