Releases: glotzerlab/hoomd-blue
Releases · glotzerlab/hoomd-blue
v3.0.0-beta.7
Added
md.constrain.Rigid
- Rigid body constraints.dem_built
,hpmc_built
,md_built
, andmpcd_built
to
hoomd.version
- flags that indicate when optional submodules have
been built.GPU.compute_capability
property.- [developers] pre-commit enforced style guidelines for the
codebase. - [developers] Validation tests for MD Lennard-Jones simulations.
- [developers] Unit tests for bond, angle, and dihedral potentials.
Changed
- Improved documentation on compiling HOOMD.
- Operations raise a
DataAccessError
when accessing properties that
are not available becauseSimulation.run
has not been called. TypeConversionError
is now in thehoomd.error
package.from_gsd_snapshot
only accesses the GSD snapshot on MPI rank 0.
Fixed
- Some broken references in the documentation.
- Missing documentation for
md.pair.TWF
. - Inconsistent documentation in
md.pair
. - Correctly identify GPUs by ID in
GPU.devices
. - Don't initialize contexts on extra GPUs on MPI ranks.
- Support 2D inputs in
from_gsd_snapshot
.
Deprecated
Snapshot.exists
- useSnapshot.communicator.rank == 0
instead.
Removed
- [developers] C++ implementations of
rescale_temp
and
enforce2d
. - [developers] Unused methods of
Integrator
.
v3.0.0-beta.6
Added
md.pair.LJ0804
- 8,4 Lennard-Jones pair potential.md.nlist.Stencil
- Stencil algorithm to generate neighbor lists.md.nlist.Tree
- BVH algorithm to generate neighbor lists.hoomd.md.Force
,hoomd.md.Operation
, andhoomd.md.Operations
objects are now picklable.- Manifold constraints using RATTLE with
md.methods.NVE
,
md.methods.Langevin
andmd.methods.Brownian
- Supporting sphere, ellipsoid, plane, cylinder, gyroid, diamond,
and primitive manifolds.
- Supporting sphere, ellipsoid, plane, cylinder, gyroid, diamond,
md.compute.HarmonicAveragedThermodynamicQuantities
- More accurate
thermodynamic quantities for crystals
Changed
- Raise an exception when initializing systems with invalid particle
type ids.
Fixed
- Setting the operations attribute in
Simulation
objects in specific
circumstances. - Misc documentation updates.
'sim' is not defined
error when usingmd.dihedral
potentials.
Removed
- C++ implemtation of v2 logging infrastructure.
v3.0.0-beta.5
Added
filter
parameter toupdate.BoxResize
- AParticleFilter
that
identifies the particles to scale with the box.Simulation.seed
- one place to set random number seeds for all
operations.net_force
,net_torque
, andnet_energy
per-particle arrays in
local snapshots.- Support
hpmc.update.Clusters
on the GPU. hpmc.update.MuVT
- Gibbs ensemble simulations with HPMC.md.update.ZeroMomentum
- Remove linear momentum from the system.hpmc.compute.FreeVolume
- Compute free volume available to test
particles.- Custom action tutorials.
Changed
- [breaking] Removed the parameter
scale_particles
in
update.BoxResize
- [internal] Modified signature of
data.typeconverter.OnlyTypes
- Remove use of deprecated numpy APIs.
- Added more details to the migration guide.
- Support timestep values in the range [0,2**64-1].
- [breaking] Removed seed argument from
State.thermalize_particle_momenta
- [breaking] Removed seed argument from
md.methods.NVT.thermalize_thermostat_dof
- [breaking] Removed seed argument from
md.methods.NPT.thermalize_thermostat_and_barostat_dof
- [breaking] Removed seed argument from
md.methods.NPH.thermalize_barostat_dof
- [breaking] Removed seed argument from
md.methods.Langevin
- [breaking] Removed seed argument from
md.methods.Brownian
- [breaking] Removed seed argument from
md.force.Active
- [breaking] Removed seed argument from
md.pair.DPD
- [breaking] Removed seed argument from
md.pair.DPDLJ
- [breaking] Removed seed argument from all HPMC integrators.
- [breaking] Removed seed argument from
hpmc.update.Clusters
- [breaking] Removed seed argument from
hpmc.update.BoxMC
- [breaking] Removed seed argument from
hpmc.update.QuickCompress
- Use latest version of getar library.
- Improve documentation.
- Improve performance of
md.pair.Mie
. - [breaking]
hpmc.update.Clusters
re-implemented with a rejection
free, but not ergodic, algorithm for anisotropic particles. The new
algorithm does not run in parallel over MPI ranks. - [breaking] HPMC depletion algorithm rewritten.
- [breaking, temporary] HPMC depletant fugacity is now set for type
pairs. This change will be reverted in a future release. - Tutorials require fresnel 0.13.
- Support TBB 2021.
Fixed
- Install
ParticleFilter
header files for external plugins. md.force.Active
keeps floating point values set foractive_force
andactive_torque
.create_state_from_snapshot
acceptsgsd.hoomd.Snapshot
objects
without error.- HOOMD compiles on Apple silicon macOS systems.
- Memory leak in PPPM force compute.
- Segmentation fault that occurred when dumping GSD shapes for
spheropolygons and spheropolyhedra with 0 vertices. - Incorrect MD neighbor lists in MPI simulations with more than 1
rank. md.bond.FENE
accepts parameters.
Removed
- Testing with CUDA 9, GCC 4.8, GCC 5.x, GCC 6.x, clang 5
v2.9.6
v2.9.5
v3.0.0-beta.4
Added
hoomd.write.DCD
- DCD trajectory writer.hoomd.md.many_body
- RevCross, SquareDensity, and Tersoff triplet
potentials.hoomd.md.methods.Berendsen
- Berendsen integration method.hoomd.md.methods.NPH
- Constant pressure constant enthalpy
integration method.hoomd.md.pair.TWF
- Potential for modeling globular proteins by
Pieter Rein ten Wolde and Daan Frenkel.- Custom particle filters in Python via
hoomd.filter.CustomFilter
.
Changed
- Documentation improvements.
Fixed
- Correctly determine the maximum
r_cut
in simulations with more
than one pair potential and more than one type.
v2.9.4
v3.0.0-beta.3
Added
hoomd.variant.Variant
objects are picklable.hoomd.filter.ParticleFilter
objects are picklable.hoomd.trigger.Trigger
objects are picklable.hoomd.Snapshot.from_gsd_snapshot
- Convert GSD snapshots to HOOMD.hoomd.md.pair.aniso.GayBerne
- Uniaxial ellipsoid pair potential.hoomd.md.pair.aniso.Dipole
- Dipole pair potential.hoomd.md.pair.OPP
- Oscillating pair potential.
Changed
- Improved compilation docs.
- Box equality checking now returns
NotImplemented
for
non-hoomd.Box
objects. Simulation.create_state_from_snapshot
now accepts
gsd.hoomd.Snapshot
objects.- Attempting to run in a local snapshot context manager will now raise
aRuntimeError
. - Attempting to set the state to a new snapshot in a local snapshot
context manager will now raise aRuntimeError
.
Fixed
hoomd.variant.Power
objects now have at_ramp
attribute as
documented.- Enable memory buffers larger than 2-4 GiB.
- Correctly write large image flags to GSD files.
- Support more than 26 default type names.
- Correctly represent fractional degrees of freedom.
- Compute the minimum image in double precision.
v3.0.0-beta.2
Added
- Support pybind11 2.6.0
- Exclusive creation file mode for
write.GSD
. hpmc.update.BoxMC
.walltime
andfinal_timestep
loggable properties inSimulation
.Null
particle filter.- Logging tutorial.
Changed
- [breaking] Replace
write.GSD
argumentoverwrite
withmode
. - [breaking] Rename
flags
tocategories
inLogger
hoomd.snapshot.ConfigurationData.dimensions
is not settable and is
determined by the snapshot box. Ifbox.Lz == 0
, the dimensions are
2 otherwise 3.- Building from source requires a C++14 compatible compiler.
- Improved documentation.
hpmc.integrate.FacetedEllipsoid
's shape specification now has a
default origin of (0, 0, 0).- Document loggable quantities in property docstrings.
- Skip GPU tests when no GPU is present.
write.Table
writes integers with integer formatting.
Fixed
Simulation.run
now ends with aKeyboardInterrupt
exception when
Jupyter interrupts the kernel.- Logging the state of specific objects with nested attributes.
- Broken relative RPATHs.
- Add missing documentation for
version.version
- Error when removing specific operations from a simulation's
operations attribute. - Find CUDA libraries on additional Linux distributions.
hpmc.update.Clusters
now works with all HPMC integrators.Simulation.timestep
reports the correct value when analyzers are
called.Logger
names quantities with the documented namespace name.
v3.0.0-beta.1
Overview
v3 has a completely new Python API. See the tutorials, migration guide
and new API documentation learn about it. The API documentation serves
as the complete list of all features currently implemented in
v3.0.0-beta.1. Not all features in v2 have been ported in v3.0.0-beta.1.
Future beta releases will add additional functionality.
Added
- Zero-copy data access through numpy (CPU) and cupy (GPU).
- User-defined operations in Python.
- User-defined triggers determine what time steps operations execute
on. - New logging subsystem supports array quantities and binary log
files. - Implicit depletants are now supported by any hpmc integrator
throughmc.set_fugacity('type', fugacity)
. - Enable implicit depletants for two-dimensional shapes in hpmc.
jit.patch.user()
andjit.patch.user_union()
now support GPUs via
NVRTC.- Add harmonically mapped averaging.
- Add Visual Studio Code workspace
Changed
- The
run
method has minimal overhead - All loggable quantities are directly accessible as object
properties. - Operation parameters are always synchronized.
- Operations can be instantiated without a device or MPI communicator.
- Writers write output for
step+1
at the bottom of therun
loop. - HOOMD writes minimal output to stdout/stderr by default.
- CMake >=3.9, cereal, eigen, and pybind11 are required to
compile HOOMD. - Plugins must be updated to build against v3.
- By default, HOOMD installs to the
site-packages
directory
associated with thepython
executable given, which may be inside a
virtual environment. - Refactored CMake code.
git submodule update
no longer runs when during CMake
configuration.- Use
random123
library for implicit depletants in hpmc. - HOOMD requires a GPU that supports concurrent managed memory access
(Pascal or newer).
Bug fixes
- Improved accuracy of DLVO potential on the GPU.
- Improved performance of HPMC simulations on the CPU in non-cubic
boxes.
Removed
- HOOMD-blue no longer parses command line options.
- Type swap moves in
hpmc.update.muvt()
are no longer supported
(transfer_ratio
option tomuvt.set_params()
) - The option
implicit=True
tohpmc.integrate.*
is no longer
available (useset_fugacity
). static
parameter indump.gsd
util.quiet_status
andutil.unquiet_status
.deprecated.analyze.msd
.deprecated.dump.xml
.deprecated.dump.pos
.deprecated.init.read_xml
.deprecated.init.create_random
.deprecated.init.create_random_polymers
.- hpmc
ignore_overlaps
parameter. - hpmc
sphere_union::max_members
parameter. - hpmc
convex_polyhedron_union
. - hpmc
setup_pos_writer
method. - hpmc
depletant_mode='circumsphere'
. - hpmc
max_verts
parameter. - hpmc
depletant_mode
parameter. - hpmc
ntrial
parameter. - hpmc
implicit
boolean parameter. group
parameter tomd.integrate.mode_minimize_fire
cgcmm.angle.cgcmm
cgcmm.pair.cgcmm
COPY_HEADERS
CMake option.- Many other python modules have been removed or re-implemented with
new names. See the migration guide and new API documentation for a
complete list.