Skip to content

Releases: glotzerlab/hoomd-blue

v3.0.1

08 Apr 17:44
27d465b
Compare
Choose a tag to compare

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
    comparing Tag filters with different lengths arrays.
  • Simulation.tps and Simulation.walltime update every step of the
    run.

v3.0.0

22 Mar 17:36
11d9b84
Compare
Choose a tag to compare

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 - Tune BoxMC 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 to U.
  • [breaking] Renamed the hoomd.md.pair.Table energy parameter from
    V to U.
  • [breaking] Renamed the hoomd.md.angle.Table energy parameter
    from V to U.
  • [breaking] Renamed the hoomd.md.dihedral.Table energy parameter
    from V to U.
  • [breaking] Renamed hoomd.md.nlist.Nlist to
    hoomd.md.nlist.NeighborList.
  • [developer] Updater and Analyzer in C++ have a m_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 calling Simulation.run.
  • Bug where using __iadd__ to certain attributes would fail with an
    exception.
  • Bug where hoomd.md.pair.LJ.additional_energy is NaN when
    tail_correction is enabled and some pairs have r_cut=0.
  • Compile error with CUDA 11.7.
  • Compile errors on native ubuntu 20.04 systems.
  • Compile errors with ENABLE_GPU=on and clang as a host compiler.

Removed

  • [developers] Removed IntegratorData class. It is replaced by
    structs that are defined in the integrator classes.
  • get_ordered_vertices from hoomd.md.pair.aniso.ALJ.
  • Removed optional coxeter dependency.
  • The limit parameter from hoomd.md.methods.NVE.
  • The limit parameter from hoomd.md.methods.rattle.NVE.
  • The diameter_shift parameter from hoomd.md.nlist.NeighborList.
  • The max_diameter parameter from hoomd.md.nlist.NeighborList.

v3.0.0-beta.14

18 Feb 11:11
34ec666
Compare
Choose a tag to compare

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 some ALJ 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 a matrix property use
    to_matrix and from_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.

v3.0.0-beta.13

18 Jan 12:43
64ffb60
Compare
Choose a tag to compare

Added

  • md.pair.ExpandedLJ - A Lennard-Jones potential where r is
    replaced with r-delta.
  • Support nested modification of operation parameters.
  • wall - Define wall surfaces in the simulation box.
  • md.external.wall - Pair interactions between particles and wall
    surfaces.
  • Communicator.walltime - the wall clock time since creating the
    Communicator.
  • hoomd.md.force.Custom - user defined forces in Python.

Changed

  • Call update_group_dof implicitly in set_snapshot, when changing
    integrators or integration methods, and on steps where
    FilterUpdater acts on the system.
  • [breaking] update_group_dof defers counting the degrees of
    freedom until the next timestep or the next call to
    Simulation.run.
  • [breaking] Renamed md.bond.FENE to md.bond.FENEWCA.
  • md.bond.FENEWCA takes a user provided delta parameter and
    ignores the particle diameters.
  • [breaking] md.pair.DLVO takes user provided a1 and a2
    parameters and ignores the particle diameters.
  • Removed invalid linker options when using gcc on Apple systems.
  • Removed the r_on attribute and default_r_on constructor argument
    from pair potentials that do not use it.

Fixed

  • Compile error with Apple clang clang-1300.0.29.30.
  • Incorrect OPLS dihedral forces when compiled with
    Apple clang clang-1300.0.29.30.

Deprecated

  • md.pair.SLJ - Replaced with md.pair.ExpandedLJ.

Removed

  • Leftover state logging category.

v3.0.0-beta.12

15 Dec 16:37
b47d093
Compare
Choose a tag to compare

Added

  • Support simulations with arbitrarily large or small scales (within
    the limits of the floating point representation).

Changed

  • Report full error details in the exception message.
  • Improved documentation.
  • [breaking]: buffer is now a required argument when constructing
    a neighbor list.
  • [breaking]: force_tol, angmom_tol, and energy_tol are now
    required arguments to md.minimize.FIRE

