Skip to content

es 430 release notes

Jean-Noël Grad edited this page Nov 13, 2022 · 11 revisions

These are the draft release notes for ESPResSo 4.3.0 (milestone).

ESPResSo 4.3

This is a feature release, i.e., new functionality is added to ESPResSo.

An additional focus of this release is replacing the original lattice-Boltzmann code by the waLBerla library. This structural change will allow the community to develop new LB methods via pystencils and lbmpy and couple them to ESPResSo's molecular dynamics engine with relative ease.

Added functionality

  • The DipolarDirectSumCpu magnetostatic method now supports replicas and works in a MPI-parallel simulation (#4559).

Changed requirements

  • The waLBerla package is now a dependency of ESPResSo for all LB and EK methods (#2701).

  • The waLBerla dependency requires a C++17-capable compiler (#2701).

  • The minimal version of all dependencies was increased (#4532): CMake 3.17, and Python packages versions are pinned on versions available in the Ubuntu 20.04 repository.

  • The Intel oneAPI C++ Compiler is now recognized by the CMake build system (#4532).

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

  • Several compilers now require a minimal version (#4532): GCC >=7.0.0, Clang >=8.0.0, AppleClang >=11.0.0, Intel C++ Compiler Classic >=18.0, Intel oneAPI C++ Compiler >= 2021.0.

Feature configuration at compile time

  • A Gitpod config file is now available to build the code automatically in a remote Gitpod workspace (#4531).

  • waLBerla support is opt-in and can be requested with the -DWITH_WALBERLA=ON CMake flag (#2701).

Improved documentation

  • A Widom insertion tutorial was added (#4546)

  • A lattice-Boltzmann sedimentation tutorial was added (#4570)

  • The documentation 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)

Interface changes

  • The original LB classes LBFluid and LBFluidGPU were removed in favor of LBFluidWalberla and LBFluidWalberlaGPU (#2701). Their arguments have also changed, e.g. dens became density and visc became viscosity. The pressure_tensor_neq property was removed.

  • The original EK class Electrokinetics was removed in favor of EKRoutines (#2701).

  • LB and EK methods now support setting boundary slip velocities on individual nodes (#4252).

  • The OpenGL visualizer now uses different colors for arrows representing fluid velocities and slip velocities (#4252).

  • Class attributes expecting 3 boolean values no longer accept integer values (#4541). It is no longer possible to set properties system.periodicity, particle.fix and particle.rotation with e.g. [1, 1, 1] or [0, 0, 1].

Removed functionality

  • The LBBoundaries framework was removed (#4381). Shapes can now be passed directly to LB and EK objects.

  • The MDAnalysis bindings were removed (#4535)

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

  • The DipolarDirectSumWithReplicaCpu method was removed, since the DipolarDirectSumCpu method now supports replicas (#4559).

Improved testing

Performance enhancements

Bug fixes

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

  • Updating an active non-bonded interactions with interaction.set_params() now uses the default arguments when optional arguments are missing and raises an error when required arguments are missing (#4558). In previous ESPResSo versions, missing optional and required arguments would be recycled from the previous state of the non-bonded interaction.

  • 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 restored (#4589)

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

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

Under the hood changes

  • Most Cython files have been converted to Python files (#4541)