Releases: glotzerlab/hoomd-blue
v3.7.0
Added
Neighborlist.r_cut
sets the base cutoff radius for neighbor
search - for use when the neighbor list is used for analysis or
custom Python code.Neighborlist.cpu_local_nlist_arrays
provides zero-copy access to
the computed neighbor list.Neighborlist.gpu_local_nlist_arrays
provides zero-copy access to
the computed neighbor list.Neighborlist.local_pair_list
provides the rank local pair list by
index.Neighborlist.pair_list
provides the global pair list by tag on
rank 0.hoomd.md.dihedral.Periodic
- a new name for the previous
Harmonic
potential.default_gamma
anddefault_gamma_r
arguments to the
hoomd.md.methods
:Brownian
,Langevin
, andOverdampedViscous
.reservoir_energy
loggable inhoomd.md.methods.Langevin
.hoomd.md.force.Constant
applies constant forces and torques to
particles.
Changed
- [plugin developers] Refactored the
LocalDataAccess
C++ classes
to add flexibility.
Fixed
hoomd.hpmc.nec
integrators compute non-infinite virial pressures
for 2D simulations.- Raise an exception when attempting to get the shape specification of
shapes with 0 elements. - Box conversion error message now names
hoomd.Box
.
Deprecated
hoomd.md.dihedral.Harmonic
- use the functionally equivalent
hoomd.md.dihedral.Periodic
.charges
key inhoomd.md.constrain.Rigid.body
.diameters
key inhoomd.md.constrain.Rigid.body
.
v3.6.0
Changed
- In
hoomd.md.pair.aniso.ALJ
,shape.rounding_radii
now defaults to
(0.0, 0.0, 0.0). - Revise
hoomd.md.pair.aniso.ALJ
documentation. hoomd.md.force.Force
instances can now be added to the
Operations
list allowing users to compute force, torque, energy,
and virials of forces that are not included in the dynamics of the
system.- [developers]: Removed internal methods
_remove
and_add
from
the data model.
Fixed
- Increase the performance of
md.pair.Table
on the CPU. - Improve accuracy of
hoomd.hpmc.update.BoxMC
when used with patch
potentials. - Provide an accurate warning message when creating the state with
many bond/angle/... types. - Add missing documentation for
hoomd.md.methods.Berendsen
. - CVE-2007-4559
v3.5.0
Added
- Example plugin that demonstrates how to add a MD pair potential.
- Support a large number of particle and bond types (subject to
available GPU memory and user patience) for theCell
neighbor
list, MD pair potentials, MD bond potentials, Brownian, and Langevin
integration methods.
Changed
- Raise an error when initializing with duplicate types.
hpmc.compute.SDF
now computes pressures of systems with patch
interactions.- Raise descriptive error messages when the shared memory request
exceeds that available on the GPU.
Fixed
- Include all
Neighborlist
attributes in the documentation. - Memory allocation errors in C++ now result in
MemoryError
exceptions in Python. - Add missing
Autotuned.h
header file. - External components build correctly when
ENABLE_MPI=on
or
ENABLE_GPU=on
. - Type parameter validation when items contain
numpy.ndarray
elements. - Compile with CUDA 12.0.
Deprecated
Device.memory_traceback
attribute. This attribute has no effect.
v3.4.0
Added
- The new HOOMD-blue logo is now available in the documentation.
hoomd.md.methods.DisplacementCapped
class for relaxing
configurations with overlaps.hoomd.md.methods.rattle.DisplacementCapped
class for relaxing
configurations with overlaps.hoomd.device.Device.notice
- print user-defined messages to the
configured message output stream.- Tutorial: Modelling Rigid Bodies.
AutotunedObject
class that provides an interface to read and write
tuned kernel parameters, query whether tuning is complete, and start
tuning again at the object level.is_tuning_complete
method toOperations
. Check whether kernel
parameter tuning is complete for all operations.tune_kernel_parameters
methods toOperations
and many other
classes. Start tuning kernel parameters in all operations.hoomd.md.HalfStepHook
- extensible hook class called between step
1 and 2 of MD integration.hoomd.md.Integrator.half_step_hook
- property to get/set the half
step hook.
Fixed
- Active forces on manifolds now attach to the
Simulation
correctly. hoomd.update.FilterUpdater
now acceptshoomd.filter.CustomFilter
subclasses.- Correct error message is given when a sequence like parameter is not
given to a type parameter. - Fix non-axis-aligned Cylinder walls in MD.
hoomd.md.constrain.Constraint
now hashoomd.md.force.Force
as a
base class.- Provide a warning instead of an error when passing an out of range
seed to theSimulation
constructor. - Compile with current versions of HIP and ROCm.
- Compilation errors with CUDA >=11.8.
v3.3.0
Added
- A decorator that modifies the namespace of operation and custom
action classeshoomd.logging.modify_namespace
. - Tuner for the neighbor list buffer size
hoomd.md.tune.NeighborListBuffer
. - Solver infrastructure for optimization problems.
Simulation.initial_timestep
: the timestep on which the last call
torun
started.variant_like
,trigger_like
, andfilter_like
typing objects for
documentation.
Changed
- Removed
"__main__"
from some user custom action logging
namespaces.
Fixed
- Improve documentation.
- Non-default loggables can now be explicitly specified with
Logger.add
. - Iteration of
Logger
instances. - The logging category of
hoomd.md.Integrate.linear_momentum
v3.2.0
Added
hoomd.md.nlist.Neighborlist.num_builds
property - The number of
neighbor list builds since the last call toSimulation.run
.hoomd.md.nlist.Cell.dimensions
property - The dimensions of the
cell list.hoomd.md.nlist.Cell.allocated_particles_per_cell
property - The
number of particle slots allocated per cell.hoomd.mesh.Mesh
- Triangular mesh data structure.hoomd.md.mesh.bond
- Bond potentials on mesh edges.- Support gcc 12.
- Support clang 14.
- Set
ENABLE_LLVM=on
in conda binary builds.
Fixed
- Clarify documentation.
Box.dimension
reports the correct value when reading in 2D boxes
from GSD files generated in HOOMD v2.- Improve performance of run time compiled HPMC potentials on the CPU.
- Pressing Ctrl-C or interrupting the kernel in Jupyter stops the run
at the end of the current timestep.
v3.1.0
Added
- Support LLVM 13 when
ENABLE_LLVM=on
. hoomd.md.pair.LJGauss
- Lennard-Jones-Gaussian pair potential.hoomd.md.alchemy.methods.NVT
- Alchemical molecular dynamics
integration method.hoomd.md.alchemy.pair.LJGauss
- Lennard-Jones-Gaussian pair
potential with alchemical degrees of freedom.hoomd.hpmc.update.Shape
- Alchemical hard particle Monte Carlo
through shape change moves.hoomd.hpmc.shape_move.Elastic
- Shape move with elastic potential
energy penalty.hoomd.hpmc.shape_move.ShapeSpace
- Moves in a user defined shape
space.hoomd.hpmc.shape_move.Vertex
- Translate shape vertices.
Changed
- HPMC fugacity is now a per-type quantity.
- Improved documentation.
- [developers] Reduced the time needed for incremental builds.
- [developers] Reduced memory needed to compile HOOMD.
Fixed
- ALJ unit test passes in Debug builds.
- Add quotes to conda-forge gpu package installation example.
hoomd.md.force.Custom
zeroes forces, torques, energies, and
virials before callingset_forces
.- Point tarball download link to
https://github.com/glotzerlab/hoomd-blue/releases.
v3.0.1
Fixed:
- Display status of
trunk-patch
branch in the GitHub actions badge. - Add
EvaluatorPairTable.h
to installation directory. - Add
hoomd.filter.Rigid
to the documentation. - Prevent
TypeError: 'bool' object is not iterable
errors when
comparingTag
filters with different lengths arrays. Simulation.tps
andSimulation.walltime
update every step of the
run.
v3.0.0
Overview
HOOMD-blue v3.0.0 is the first production release with the new API that
has been developed and implemented over more than 2 years. Those still
using v2.x will need to make changes to their scripts to use v3. See the
[migrating]{.title-ref} page for an overview and individual class and
method documentation for more information. To summarize, the new API is
object oriented, allows HOOMD-blue to work effectively as a Python
package, and provides more hooks for Python code to directly interface
with the simulation.
New features in v3 since v2.9.7:
- Zero-copy data access through numpy and cupy.
- Triggers determine what timesteps operations execute on.
- User-defined operations, triggers, particle filters, variants, and
forces. - Logging subsystem supports array quantities.
- Implicit depletants for 2D shapes in HPMC.
- Harmonically mapped averaging for MD thermodynamic quantities of
crystals. - TWF and OPP pair potentials.
- Tether bond potential.
- Manifold constraints for MD integration methods (using RATTLE) and
active forces. - Document code architecture in
ARCHITECTURE.md
. - Overdamped viscous MD integration method.
- User-defined pair potentials work with HPMC on the GPU.
- Long range tail correction for Lennard-Jones potential.
- Anisotropic Lennard-Jones-like pair potential for polyhedra and
ellipsoids. - Newtownian event chain Monte Carlo for spheres and convex polyhedra.
See the full change log below for all v3 beta releases.
Changes from v3.0.0-beta.14:
Added
hoomd.hpmc.tune.BoxMCMoveSize
- TuneBoxMC
move sizes to meet
target acceptance ratios.hoomd.hpmc.nec.integrate.Sphere
- Newtonian event chain Monte
Carlo for hard spheres.hoomd.hpmc.nec.integrate.ConvexPolyhedron
- Newtonian event chain
Monte Carlo for hard convex polyhedra.hoomd.hpmc.nec.tune.ChainTime
- Tune chain times in newtonian
event chain Monte Carlo method.
Changed
- Improve documentation.
- [breaking] Renamed the
hoomd.md.bond.Table
energy parameter from
V
toU
. - [breaking] Renamed the
hoomd.md.pair.Table
energy parameter from
V
toU
. - [breaking] Renamed the
hoomd.md.angle.Table
energy parameter
fromV
toU
. - [breaking] Renamed the
hoomd.md.dihedral.Table
energy parameter
fromV
toU
. - [breaking] Renamed
hoomd.md.nlist.Nlist
to
hoomd.md.nlist.NeighborList
. - [developer]
Updater
andAnalyzer
in C++ have am_trigger
member now. - [developer]
_TriggeredOperation
has been moved to
TriggeredOperation
and custom trigger setting and getting logic
removed.
Fixed
FIRE.converged
may be queried before callingSimulation.run
.- Bug where using
__iadd__
to certain attributes would fail with an
exception. - Bug where
hoomd.md.pair.LJ.additional_energy
isNaN
when
tail_correction
is enabled and some pairs haver_cut=0
. - Compile error with CUDA 11.7.
- Compile errors on native ubuntu 20.04 systems.
- Compile errors with
ENABLE_GPU=on
andclang
as a host compiler.
Removed
- [developers] Removed
IntegratorData
class. It is replaced by
structs that are defined in the integrator classes. get_ordered_vertices
fromhoomd.md.pair.aniso.ALJ
.- Removed optional coxeter dependency.
- The
limit
parameter fromhoomd.md.methods.NVE
. - The
limit
parameter fromhoomd.md.methods.rattle.NVE
. - The
diameter_shift
parameter fromhoomd.md.nlist.NeighborList
. - The
max_diameter
parameter fromhoomd.md.nlist.NeighborList
.
v3.0.0-beta.14
Added
hoomd.hpmc.external.field.Harmonic
- harmonic potential of
particles to specific sites in the simulation box and orientations.- Support
cereal
1.3.1 - Guide on how to model molecular systems.
version.floating_point_precision
- Floating point width in bits
for the particle properties and local calculations.hoomd.md.pair.LJ.tail_correction
- Option to enable the isotropic
integrated long range tail correction.hoomd.md.Integrator.linear_momentum
- Compute the total system
linear momentum. Loggable.hoomd.md.bond.Table
- Tabulated bond potential.hoomd.md.angle.Table
- Tabulated angle potential.hoomd.md.dihedral.Table
- Tabulated dihedral potential.hoomd.md.improper.Harmonic
- Compute the harmonic improper
potential and forces.- Tutorial on Organizing and executing simulations.
- C++ and build system overview in
ARCHITECTURE.md
. hoomd.hpmc.external.wall
- Overlap checks between particles and
wall surfaces.hoomd.md.pair.ansio.ALJ
- an anisotropic Lennard-Jones-like pair
potential for polyhedra and ellipsoids.- New optional dependency:
coxeter
, needed for someALJ
methods.
Changed
- Support variant translational and rotational spring constants in
hoomd.hpmc.external.field.Harmonic
. - [breaking] Renamed
hoomd.md.angle.Cosinesq
to
hoomd.md.angle.CosineSquared
. - [breaking]
hoomd.Box
no longer has amatrix
property use
to_matrix
andfrom_matrix
.
Fixed
- Compilation errors on FreeBSD.
TypeError
when instantiating special pair forces.- Inconsistent state when using the
walls
setter of a
hoomd.md.external.wall.WallPotential
.
Removed
- [breaking] Removed
hoomd.md.pair.SLJ
potential and wall. Use
hoomd.md.pair.ExpandedLJ
. - [breaking]
hoomd.Box.lattice_vectors
property no longer exists.