Skip to content

es 421 release notes

Jean-Noël Grad edited this page Jan 19, 2023 · 11 revisions

These are the draft release notes for ESPResSo 4.2.1 The release candidate pull request can be found here.

ESPResSo 4.2.1

This release provides a number of corrections for the ESPResSo 4.2 line.

Changed requirements

Improved documentation

  • The user guide now reflects that the lattice-Boltzmann profile observables work in parallel (#4583)

  • The active matter tutorial now uses an adequate engine dipole for the swimmer particle (#4585)

  • The error analysis tutorials have been improved (#4597)

  • The tutorials can now be used in VS Code Jupyter (both the desktop and web versions) and the mathematical formula are now correctly displayed (#4531)

  • All ESPResSo-specific CMake options are now documented in the installation chapter of the user guide (#4608)

  • Python package installation instructions no longer feature package version pinning; instead, requirements.txt is used as a constraint file (#4638).

  • Minor formatting issues in Sphinx and typos in Python docstrings were addressed (#4608)

Interface changes

  • A new boolean property System.virtual_sites.override_cutoff_check was introduced to allow disabling the cutoff range checks from virtual sites (#4623).

Removed functionality

  • The unused and untested Analysis.v_kappa() method was removed (#4534)

Improved testing

Performance enhancements

Bug fixes

  • The checkpointing mechanism now properly restores the particle quaternion and all derived quantities (#4637). Release 4.2.0 introduced a regression that caused checkpoint files to overwrite the particle quaternion/director by a unit vector pointing along the z direction, when the DIPOLES feature was part of the myconfig file. This lead to incorrect trajectories when reloading a simulation from a checkpoint file, if the particle director played a role in the simulation (ex: relative virtual sites, Gay-Berne potential, anisotropic particles, active particles, etc.). In addition, the angular velocity in body frame was restored with the wrong orientation. Since the default myconfig file contains DIPOLES, most ESPResSo users were affected.

  • The checkpointing mechanism now properly restores LB boundaries (#4649). Release 4.2.0 introduced a regression where reloading LB populations would accidentally reset LB boundary flags.

  • Brownian dynamics now integrates the rotational dynamics of rotatable particles whose position is fixed in 3D space (#4548).

  • Particles created without a user-specified type can now participate in reactions (#4589)

  • When a Monte Carlo displacement move is rejected, the original particle velocity is now restored (#4589)

  • Reaction methods now rebuild the list of free particle ids every time ReactionAlgorithm::do_reaction() and WidomInsertion::calculate_particle_insertion_potential_energy() are called (#4609). This is needed to allow multiple concurrent reactions, as well as avoiding subtle bugs when both the user and a reaction method tried to create a new particle with an id that used to belong to a deleted particle.

  • When all particles are cleared, the reaction methods type map is now also cleared (#4645). In the past, it was possible to attempt a reaction on particles that had just been cleared from the system, which would raise an exception. This bug affected all ESPResSo releases since 4.0.

  • The System.part.pairs() method now returns the correct particle pairs when particle ids aren't both contiguous and starting from 0 (#4628). The regression was introduced in release 4.2.0.

  • The auto-exclusions feature no longer adds spurious exclusions to particle ids in the range [1, distance] (#4654). This bug would potentially break the physics of the system and potentially raise an exception in a system with non-contiguous particle ids. This regression was introduced in release 2.2.0b.

  • The structure factor analysis code no longer double-counts particles when the same particle type is provided twice (#4534).

  • The minimal distance distribution analysis code no longer has an arbitrary cutoff distance when the simulation box is aperiodic (open boundaries); this would cause spurious artifacts to appear in the histogram at r = np.sum(system.box_l) when particles were further apart than this arbitrary distance (#4534).

  • The build system no longer silently ignores invalid external feature definitions in myconfig.hpp and CMake files (#4608). This issue would only affect feature developers, as well as users of very old compilers, and would lead to ESPResSo builds missing features.

  • The observable tests now longer rely on deprecated numpy options that were removed in numpy 1.24 (#4635)

  • Compilation and testsuite issues involving missing or incorrect feature guards were addressed (#4562, #4648).

Under the hood changes

  • The Clang 14 and AppleClang 14 compilers are now supported (#4601).

  • Several Clang 14 compiler diagnostics have been addressed (#4606).

  • The pypresso script now prints a warning when running with MCA binding policy "numa" on NUMA architectures that are not supported in singleton mode by Open MPI 4.x (#4607)

  • The config file generator has been rewritten to properly handle external features and compiler errors (#4608)

  • Security hardening for GitHub Workflows (#4577, #4638) and Codecov (#4600).