Skip to content

Releases: glotzerlab/hoomd-blue

v3.0.0-beta.7

16 Jun 12:55
6d1a7d8
Compare
Choose a tag to compare

Added

  • md.constrain.Rigid - Rigid body constraints.
  • dem_built, hpmc_built, md_built, and mpcd_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 because Simulation.run has not been called.
  • TypeConversionError is now in the hoomd.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 - use Snapshot.communicator.rank == 0 instead.

Removed

  • [developers] C++ implementations of rescale_temp and
    enforce2d.
  • [developers] Unused methods of Integrator.

v3.0.0-beta.6

18 May 12:19
Compare
Choose a tag to compare

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, and hoomd.md.Operations
    objects are now picklable.
  • Manifold constraints using RATTLE with md.methods.NVE,
    md.methods.Langevin and md.methods.Brownian
    • Supporting sphere, ellipsoid, plane, cylinder, gyroid, diamond,
      and primitive manifolds.
  • 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 using md.dihedral potentials.

Removed

  • C++ implemtation of v2 logging infrastructure.

v3.0.0-beta.5

23 Mar 12:35
Compare
Choose a tag to compare

Added

  • filter parameter to update.BoxResize - A ParticleFilter 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, and net_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 for active_force
    and active_torque.
  • create_state_from_snapshot accepts gsd.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

16 Mar 19:26
Compare
Choose a tag to compare

Bug fixes

  • Support TBB 2021.

v2.9.5

15 Mar 19:16
Compare
Choose a tag to compare

Bug fixes

  • Support macos-arm64.
  • Support TBB 2021.
  • Fix memory leak in PPPM.

v3.0.0-beta.4

16 Feb 16:37
Compare
Choose a tag to compare

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

05 Feb 12:24
Compare
Choose a tag to compare

Bug fixes

  • Support thrust 1.10
  • Support LLVM11
  • Fix Python syntax warnings
  • Fix compile errors with gcc 10

v3.0.0-beta.3

11 Jan 17:44
Compare
Choose a tag to compare

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
    a RuntimeError.
  • Attempting to set the state to a new snapshot in a local snapshot
    context manager will now raise a RuntimeError.

Fixed

  • hoomd.variant.Power objects now have a t_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

15 Dec 18:41
Compare
Choose a tag to compare

Added

  • Support pybind11 2.6.0
  • Exclusive creation file mode for write.GSD.
  • hpmc.update.BoxMC.
  • walltime and final_timestep loggable properties in Simulation.
  • Null particle filter.
  • Logging tutorial.

Changed

  • [breaking] Replace write.GSD argument overwrite with mode.
  • [breaking] Rename flags to categories in Logger
  • hoomd.snapshot.ConfigurationData.dimensions is not settable and is
    determined by the snapshot box. If box.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 a KeyboardInterrupt 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

15 Oct 19:12
Compare
Choose a tag to compare

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
    through mc.set_fugacity('type', fugacity).
  • Enable implicit depletants for two-dimensional shapes in hpmc.
  • jit.patch.user() and jit.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 the run 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 the python 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 to muvt.set_params())
  • The option implicit=True to hpmc.integrate.* is no longer
    available (use set_fugacity).
  • static parameter in dump.gsd
  • util.quiet_status and util.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 to md.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.