Fixed

  • Allow neighbor lists to store more than 2**32-1 total neighbors.
  • Return expected parameter values instead of NaN when potential
    parameters are set to 0.

v3.0.0-beta.11

18 Nov 10:39
Compare
Choose a tag to compare

Added

  • Support Python 3.10.
  • Support clang 13.

Changed

  • [developers] Place all all HOOMD C++ classes in the hoomd and
    nested namespaces.
  • [developers] Use official pre-commit clang-format repository.

v3.0.0-beta.10

25 Oct 14:05
Compare
Choose a tag to compare

Added

  • hoomd.md.minimize.FIRE - MD integrator that minimizes the
    system's potential energy.
  • Include example AKMA and MD unit conversion factors in the
    documentation.
  • BUILD_LLVM CMake option (defaults off) to enable features that
    require LLVM.
  • hoomd.hpmc.pair.user.CPPPotential - user-defined pair potentials
    between particles in HPMC.
  • hoomd.hpmc.pair.user.CPPPotentialUnion - user-defined site-site
    pair potentials between shapes in HPMC.
  • hoomd.hpmc.external.user.CPPExternalPotential - user-defined
    external potentials in HPMC.
  • Support user-defined pair potentials in HPMC on the GPU.

Changed

  • Improved documentation.
  • Improved error messages when setting operation parameters.
  • Noted some dependencies of dependecies for building documentation.
  • [devlopers] Removed m_comm from most classes. Use
    m_sysdef->isDomainDecomposed() instead.
  • Add support for LLVM 12
  • ENABLE_LLVM=on requires the clang development libraries.
  • [breaking] Renamed the Integrator attribute aniso to
    integrate_rotational_dof and removed the 'auto' option. Users
    must now explicitly choose integrate_rotational_dof=True to
    integrate the rotational degrees of freedom in the system.

Fixed

  • Calling hoomd.Operations.__len__ no longer raises a
    RecursionError.
  • RATTLE integration methods execute on the GPU.
  • Include EvaluatorPairDLVO.h in the installation for plugins.
  • Bug in setting zero sized ManagedArrays.
  • Kernel launch errors when one process uses different GPU devices.
  • Race condition that lead to incorrect simulations with
    md.pair.Table.
  • Bug where some particle filers would have 0 rotational degrees of
    freedom.

Removed

  • The BUILD_JIT CMake option.
  • Support for LLVM <= 9.

v3.0.0-beta.9

08 Sep 15:01
40fc7d6
Compare
Choose a tag to compare

Added

  • Communicator.num_partitions - the number of partitions in the
    communicator.
  • domain_decomposition argument to State factory methods - set the
    parameters of the MPI domain decomposition
  • State.domain_decomposition - number of domains in the x, y, and z
    directions in the domain decomposition.
  • State.domain_decomposition_split_fractions - the fractional
    positions of the split planes in the domain decomposition.
  • hoomd.update.FilterUpdater - an updater that evaluates the
    particles associated with a
    [hoomd.filter.ParticleFilter]{.title-ref} instance.
  • hoomd.update.RemoveDrift - Remove the average drift from a system
    restrained on a lattice.
  • Developer documentation for HOOMD-blue's Python object data model
    in ARCHITECTURE.md.
  • Autocomplete support for interactive notebooks.
  • hoomd.md.methods.OverdampedViscous - Overdamped integrator with a
    drag force but no random force .
  • MutabilityError exception when setting read-only operation
    parameters.

