From 5a1acc7ce7700ae92b0e43744153145323809171 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Sat, 7 Jun 2025 14:28:40 -0400 Subject: [PATCH 1/3] Use more efficient algorithm for `is_periodic_image` --- src/pymatgen/core/sites.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pymatgen/core/sites.py b/src/pymatgen/core/sites.py index d20b215dbf0..0c552f37796 100644 --- a/src/pymatgen/core/sites.py +++ b/src/pymatgen/core/sites.py @@ -514,7 +514,10 @@ def is_periodic_image( return False frac_diff = pbc_diff(self.frac_coords, other.frac_coords, self.lattice.pbc) - return np.allclose(frac_diff, [0, 0, 0], atol=tolerance) + for diff in frac_diff: # pure Python loop faster than np.allclose here + if abs(diff) > tolerance: # break early if outside tolerance + return False + return True def distance_and_image_from_frac_coords( self, From d8fc29d50fe6498a83ec693fead87b64782fab2f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 18:32:41 +0000 Subject: [PATCH 2/3] pre-commit auto-fixes --- src/pymatgen/core/sites.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/pymatgen/core/sites.py b/src/pymatgen/core/sites.py index 0c552f37796..6144d612c8e 100644 --- a/src/pymatgen/core/sites.py +++ b/src/pymatgen/core/sites.py @@ -514,10 +514,7 @@ def is_periodic_image( return False frac_diff = pbc_diff(self.frac_coords, other.frac_coords, self.lattice.pbc) - for diff in frac_diff: # pure Python loop faster than np.allclose here - if abs(diff) > tolerance: # break early if outside tolerance - return False - return True + return all(abs(diff) <= tolerance for diff in frac_diff) def distance_and_image_from_frac_coords( self, From 7817ca7685357fccbddccb177845902b3ee21f5f Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Sat, 7 Jun 2025 14:58:42 -0400 Subject: [PATCH 3/3] Fix unrelated test failure --- tests/electronic_structure/test_core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/electronic_structure/test_core.py b/tests/electronic_structure/test_core.py index 8b39480930d..70f7d351501 100644 --- a/tests/electronic_structure/test_core.py +++ b/tests/electronic_structure/test_core.py @@ -98,7 +98,7 @@ def test_is_collinear(self): for magmom in magmoms: assert Magmom.are_collinear(magmom) ncl_magmoms = [[[0, 0, 1], [0, 0, 1], [1, 2, 3]]] - assert Magmom.are_collinear(ncl_magmoms) is False + assert not Magmom.are_collinear(ncl_magmoms) def test_have_consistent_saxis(self): magmom1 = Magmom([1, 2, 3])