Skip to content

Releases: glotzerlab/hoomd-blue

v4.2.0

20 Sep 17:15
4184da2
Compare
Choose a tag to compare

Fixed

  • Make HDF5Log example more visible (#1602).
  • Access valid GPU memory in hoomd.hpmc.update.Clusters (#1607).
  • Test suite passes on the ROCm GPU platform (#1607).
  • Provide an error message when using md.external.field.Periodic in 2D (#1603).
  • hoomd.write.GSD reports "File exists" in the exception description when using the 'xb' mode and the file exists (#1609).
  • Write small numbers correctly in hoomd.write.Table (#1617).
  • Make examples in hoomd.md.methods.NVE and hoomd.md.methods.DisplacementCapped more visible (#1601).

Added

  • Documentation page: "How to apply arbitrary forces in MD" (#1610).
  • Documentation page: "How to prevent particles from moving" (#1611).
  • Documentation page: "How to minimize the potential energy of a system" (#1614).
  • Documentation page: "How to continuously vary potential parameters" (#1612).
  • Documentation page: "How to determine the most efficient device" (#1616).
  • Documentation page: "How to choose the neighbor list buffer distance" (#1615).
  • Documentation page: "How to compute the free energy of solids" (#1613).
  • MPCD particle data is now available included in Snapshot (#1580).
  • Add variable parameters to hpmc.external.user.CPPExternalPotential (#1608).

Changed

  • Removed the unused ExternalFieldComposite.h and all the related ExternalFieldComposite* (#1604).

v4.1.0

07 Aug 18:59
9ec85d2
Compare
Choose a tag to compare

Fixed

  • Improved documentation (#1585).
  • Update mesh documentation (#1587).
  • Follow detailed balance in hoomd.hpmc.update.Shape (#1595).
  • pre-commit environment installs correctly on macos-arm64 (#1597).
  • Install all HPMC headers for use by plugins (#1573).
  • Bond potentials can now be implemented via external plugins (#1591).

Added

  • Tested example code snippets in select modules (#1574) (#1586).
  • hoomd.util.make_example_simulation - create an example Simulation object (#1574) (#1586).
  • hoomd.write.Burst now has a __len__ method (#1575).
  • Support clang 15 and 16 on Linux (#1593).
  • hoomd.write.HDF5Logger - write log quantities to HDF5 files (#1588).
  • default_gamma and default_gamma_r arguments to hoomd.md.methods.rattle.Brownian hoomd.md.methods.rattle.Langevin, and hoomd.md.methods.rattle.OverdampedViscous (#1589).

v4.0.1

27 Jun 19:54
b6e11b4
Compare
Choose a tag to compare

Fixed

  • Prevent ValueError: signal only works in main thread of the main interpreter when importing hoomd in a non-main thread (#1576).
  • The recommended conda install commands find the documented version (#1578).
  • CMake completes without error when HOOMD_GPU_PLATFORM=HIP (#1579).
  • Tests pass with GSD 3.0.0 installed (#1577).
  • Provide full CUDA error message when possible (#1581).
  • Notice level 4 gives additional GPU initialization details (#1581).
  • Show particle out of bounds error messages in exception description (#1581).

Changed

  • Package source in hoomd-x.y.z.tar.gz (previously hoomd-vx.y.z.tar.gz) (#1572).

v4.0.0

06 Jun 20:50
87c0509
Compare
Choose a tag to compare

Fixed

  • Fix error with MPI_Allreduce on OLCF Frontier (#1547).
  • Correct equations in virial pressure documentation (#1548).
  • Work around cases where Python's garbage collector fails to collect Operation objects (#1457).
  • Incorrect behavior with hpmc.external.user.CPPExternalPotential in MPI domain decomposition simulations (#1562).

Added

  • hoomd.md.ConstantVolume integration method (#1419).
  • hoomd.md.ConstantPressure integration method, implementing the Langevin piston barostat (#1419).
  • Thermostats in hoomd.md.methods.thermostats that work with ConstantVolume and ConstantPressure, including the new Bussi-Donadio-Parrinello thermostat (#1419).
  • hoomd.md.external.wall.Gaussian (#1499).
  • hoomd.write.GSD.maximum_write_buffer_size - Set the maximum size of the GSD write buffer (#1541).
  • hoomd.write.GSD.flush - flush the write buffer of an open GSD file (#1541).
  • On importing hoomd, install a SIGTERM handler that calls sys.exit(1) (#1541).
  • More descriptive error messages when calling Simulation.run (#1552).
  • hoomd.Snapshot.from_gsd_frame - convert a gsd.hoomd.Frame object to hoomd.Snapshot (#1559).
  • hoomd.device.NoticeFile - a file-like object that writes to hoomd.device.Device.notice (#1449).
  • hoomd.write.Burst - selective high-frequency frame writing to GSD files (#1543).
  • Support LLVM 16 (#1568).
  • More detailed status message for found CUDA libraries (#1566).

Changed

  • hoomd.md.constrain.Rigid no longer takes diameters or charges as keys in the body parameters. create_bodies method now takes an optional charges argument to set charges (#1350).
  • Control the precision with the CMake options HOOMD_LONGREAL_SIZE (default: 64) and HOOMD_SHORTREAL_SIZE (default: 32) (#355).
  • [developers] ShortReal and LongReal types enable mixed precision implementations (#355).
  • hoomd.md.constrain.Rigid now updates constituent particle types each step (#1440).
  • Moved hoomd.mesh.Mesh.triangles to hoomd.mesh.Mesh.triangulation (#1464).
  • hoomd.write.GSD does not write particles/diameter by default (#1266).
  • Updated tutorials to use HOOMD-blue v4 API, work with up to date releases of freud, gsd, and signac. Also make general improvements to the tutorials.
  • Document changes needed to migrate from v3 to v4 in the migration guide.
  • More descriptive error messages when calling Simulation.run (#1552).
  • Increase performance of hoomd.write.GSD (#1538).
  • Increase performance of hoomd.State.get_snapshot in serial (#1538).
  • hoomd.write.GSD.dynamic now allows fine grained control over individual particle fields (#1538).
  • No longer test with GCC 7-8, Python 3.6-3.7, or Clang 6-9) (#1544).
  • Improved error messages with NVRTC compiled code (#1567).

Deprecated

  • Scalar, Scalar2, Scalar3, and Scalar4 data types. Use LongReal[N] instead in new code (#355).
  • hoomd.Snapshot.from_gsd_snapshot - use hoomd.Snapshot.from_gsd_frame (#1559).

Removed

  • fix_cudart_rpath CMake macro (#1383).
  • ENABLE_MPI_CUDA CMake option (#1401).
  • Berendsen, NPH, NPT, NVE, NVT MD integration methods (#1419).
  • hoomd.write.GSD.log (#1480).
  • CMake option and compiler definition SINGLE_PRECISION (#355).
  • charges key in hoomd.md.constrain.Rigid.body (#1496).
  • diameter key in hoomd.md.constrain.Rigid.body. (#1496).
  • hoomd.md.dihedral.Harmonic. (#1496).
  • hoomd.device.GPU.memory_traceback parameter. (#1496).
  • hoomd.md.pair.aniso.Dipole.mode parameter. (#1496).
  • hoomd.md.pair.aniso.ALJ.mode parameter (#1496).
  • hoomd.md.pair.Gauss (#1499).
  • hoomd.md.external.wall.Gauss (#1499).
  • msg_file property and argument in hoomd.device.Device. (#1499).
  • The sdf attribute of hoomd.hpmc.compute.SDF - use sdf_compression (#1523).
  • alpha parameter and attribute in Langevin, BD, and OverdampedViscous integration methods (#1266).
  • needsDiameter and setDiameter API in C++ potential evaluators (#1266).

v3.11.0

14 Apr 17:16
ee8897a
Compare
Choose a tag to compare

Added:

  • hoomd.md.Integrator.validate_groups verifies that MD integration methods are applied to distinct subsets of the system and that those subsets consist of integrable particles (automatically called when attached) (#1466).

Changed:

  • hoomd.hpmc.compute.SDF computes pressures for systems of concave and non-monotonic patch interactions (#1391).
  • Reorganize documentation contents to fit in the sidebar, including landing pages for tutorials and how-to guides (#1526).

Fixed:

  • Improved readability of images in the documentation (#1521).
  • hoomd.write.Table now raises a meaningful error when given incorrect logger categories (#1510).
  • Correctly document the 1/2 scaling factor in the pairwise virial computation (#1525).
  • thermalize_particle_momenta now sets 0 velocity and angular momentum for rigid constituent particles (#1472).
  • Reduce likelihood of data corruption when writing GSD files (#1531).
  • Clarify migration process for hoomd.md.pair.ExpandedLJ (#1501).

Deprecated:

  • The sdf attribute of hoomd.hpmc.compute.SDF - use sdf_compression (#1391).

v3.10.0

14 Mar 18:33
fde69be
Compare
Choose a tag to compare

Added:

  • The message_filename property and argument to Device, CPU, and GPU to replace msg_file (#1497).
  • hoomd.md.pair.Gaussian to replace hoomd.md.pair.Gauss (#1497).
  • hoomd.md.pair.ExpandedGaussian - the expanded Gaussian pair force (#1493).
  • Guide: How to apply arbitrary pair potentials in HPMC (#1505).

Changed:

  • Use furo style for HTML documentation (#1498).

Fixed:

  • The hoomd.md.pair potentials ExpandedLJ, ExpandedMie, LJGauss, and TWF now shift V(r_cut) to 0 properly when mode == 'shift' (#1504).
  • Corrected errors in the pair potential documentation (#1504).
  • Note that the 'body' exclusion should be used with hoomd.md.constrain.Rigid (#1465).
  • Correctly identify the 'xyz' mode in hoomd.md.methods.NPH (#1509).

Deprecated:

  • The msg_file property and argument to Device, CPU, and GPU.
  • hoomd.md.pair.Gauss.

v3.9.0

15 Feb 18:57
d43142b
Compare
Choose a tag to compare

Added:

  • GPU code path for hoomd.update.BoxResize (#1462).
  • logger keyword argument and property to hoomd.write.GSD (#1481).

Changed:

  • Issue [FutureWarning]{.title-ref} warnings when using deprecated APIs (#1485).
  • Reformat the list of deprecated features. (#1490).
  • In simulations with rigid bodies, remove D degrees of freedom when the system is momentum conserving (#1467).

Fixed:

  • Compile without errors using hipcc and ROCM 5.1.0 (#1478).
  • Document that hoomd.md.force.Force can be added to Operations.computes (#1489).
  • hoomd.md.constrain.Rigid.create_bodies completes without segmentation faults when particle body tags are not -1 (#1476).
  • hoomd.hpmc.compute.FreeVolume computes the free area correctly in 2D simulations (#1473).

Deprecated:

  • Deprecate write.GSD log keyword argument and property in favor of logger (#1481).

v3.8.1

27 Jan 14:34
925a739
Compare
Choose a tag to compare

Fixed:

  • #1468:
    Conserve linear momentum in simulations using
    hoomd.md.constrain.Rigid on more than 1 MPI rank.

v3.8.0

12 Jan 18:20
0b4b6b5
Compare
Choose a tag to compare

Added

  • Support Python 3.11.
  • Support CUDA 11.8.
  • Support CUDA 12.0.0 final.

Fixed

  • Improve numerical stability of orientation quaternions when using
    hoomd.md.update.ActiveRotationalDiffusion
  • Reduced memory usage and fix spurious failures in test_nlist.py.
  • Avoid triggering TypeError("expected x and y to have same length")
    in hoomd.hpmc.compute.SDF.betaP.

Deprecated

  • The following integration methods are deprecated. Starting in
    v4.0.0, the same functionalities will be available via
    hoomd.md.methods.ConstantVolume/
    hoomd.md.methods.ConstantPressure with an appropriately chosen
    thermostat argument.
    • hoomd.md.methods.NVE
    • hoomd.md.methods.NVT
    • hoomd.md.methods.Berendsen
    • hoomd.md.methods.NPH
    • hoomd.md.methods.NPT

Removed

  • Support for CUDA 10.

v3.7.0

29 Nov 18:02
3539c5e
Compare
Choose a tag to compare

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 and default_gamma_r arguments to the
    hoomd.md.methods: Brownian, Langevin, and OverdampedViscous.
  • reservoir_energy loggable in hoomd.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 in hoomd.md.constrain.Rigid.body.
  • diameters key in hoomd.md.constrain.Rigid.body.