Changed

  • Improved documentation.
  • [breaking] Moved manifold_constrant to separate integration
    method classes in hoomd.md.methods.rattle.
  • [breaking] Moved trigger to first argument position in
    [hoomd.update.BoxResize]{.title-ref}, [hoomd.write.DCD]{.title-ref},
    and [hoomd.write.GSD]{.title-ref}.
  • [breaking] hoomd.data.LocalSnapshot particle data API now
    matches Snapshot. Changes to angular momentum, moment of intertia,
    and rigid body id attributes.
  • hoomd.write.CustomWriter now exposes action through the writer
    attribute.
  • [breaking] Active force rotational diffusion is managed by
    hoomd.md.update.ActiveRotationalDiffusion.

Fixed

  • TypeParameter can set multiple parameters after calling
    hoomd.Simulation.run.
  • tune.LoadBalancer can be used in a simulation.
  • hoomd.md.pair.Pair r_cut type parameter can be set to 0.
  • MD integration methods can be removed from the integrator's method
    list.
  • Neighborlist exclusions update when the number of bonds change.
  • Errors related to equality checks between HOOMD operations.
  • The integrator can be removed from a simulation after running.
  • hoomd.md.constrain.Rigid.create_bodies method correctly assigns
    the body attribute.
  • Setting rigid attribute of a MD integrator to None is allowed.

Deprecated

Removed

  • Snapshot.exists - use snapshot.communicator.rank == 0
  • State.snapshot - use get_snapshot and set_snapshot
  • The State.box property setter - use State.set_box

v3.0.0-beta.8

03 Aug 09:48
cfe7ca9
Compare
Choose a tag to compare

Added

  • Consistent documentation of parameter dimensions and units reference
    documentation.
  • md.update.ReversePerturbationFlow - implementation of
    mueller_plathe_flow from v2.
  • md.pair.ExpandedMie - Mie potential where r is replaced with
    r - delta.
  • md.pair.Table - Pair potential evaluated using the given tabulated
    values.
  • md.constrain.Distance - fix distances between pairs of particles.
  • hpmc.compute.SDF - compute the pressure of convex hard particle
    systems.
  • Snapshot.wrap() - wrap snapshot particles back into the box.
  • Support gcc11.
  • md.bond.Tether - A bond with minimum and maximum lengths.
  • State.get_snapshot and State.set_snapshot - methods to access
    the global snapshot.
  • State.set_box set a new simulation box without modifying particle
    properties.
  • md.long_range.pppm.make_pppm_coulomb_forces - Long range
    electrostatics evaluated by PPPM.
  • md.long_range.pppm.Coulomb - The reciprocal part of PPPM
    electrostatics.
  • md.force.ActiveOnManifold - Active forces constrained to
    manifolds.

Changed

  • Improved documentation.
  • [breaking] Constructor arguments that set a default value per type
    or pair of types now have default in their name (e.g. r_cut to
    default_r_cut for pair potentials and a to default_a for HPMC
    integrators).
  • [developer] Support git worktree checkouts.
  • [breaking] Rename nrank to ranks_per_partition in
    Communicator.
  • rowan is now an optional dependency when running unit tests.
  • Snapshot and Box methods that make in-place modifications return
    the object.

Fixed

  • Bug where ThermdynamicQuantities.volume returned 0 in 2D
    simulations.
  • Update neighbor list exclusions after the number of particles
    changes.
  • Test failures with the CMake option BUILD_MD=off.
  • write.Table can now display MD pressures.

Deprecated

  • State.snapshot - use get_snapshot and set_snapshot.
  • The ability to set boxes with the property State.box - use
    set_box.

Removed

  • [breaking] Simulation.write_debug_data.
  • [breaking] shared_msg_file option to Device. msg_file now
    has the same behavior as shared_msg_file.
  • [developers] C++ and Python implementations of
    constraint_ellipsoid, from hoomd.md.update and sphere and
    oneD from hoomd.md.constrain.
  • [developers] Doxygen configuration files.

v2.9.7

03 Aug 17:54
Compare
Choose a tag to compare

Bug fixes

  • Support CUDA 11.5. A bug in CUDA 11.4 may result in the error
    [__global__ function call is not configure]{.title-ref} when
    running HOOMD.