Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.0.3 Release #45

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open

5.0.3 Release #45

wants to merge 21 commits into from

Conversation

jlallouette
Copy link
Contributor

Version 5.0.3 (2024-10)

Python API

  1. Added HDF5MultiFileReader to read simulation data from several HDF5 files at once.
  2. Simulation.toDB can now be called without a uid.
  3. Random number generators (RNG class) now have default constructor arguments

Bugfixes

  1. Fix vesicle path movement sometimes leading to blocked vesicles
  2. Fix rare vesicle surface diffusion crash for boost versions < 1.73
  3. Fix vesicles erroneously diffusing to different compartment
  4. Fix compilation issues with mpi4py >= 4.0.0 and Open MPI < 5.0.0
  5. Fix DistMesh.intersect method computations failing under some conditions

jlallouette and others added 21 commits October 18, 2024 11:00
* Update mass_replace script to consider pxd and pyx files
Prevent modification of files in some folders

* Add explanations for mass_replace script
…217)

* Fix intersection algorithm only considering vertex neighbors once

* Fix intersect algorithm issue in TetMesh
Wrap parts of efield.cpp that use PETSC with ifdefs
Remove parts of efield.hpp that do not use PETSC from ifdef
* Fix XDMF issue with values combined accross geometrical elements
Add related test

* Add distribution for ResultCombiners that can be distributed

* Fix _getValName not returning correct value for resultCombiners

* Add distribInd function to SUM, MIN and MAX

* Keep result selectors after distribution even if they are empty
Reset monkey patching for optimization after distribution

* Add more tests
The usual `cmake --build ...` and `cmake --install ...` don't work
unless one explicitly runs the coverage steps in between - CMake does
not produce everything needed for the installation explicitly.
* Fix vesicle path movement getting potentially blocked when trying to
jump too far
Add the possibility to check previous positions for availability instead
of only checking the last position for a given vesicle dt period

* Add tests for new path behavior

* Minor improvements

* Fix two compile warnings. (#1224)

Co-authored-by: Iain Hepburn <[email protected]>

* Formatting. My bad.

* Add test for vesicle path speed

* Change pPath_next_pos to an end iterator

* Increase tolerance for test_memory_tracker

* Update comment, as suggested in code review

---------

Co-authored-by: Iain <[email protected]>
Co-authored-by: Iain Hepburn <[email protected]>
* Adds fix for Boost versions <1.73 where bounds of integral are equal. Req Boost >= 1.66 since this is where Gauss-Kronrod was added.

* Bump version to 5.0.3
Fix DistMesh.intersect docstring being overwritten by _BaseTetMesh.intersect (python)
* Fix vesicles "leaking" to non-authorized compartments

* Use assert in checkPos to check that the overlap map is empty
Clear overlap map when several positions are tested for movement on a
path

* Add test for vesicle diffusing to forbidden compartments

* Temporary fix for tolerance issue in overlap library

* Allow overlap search above 100% but assert that it stays below 100%

* Reduce the number of tries for vesicle surface diffusion
Add corresponding note and a more stringent test in debug mode

* Update assert condition

* Remove 3 deprecated cython IFs.

* Update overlap calculation with fix from developer.

* NOTICKET Re-run CI with new GL token

* Update src/steps/mpi/tetvesicle/vesicle.cpp

Co-authored-by: Matthias Wolf <[email protected]>

---------

Co-authored-by: iahepburn <[email protected]>
Co-authored-by: Matthias Wolf <[email protected]>
Add HDF5MultiFileReader class to read from multiple HDF5 files at once
Add default run group name when uid is not given to sim.toDB
Add and update related tests
Fix DatabaseHandler.filter raising an exception when a parameter is
valid but doesn't have a specific value
trying to fix this for good: #1216

New features were added as the scope kept growing.

Fixing also: #1220, #1226

- improve findTetByPointWalk and findTetByPoint. Linear if small mesh, A* search otherwise. With restarts for disconnected meshes, and optional cutoff distance.
- improve fintTetByPoint in DistMesh
- segment_intersect_segment
- segment_intersect_point
- tri_intersect_point
- make global shim
- new intersect method for DistMesh
- fix building blocks sensitivity to scaling
- add tests about building block scaling sensitivity
- test with ratV6 (1 rank)
- test with ratV6 (4 ranks)
- test with ratV10 (1 rank)
- test with ratV10 (4 ranks)
Allows STEPS installation through pip

Minimal system requirements:
* C/C++ compiler
* git
* pkg-config
* libopenblas-dev
* libopenmpi-dev librdmacm-dev
* libgl1 libglu1 libxcursor1 libxft2 libxinerama1 libxrender1
* zlib1g-dev

To install STEPS: `pip install steps[bundle]`

Without _bundle_ optional dependencies, the system must also provide Boost, Metis, Eigen, gmsh, and PETsc libraries.

# CMake changes
pass Gmsh installation location to bundle Omega_h
Add FindEigen.cmake
Add FindPETSc.cmake when pkgconfig config file for PETSc is not found
FindGmsh: add possible names to library lookup
Add Python "$site-packages/cmeel.prefix" to CMake installation prefix so that installed CMeel packages (metis, boost, ...) can be found there.
Set RPATH to STEPS Python extensions in order to locate the dependencies in Python installation directory.
Fix Metis library linkage

# Continuous integration
This change adds a GitHub workflow to :

1. build the STEPS Python source distribution
1. installs it
1. run a couple of simulations available in STEPS_Example repository
* Do not include the test directory in the source distribution

It shrinks the tarball from 40MB to 1.3MB

* Use same project name as on PyPI
…(#1252)

rescaled tolerance
- avoid tol var as it shadows another one
- This problems appears only on certain systems (my local installation of ubuntu 24.04)

---------

Co-authored-by: jlallouette <[email protected]>
* Update release instructions
Add saved files for 5.0.2

* Update release notes

* Fix typo

* Add intersect rework comment to the release notes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants