New features coming soon in HOOMD-blue v4 (and some breaking changes)

87 views
Skip to first unread message

Joshua Anderson

unread,
Mar 17, 2023, 11:35:26 AM3/17/23
to hoomd...@googlegroups.com
All,

I plan to release HOOMD-blue v4.0.0 soon (sometime after the coming 3.11 release).

* What is new in v4?

The Bussi-Donadio-Parrinello thermostat and Langevin piston barostat (thanks to contributor Martin Girard) will be new in v4. These will give you more options for rigorous temperature and pressure control and allow you to avoid some of the problems with the MTTK thermostat and undamped barostat in v3 (e.g. non-ergodic sampling in Frenkel-Ladd free energy computations).

* What changes do I need to make to my script?

You may not need to make any changes, depending on the features you use. At most, you will need to make minor changes only for the functionalities that have been improved. The majority of the v3 API will remain unchanged in v4!

The MD integration methods are now much more flexible, requiring a new syntax. For example, replace:
hoomd.md.methods.NVT(filter, kT, tau)
with
hoomd.md.methods.ConstantVolume(filter, thermostat=hoomd.md.methods.thermostats.MTTK(kT, tau))

v4 will also remove all classes, methods, and properties that were deprecated in v3. Run your script in the latest version (currently v3.10.0) and you will get FutureWarning notices about deprecated features you use. You can make many, but not all of the changes to your scripts now to prepare for v4.

For full details, see the v3 documentation on deprecated features: https://hoomd-blue.readthedocs.io/en/v3.10.0/deprecated.html
or the v4 migration guide (work in progress): https://hoomd-blue.readthedocs.io/en/trunk-major/migrating.html

* How can I use these new features now?

Build the `trunk-major` branch from source to test the current development version of v4. There will be no beta release binary builds before the v4.0.0 release.
------
Joshua A. Anderson, Ph.D.
Research Area Specialist, Chemical Engineering, University of Michigan

Chris Jones

unread,
Mar 17, 2023, 3:41:18 PM3/17/23
to hoomd-users
Hello Josh,

These changes sound exciting! Will the minimum supported Nvidia compute capability change in version 4? I believe in hoomd v3 the minimum is 6.0.

Thank you!

Chris

Joshua Anderson

unread,
Mar 20, 2023, 9:18:07 AM3/20/23
to hoomd...@googlegroups.com
Chris,

Good question. At this time, I do not expect to require a compute capability newer than 6.0 in the HOOMD v4.0.0 source. However, compute 6.0 hardware was new 7 years ago. If the opportunity arises, I will use compute 7.0 features to improve performance or usability in a future 4.x releases.
------
Joshua A. Anderson, Ph.D.
Research Area Specialist, Chemical Engineering, University of Michigan
--
You received this message because you are subscribed to the Google Groups "hoomd-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hoomd-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hoomd-users/3426e3b4-817f-403e-9af6-f7210166a952n%40googlegroups.com.

Joshua Anderson

unread,
May 19, 2023, 11:43:19 AM5/19/23
to hoomd...@googlegroups.com
All,

HOOMD-blue v4.0.0 will be released soon. See the full migration guide here https://hoomd-blue.readthedocs.io/en/trunk-major/migrating.html.

Since my earlier announcement, there are a few additional changes that may require modifications to your scripts. HOOMD-blue v3.11 does not warn you that these functionalities are deprecated.

hoomd.write.GSD no longer writes particles/diameter by default.

Set write_diameter as needed.

Removed the alpha property of hoomd.md.methods.Langevin, hoomd.md.methods.Brownian, hoomd.md.methods.OverdampedViscous, hoomd.md.methods.rattle.Langevin, hoomd.md.methods.rattle.Brownian, and hoomd.md.methods.rattle.OverdampedViscous.

Use the gamma property.

The dynamic property and argument of hoomd.write.GSD no longer enforces 'property' as an always dynamic quantity. Users must include 'property', 'particles/position' and/or 'particles/orientation' as needed in dynamic lists that contain other fields.

hoomd.write.GSD aggressively buffers output. Call hoomd.write.GSD.flush to write the buffer to disk when opening a file for reading that is still open for writing. There is no need to call flush in normal workflows when files are closed and then opened later for reading.
------
Joshua A. Anderson, Ph.D.
Research Area Specialist, Chemical Engineering, University of Michigan
Reply all
Reply to author
Forward
0 new messages