-
Notifications
You must be signed in to change notification settings - Fork 189
es 421 release notes
These are the draft release notes for ESPResSo 4.2.1 The release candidate pull request can be found here.
This release provides a number of corrections for the ESPResSo 4.2 line.
-
P3M and DipolarP3M can now be used with the hybrid decomposition cell system with 1 MPI node (#4678)
-
Lattice-Boltzmann can now be used with the N-square and hybrid decomposition cell systems for more than 1 MPI node (#4676)
- The nbconvert version requirement was bumped to 6.5.1 to patch an XSS vulnerability (#4658).
-
The user guide now documents how to improve the reproducibility of simulations that have checkpointing enabled (#4677)
-
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). -
MMM1D algorithms now properly document their parameter names (#4677)
-
Reaction methods now cite the relevant literature (#4681).
-
Minor formatting issues in Sphinx and typos in Python docstrings were addressed (#4608)
- A new boolean property
System.virtual_sites.override_cutoff_check
was introduced to allow disabling the cutoff range checks from virtual sites (#4623).
- The unused and untested
Analysis.v_kappa()
method was removed (#4534)
- Improve unit testing of core functionality: P3M, MMM1D, OIF, virtual sites, script interface factory (#4631)
-
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 containsDIPOLES
, 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.
-
The checkpointing mechanism now restores P3M and DipolarP3M solvers without triggering a re-tuning (#4677). In previous releases, the checkpointing code would automatically re-tune these algorithms during a reload, causing tiny deviations in the forces that were problematic for trajectory reproducibility.
-
Brownian dynamics now integrates the rotational dynamics of rotatable particles whose position is fixed in 3D space (#4548).
-
Langevin dynamics now properly integrates particles with anisotropic friction (#4683, #4690).
-
Particles can no longer be created or updated with a negative mass or a null mass (#4679).
-
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 raise an exception when accidentally calling
method.reaction(steps=20)
instead ofmethod.reaction(reaction_steps=20)
(#4666). Since 4.2.0 thesteps
argument was ignored, in which case the default valuereaction_steps=1
would used by the core. Note that in the next minor release of ESPResSo, thereaction_steps
argument will be renamed tosteps
. -
Reaction methods now rebuild the list of free particle ids every time
ReactionAlgorithm::do_reaction()
andWidomInsertion::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)
-
The visualizer
*_arrows_type_materials
options now have an effect on arrow materials (#4686) -
The visualizer exception handling mechanism has been made less brittle (#4686)
-
The visualizer can randomly freeze when using collision detection or bond breakage; a temporary workaround has been introduced that fixes the issue for simulations that use only 1 MPI rank (#4686)
-
Compilation and testsuite issues involving missing or incorrect feature guards were addressed (#4562, #4648).
-
The
__dir__()
method of script interface objects no longer raises an exception (#4674).
-
The Clang 14 and AppleClang 14 compilers are now supported (#4601).
-
Several Clang 14 compiler diagnostics have been addressed (#4606).
-
Boost 1.81 and later versions are now supported (#4655).
-
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).
-
Deployment of the user guide to GitHub Pages now relies on cloud providers to fetch JavaScript dependencies (#4656)