Hoomd Blue Versions Save

Molecular dynamics and Monte Carlo soft matter simulation on GPUs.

v4.6.0

1 month ago

Fixed

  • create_state_from_gsd reads bond/angle/dihedral/improper/pair types when there are no corresponding groups (#1729).

Added

  • hoomd.variant.box.BoxVariant - Describe boxes that change as a function of timestep (#1685).
  • hoomd.variant.box.Constant - A constant box (#1685).
  • hoomd.variant.box.Interpolate - Linearly interpolate between two boxes (#1685).
  • hoomd.variant.box.InverseVolumeRamp - Linearly ramp the inverse volume of the system (#1685).
  • hoomd.hpmc.update.QuickCompress now accepts a hoomd.variant.box.BoxVariant object for [target_box]{.title-ref} (#1736).
  • box argument to hoomd.update.BoxResize that accepts a hoomd.variant.box.BoxVariant (#1740).
  • hoomd.hpmc.pair.Union computes pair potentials between unions of points. Replaces CPPPotentialUnion (#1725).
  • hoomd.hpmc.pair.Step - A step function potential (#1732).
  • hoomd.hpmc.pair.AngularStep - Angular patches on particles with step function interactions (e.g. Kern-Frenkel) (#1728).

Changed

  • Use FindPython on modern CMake installations. You may need to adjust build scripts in cases where the new behavior does not exactly match the old (i.e. use -DPython_EXECUTABLE in place of -DPYTHON_EXECUTABLE) (#1730).
  • External components must switch from pybind11_add_module to hoomd_add_module (#1730).

Deprecated

  • box1, box2, and variant arguments to hoomd.update.BoxResize (#1740).

v4.5.0

3 months ago

Fixed

  • hoomd.hpmc.update.Shape properly restores shape alchemy parameters on rejected trial moves (#1696).
  • hoomd.hpmc.update.Shape now functions with hoomd.device.GPU (#1696).
  • hoomd.hpmc.update.MuVT applies external potentials (#1711).
  • hoomd.hpmc.update.QuickCompress can now reshape boxes with tilt factors <= 0 (#1709).

Added

  • Improve component build documentation and link to the hoomd-component-template repository (#1668).
  • hoomd.md.improper.Periodic - CHARMM-like periodic improper potential (#1662).
  • allow_unsafe_resize flag to hoomd.hpmc.update.QuickCompress (#1678).
  • hoomd.error.GPUNotAvailableError (#1694).
  • HPMC compile time pair potential framework (CPU only). Allows potential energy in HPMC simulations without CPPPotential.
    • hoomd.hpmc.pair.LennardJones - Evaluate Lennard Jones energy between particles (#1676).
    • HPMCIntegrator.pair_potentials - Set a list of pair potentials to evaluate (#1676).
    • HPMCIntegrator.pair_energy (loggable) - Total pair energy from all pair potentials. (#1676).

Deprecated

  • _InternalCustomUpdater.update. (#1692).
  • _InternalCustomTuner.tune. (#1692).
  • _InternalCustomWriter.write. (#1692).
  • HDF5Log.write. (#1692).
  • hoomd.util.GPUNotAvailableError (#1694).
  • hoomd.hpmc.pair.user.CPPPotentialBase (#1676).
  • hoomd.hpmc.pair.user.CPPPotential - Use a built-in potential or compile your code in a component (#1676).
  • hoomd.hpmc.pair.user.CPPPotentialUnion - Use a built-in potential or compile your code in a component (#1676).
  • HPMCIntegrator.pair_potential - Use compiled potentials with pair_potentials (#1676).

Changed

  • Refactored the C++ API for PatchEnergy potentials (#1676).
  • Removed unused Operation._children methods (#1713).

v4.4.1

4 months ago

Fixed

  • Correct net_virial values in local snapshots (#1672).
  • Improve HPMC performance on the CPU when using a pair potential (#1679).
  • Improve HPMC performance with 3D hard shapes (#1679).
  • Improve HPMC performance on the CPU (#1687).

Changed

  • Provide support via GitHub discussions (#1671).

v4.4.0

5 months ago

Added

  • hoomd.md.external.field.Magnetic computes forces and torques on particles from an external magnetic field (#1637).
  • Tutorial on placing barriers (hoomd-examples/#111).

Fixed

  • Use mpirun specific local ranks to select GPUs before checking SLURM_LOCALID (#1647).
  • Fix typographical errors in RevCross documentation (#1642).
  • Use standards compliant thrust::get (#1660).

Changed

  • Removed unused code (#1646).
  • No longer issue a warning when hoomd.md.Integrator is used without an integration method (#1659).
  • Increase performance of Force.forces, Force.torques, Force.energies, and Force.virials (#1654).

Deprecated

  • num_cpu_threads > 1. Use num_cpu_threads = 1 (#1656).
  • HPMCIntegrator.depletant_fugacity > 0 (#1657).

v4.3.0

6 months ago

Fixed

  • md.alchemy.methods.NVT now evolves the elements provided in alchemical_dof (#1633).
  • More consistent notice messages regarding MPI ranks used in GPU selection (#1635).
  • hoomd.hpmc.compute.SDF computes correct pressures with patchy potentials. (#1636).

Added

  • Support GCC 13 (#1634).
  • Support Python 3.12 (#1634).
  • tau parameter to hoomd.md.methods.thermostats.Bussi (#1619).

Changed

  • Revise class documentation. (#1628).
  • Add more code snippets to the class documentation (#1628).

v4.2.1

7 months ago

Fixed

  • hoomd.write.Table correctly displays floating point values that are exactly 0.0 (#1625).
  • hoomd.write.HDF5Log defaults to "f8" formatting except when the value is an [int]{.title-ref}, or a [numpy.number]{.title-ref} (#1620).
  • Attempt to workaround PMI_Init returned 1 error on OLCF Frontier (#1629).
  • Apple clang 15 compiles HOOMD-blue without errors (#1626).

v4.2.0

7 months ago

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

9 months ago

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

10 months ago

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

11 months ago

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).