Changes made since 0.8.1 (to be released in 0.8.2)
Note: only major changes are listed here. See milestone:0.8.2 or the Timeline for a more exhaustive list.
New features
- Quantities that vary over time can now be specified easily in scripts with the variant.linear_interp command.
- Box resizing updater (update.box_resize) command that uses the time varying quantity command to grow or shrink the simulation box.
- Individual run() commands can be limited by wall-clock time
- Angle forces can now be specified
- Dihedral forces can now be specified
- Improper forces can now be specified
- 1-3 and 1-4 exclusions from the cutoff pair force can now be chosen
- New command line option: --minimize-cpu-usage cuts the CPU usage of HOOMD down to 10% of one CPU core while only decreasing overall performance by 10%
- Major changes have been made in the way HOOMD chooses the device on which to run (all require CUDA 2.2 or newer)
- there are now checks that an appropriate NVIDIA drivers is installed
- running without any command line options will now correctly revert to running on the CPU if no capable GPUs are installed
- when no gpu is explicitly specified, the default choice is now prioritized to choose the fastest GPU and one that is not attached to a display first
- new command line option: --ignore-display-gpu will prevent HOOMD from executing on any GPU attached to a display
- HOOMD now prints out a short description of the GPU(s) it is running on
- on linux, devices can be set to compute-exclusive mode and HOOMD will then automatically choose the first free GPU (see the documentation for details)
Bug/fixes small enhancements
- Default block size change to improve stability on compute 1.3 devices
- ULF workaround on GTX 280 now works with CUDA 2.2
- Standalone benchmark executables have been removed and replaced by in script benchmarking commands
- Block size tuning runs can now be performed automatically using the python API and results can be saved on the local machine
- Fixed a bug where GTX 280 bug workarounds were not properly applied in CUDA 2.2
- The time step read in from the XML file can now be optionally overwritten with a user-chosen one
- Added support for CUDA 2.2
- Fixed a bug where the WCA forces included in bond.fene had an improper cutoff
- Added support for a python callback to be executed periodically during a run()
- Removed demos from the hoomd downloads. These will be offered separately on the webpage now to keep the required download size small.
- documentation improvements
- Significantly increased performance of dual-GPU runs when build with CUDA 2.2 or newer
- Numerous stability and performance improvements
Changes made since 0.8.0 (released in 0.8.1)
Note: only major changes are listed here. See milestone:0.8.1 or the Timeline for a more exhaustive list.
New features
- Significant performance enhancements
- New build option for compiling on UMich CAC clusters: ENABLE_CAC_GPU_ID compiles HOOMD to read in the $CAC_GPU_ID environment variable and use it to determine which GPUs to execute on. No --gpu command line required in job scripts any more.
- Particles can now be assigned a non-unit mass
- init.reset() command added to allow for the creation of a looped series of simulations all in python
- dump.pdb() command for writing PDB files
- pair.lj now comes with an option to shift the potential energy to 0 at the cutoff
- pair.lj now comes with an opiton to smoothly switch both the potential and force to 0 at the cutoff with the XPLOR smoothing function
- Gaussian pair potential computation added (pair.gauss)
- update and analyze commands can now be given a function to determine a non-linear rate to run at
- analyze.log, and dump.dcd can now append to existing files
Changes that will break scripts from 0.8.0
- dump.mol2() has been changed to be more consistent with other dump commands. In order to get the same result as the previous behavior, replace
dump.mol2(filename="file.mol2")
withmol2 = dump.mol2() mol2.write(filename="file.mol2")
- Grouping commands have been moved to their own package for organizational purposes. group_all() must now be called as group.all() and similarly for tags and type.
Bug/fixes small enhancements
- Documentation updates
- DCD file writing no longer crashes HOOMD in windows
- FindBoost.cmake is patched upstream. Use CMake 2.6.3 if you need BOOST_ROOT to work correctly
- Validation tests now run with --gpu_error_checking
- ULF bug workarounds are now enabled only on hardware where they are needed. This boosts performance on C1060 and newer GPUs.
- FindPythonLibs now always finds the shared python libraries, if they exist
- "make package" now works fine on mac os x
- Fixed erroneously reported dangerous neighbor list builds when using --mode=cpu
- Small tweaks to the XML file format.
- Numerous performance enhancements
- Workaround for ULF on compute 1.1 devices in place
- dump.xml can now be given the option "all=true" to write all fields
- total momentum can now be logged by analyze.log
- HOOMD now compiles with boost 1.38 (and hopefully future versions)
- Updaters can now be given floating point periods such as 1e5
- Additional warnings are now printed when HOOMD is about to allocate a large amount of memory due to the specification of an extremely large box size
- run() now shows up in the documentation index
- Default sorter period is now 100 on CPUs to improve performance on chips with small caches