Repository navigation
Validate reactive Voronoi pair geometry across MPI ranks - #1466
Merged
carlocamilloni merged 5 commits intoOct 7, 2026
Merged
Conversation
…plumed#1473) (cherry picked from commit a7654be)
(cherry picked from commit 4fe6e11)
(cherry picked from commit 7185d0c)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validate reactive Voronoi pair geometry before distance derivatives are evaluated. Diagnostics distinguish invalid coordinates/cells, neighbor-list mappings, zero separation and overflowing scores, and report the relevant atom pair and rank.
Errors found by workers are collected before reporting, so a bad pair on one MPI rank or OpenMP thread does not leave the other ranks in a collective. Valid-input formulas and neighbor-list behavior are preserved.
Tests
An independent current-master MPI build passed the existing reactive Voronoi and skin regressions plus new serial and multi-rank invalid-distance regressions. The new cases cover non-finite coordinates, degenerate/non-finite cells, zero separation, score overflow, and collective error handling. Native astyle and whitespace checks passed.
This follows the already merged reactive Voronoi implementation (#1442); it contributes only validation and diagnostics, with no sampling or performance claim.
Python/OpenMP CI follow-up
Includes the separately reviewable regression-process lifetime fix #1470, which retains the dynamically loaded kernel during Python shutdown. It preserves two-thread execution and the original numerical reference. This addresses the rt-symfunc shutdown failure observed on the debug runner.
Other observed CI failures are distinct:
codechecktimed out downloading GNU Autoconf; coverage ran 829 tests with zero numerical errors but rejected seven unavailable optional-dependency tests; Intel DRR extraction differed in one final decimal (19.765836219 vs 19.765836220) in an unchanged module. No dependency gate or numerical reference was relaxed.Regression follow-up
Included the accepted
rt-proteinshutdown fix #1473, thert-gridfollow-up #1477, and the timestep-test initialization fix accepted in #1464. The Python configs pass three direct two-thread runs per case with byte-identical reference output; the existing build reports Python unavailable to the native runner. The timestep regression passes through the native runner with poisoned automatic-variable initialization against both v2.10 and master kernels. No reference values, tolerances or thread counts were changed. The Autoconf download failure has a separate upstream CI proposal in #1474.