ESPResSo 5.0.1 released

This release provides a number of corrections for the ESPResSo 5.0 line. We recommend that this release be used for all production simulations. The interface has not been changed between ESPResSo 5.0.0 and 5.0.1. However, some bugs were discovered which can affect simulation results.

Please find the list of changes below. The numbers in brackets refer to ticket numbers on https://github.com/espressomd/espresso

Get the source code in the Download area.

Bug fixes

  • The Lees-Edwards shear velocity is now properly handled in the simulation engine (#5282). A sign error was introduced in 5.0.0.
  • Electrokinetics unit conversion was fixed (#5304). This required introducing a new parameter tau to EKNone and EKFFT. In previous ESPResSo releases, the tau parameter was factored into the prefactor argument.
  • EK node and slice getters now return the imposed value for nodes with boundary conditions (#5327).
  • EK GPU and EK CPU objects can no longer be mixed in the same EK container (#5327).
  • Dihedral bonds checkpointing was fixed (#5279). A regression introduced in 5.0.0 prevented the checkpointing mechanism from reloading dihedral bonds.
  • Interpolation-based constraints built from a grid now properly check the input grid is larger than the simulation box (#5324). This prevents segmentation faults when the input grid is too small.
  • A few missing feature checks were added to particle property setters (#5326) and thermostat setters (#5320).
  • Features in the myconfig.hpp file are now evaluated transitively (#5297). All ESPResSo versions since 4.0.0 would only activate implied features up to one degree of separation, leading to inconsistent feature activation. For example, if feature A is requested in myconfig.hpp, and A depends on B, and B depends on C, only A and B would be activated. This issue can be encountered when a small number of high-level features are enabled in myconfig.hpp, for example requesting magnetodynamics would activate dipoles but not rotation, preventing ESPResSo from being compiled. Starting with release 5.0.1, the entire dependency tree is evaluated.
  • Missing feature guards in the short-range loop were added (#5274). Their absence prevented compiling ESPResSo in a build configured with -D ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM=ON and with a custom myconfig.hpp file containing a small number of features.
  • Configuring ESPResSo with -D ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM=ON no longer enables hardware-specific optimizations as a side-effect (#5286).
  • Floating-point exceptions (FPE) instrumentation is now temporarily disabled when calling third-party libraries known to raise FPE flags (#5286). In addition, user-requested hardware-specific optimization flags that introduce FPE as a side-effect of speculative execution are automatically disabled when FPE instrumentation is enabled.
  • A source of undefined behavior that would cause a double free when ESPResSo was built with the nvc++ compiler version up to and including 26.3 was resolved (#5302).
  • The VTK reader can now parse unstructured VTK files that contain boundaries (#5303).

Improved functionality

  • The Lees-Edwards boundary conditions restriction was lifted from the cluster analysis function (#4965).
  • The ELC error formula now follows the original paper and allows for ELC and ELCIC to tune to slightly larger summation limits (#5280).
  • The Electrokinetics EKNone solver is now available on the GPU (#5304).

Improved performance

  • The electrokinetics CPU kernels now support OpenMP (#5287).
  • The LB/EK GPU VTK writers now carry out a single CUDA memcopy per local domain (#5283). This removes a performance regression introduced in 5.0.0.
  • The EK indexed reactions now support slice assignment (#5325). This reduces the overhead of setting up indexed reactions on a GPU lattice.
  • The DPD pair force is now optimized for the standard ramps k=1 and k=2 (#5300).

Improved documentation

  • The user guide now better documents new features introduced in 5.0 (#5319, #5272).
  • A finite-size effect was removed from the GCMC tutorial (#5288).
  • The bibliography of the GCMC, Widom insertion, and TIP4P tutorials was improved (#5288).

Under the hood changes

  • A few harmless compiler diagnostics are now silenced (#5274, #5283, #5286).
  • NVHPC compiler toolchain support was improved (#5302, #5320).
  • The LB/EK GPU kernels are now compiled with OpenMP support (#5292).
  • Library hdf5 version 2.0 is now fully supported (#5296).
  • Library Kokkos is no longer built in-place with features deprecated in Kokkos version 4.0 (#5313).