Revisions of python3-espressomd

Ana Guerrero's avatar Ana Guerrero (anag+factory) accepted request 1144047 from Christoph Junghans's avatar Christoph Junghans (cjunghans) (revision 20)
- Fix undefined behavior due to improper handling of MPI static globals
- Add mpi.patch to remove MPI globals (gh#espressomd/espresso#4858)
Ana Guerrero's avatar Ana Guerrero (anag+factory) accepted request 1114815 from Ondřej Súkup's avatar Ondřej Súkup (mimi_vx) (revision 19)
- cleanup spec
- skip mpiio test (forwarded request 1114814 from mimi_vx)
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 1080211 from Matej Cepl's avatar Matej Cepl (mcepl) (revision 17)
- Update to 4.2.1:
   This release provides a number of corrections for the ESPResSo
   4.2 line. We recommend that this release be used for all
   production simulations. The interface has not been changed
   between ESPResSo 4.2.0 and 4.2.1. However, some bugs were
   discovered which can affect simulation results. No further bug
   fix releases will be provided for the 4.2 line.
   
   Added functionality
   -------------------
   
   * P3M and DipolarP3M can now be used with the hybrid
     decomposition cell system with 1 MPI rank (#4678).
   * Lattice-Boltzmann can now be used with the N-square and
     hybrid decomposition cell systems with 2 or more MPI ranks
     (#4676).
   
   Changed requirements
   --------------------
   * The nbconvert version requirement was bumped to 6.5.1 to
     patch an XSS vulnerability (#4658).
   
   Improved documentation
   ----------------------
   * 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 can be used 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 numbers; 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).
   * Caveats for chain analysis methods are now documented
     (#4698).
   * 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
   ----------------
   * Improve unit testing of core functionality: P3M, MMM1D, OIF,
     virtual sites, script interface factory (#4631).
   
   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.
   * The checkpointing mechanism now restores P3M and DipolarP3M
     solvers without triggering a re-tune (#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).
   * A regression that caused virtual sites to incorrectly count
     their image box when crossing a periodic boundary has been
     fixed (#4564, #4707).
   * 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 of
     `method.reaction(reaction_steps=20)` (#4666). Since 4.2.0
     the `steps` argument was ignored, in which case the default
     value `reaction_steps=1` would used by the core. Note that
     in the next minor release of ESPResSo, the `reaction_steps`
     argument will be renamed to `steps`.
   * Reaction methods now rebuild the list of free particle ids
     every time `WidomInsertion::calculate_particle_insertion_potential_energy()`
     and `ReactionAlgorithm::do_reaction()` are called (#4609).
     This was 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 cluster analysis functions are now disabled for systems
     with Lees-Edwards periodic boundaries, since the cluster
     analysis position wrapping code doesn't properly handle the
     shear offset (#4698).
   * The chain analysis methods now raise an error when the
     number of chains or beads per chain is invalid (#4708).
   * 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 no longer raises exception when the optional
     dependency `freeglut` isn't installed (#4691).
   * 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).
   * The `__dir__()` method of script interface objects no longer
     raises an exception (#4674).
   * Compilation and testsuite issues involving missing or
     incorrect feature guards were addressed (#4562, #4648).
   * 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.
   
   Under the hood changes
   ----------------------
   * 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).
   * Compiler errors on non-x86 architectures were addressed
     (#4538).
   * Test tolerances were adjusted for non-x86 architectures
     (#4708).
   * 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).
- Removed upstreamed patches:
  - fix-broken-fft-check.patch
  - boost-1.74.patch
  - numpy-1.24.patch
  - rpath.patch
  - missing_size_t.patch
  - hdf5.patch
  - setuptools.patch
Richard Brown's avatar Richard Brown (RBrownFactory) accepted request 990492 from Matej Cepl's avatar Matej Cepl (mcepl) (revision 14)
- Update to 4.2.0:
    This is a feature release, i.e., new functionality is added
    to ESPResSo.  New thermostats, cell systems and boundary
    conditions have been introduced to simulate systems with
    Stokesian Dynamics, Brownian Dynamics, strongly inhomogeneous
    particle sizes or translation-invariant shear flow. The
    interface underwent (non-silent) changes, therefore scripts
    will have to be slightly adapted. Most notably, particle
    access by id and particle slices have a new syntax, and
    electrostatic/magnetostatic layer correction and reaction
    methods have a different setup. All errors are also now
    emitted as Python exceptions and are recoverable with minimal
    effort.  An additional focus of this release is the
    simplification of both the C++ core and the Python script
    interface to facilitate future extensions of ESPResSo.  The
    testing of ESPResSo's functionality has been extended
    considerably. We recommend that this release be used for all
    production simulations. No further bug fix releases will be
    provided for the 4.1 line, and not all fixes are present in
    ESPResSo 4.1.4.
   Added functionality
   -------------------
   
   * `P3MGPU` now supports energy and pressure calculation via
     the CPU kernels (#4506).
   * `ELC` now works with `P3MGPU` (#4506).
   * The LB grid now supports slicing operations (#4195) and LB
     slices are equality comparable (#4268).
   * Lees-Edwards boundary conditions can be used for
     particle-based simulations (#4457). Lattice-Boltzmann
     support will be added in the 4.3.0 release.
   * The non-bonded energy of a single particle can be calculated
     (#4401).
   * The list of close neighbors of a single particle can be
     extracted (#4401).
   * Brownian Dynamics simulations can be carried out with the
     newly added Brownian integrator and Brownian thermostat
     (#1842).
   * Stokesian Dynamics simulations can be carried out with the
     newly added Stokesian integrator and Stokesian thermostat
     (#3790, #3987).
   * Bonded interactions can now be automatically broken when the
     bond length exceeds a critical value (#4456). This feature
     can be combined with collision detection to model reversible
     bonds (#4464).
   * A new cell system `HybridDecomposition` was introduced to
     speed up simulations with inhomogeneous particle interaction
     ranges (#4373).
   * Shapes can be merged into meta-shapes (#3493, #3538).
   * The `HollowConicalFrustum` can now be sliced open, made
     thick and rotated to model quarter pipes in any orientation
     (#4179). The main application is in the construction of
     complex microchannel geometries via `LBBoundaries`.
   * A parametric weight function was added to the DPD
     interaction (#3570).
   * H5MD output files now support a unit system (#3751).
   * H5MD output files now support custom specifications to
     control which particle and box properties to write to disk
     (#4480).
   * The `H5md` class is now checkpointable and usable in an
     interactive Python session (#3751).
   * MDAnalysis integration now provides bond information
     (#3801).
- Give up on building on 32bit architectures (gh#espressomd/espresso#4537).
- Fix rpath in provided libraries and shebang in pypresso.
Dominique Leuenberger's avatar Dominique Leuenberger (dimstar_suse) accepted request 764825 from Christoph Junghans's avatar Christoph Junghans (cjunghans) (revision 5)
- Update to 4.1.2:
  - The interface has not been changed between ESPResSo 4.1.1 and
    4.1.2.
  - General corrections and improvements:
    - Remove correlation between the rotational noise and
      translational noise in the Langevin thermostat (#3355)
    - Fix a bug that may cause the wrong temperature to be set by
      the Langevin and DPD thermostats in the first time step
      after the system was altered from the Python level, e.g.,
      by changing particles or interactions (#3341)
    - Fix a bug that caused the DPD thermostat to generate an
      incorrect velocity distribution when used together with the
      Langevin thermostat (#3352)
    - Fix a bug in MMM2D and ELC with potential boundary
      conditions, where one of the correction factors was
      over-counted resulting in wrong energies (#3310)
    - Fix a bug that caused the wrong bonds to be deleted when
      removing particles from the system (#3356)
    - Fix an ambiguity in `ParticleSlice`: the values in the
      square brackets refer to particle ids, not array indices
      (#3367). This means the ill-defined syntax
      `system.part[0:-1]` is no longer valid. See the User Guide
      section on Setting up particles for more information.
    - Remove the mass prefactor in the `ComForce` observable and
      use the correct Particle ids in the
      `ParticleAngularVelocities` and `ParticleBodyVelocities`
      observables (#3380)
    - Fix a rounding error that caused debug builds of ESPResSo
      running with multiple MPI threads to crash when a particle
      was placed exactly on the boundary between two cells
      (#3377)
    - Fix `espressomd.has_features()` for the corner case where
      the list of all compiled-in features is passed as argument,
      returning ``False`` instead of ``True`` (#3318)
    - Refactor the random number generator code (#3349)
  - Documentation and tutorials corrections and improvements:
    - Improve documentation of Monte Carlo methods (#3254, #3330)
  - Build system and platform-related corrections and
    improvements:
    - List all Python dependencies in `requirements.txt` with the
      supported version numbers (#3300). Please note that most of
      them are optional.
    - Add `MPIEXEC_PREFLAGS` and `MPIEXEC_POSTFLAGS` to the
      command lines of parallel tests (#3221)
    - Add the `-oversubscribe` flag to the command lines of
      parallel tests running with OpenMPI v2.X to avoid exiting
      early from a Python test configured without `MAX_NUM_PROC`
      on a machine with a hyperthreaded CPU where OpenMPI is
      configured such that the number of threads cannot exceed
      the number of cores (#3335)
    - Refactor the CI, maintainer, Doxygen and pypresso shell
      scripts to make them more portable and support filepaths
      containing whitespaces (#3326, #3373)
    - Fix a nvcc compiler warning on the empty config (#3329)
  - Improved testing:
    - Add a test for ELC and MMM2D using analytic expressions of
      the force and energy (#3331)
    - Sped-up seven Python tests (#3319)
    - Fix a test that broke on s390x architectures with Fedora 31
      (#3312)
    - Fix tests that broke on i586 architectures with OpenSUSE
      Tumbleweed (#3327, #3358)
Displaying revisions 1 - 20 of 22
openSUSE Build Service is sponsored by