public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/python-pyscf] rawhide: More patching
@ 2026-08-02  6:40 Susi Lehtola
  0 siblings, 0 replies; only message in thread
From: Susi Lehtola @ 2026-08-02  6:40 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/python-pyscf
Branch : rawhide
Commit : c2d6e5354e1ad2a06a38e7367e8b27b6207620b0
Author : Susi Lehtola <jussilehtola@fedoraproject.org>
Date   : 2026-08-02T06:40:33+00:00
Stats  : +79/-6 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/python-pyscf/c/c2d6e5354e1ad2a06a38e7367e8b27b6207620b0?branch=rawhide

Log:
More patching

---
diff --git a/pyscf-2.14.0-tests.patch b/pyscf-2.14.0-tests.patch
index 955da3e..cecc46e 100644
--- a/pyscf-2.14.0-tests.patch
+++ b/pyscf-2.14.0-tests.patch
@@ -1,6 +1,26 @@
+diff -urN pyscf-2.14.0.orig/pyscf/cc/test/test_eom_gccsd.py pyscf-2.14.0/pyscf/cc/test/test_eom_gccsd.py
+--- a/pyscf/cc/test/test_eom_gccsd.py	2026-07-18 22:19:34.000000000 +0000
++++ b/pyscf/cc/test/test_eom_gccsd.py	2026-08-01 16:40:24.539823633 +0000
+@@ -136,10 +136,15 @@
+         self.assertAlmostEqual(e[1], 0.1905059282334538, 5)
+         self.assertAlmostEqual(e[2], 0.2834522921515028, 5)
+ 
++        # Same problem as in test_ipccsd: the * correction divides by the
++        # overlap of the left and right eigenvectors, which is not well defined
++        # when the roots are degenerate.  The overlap of the third root has
++        # been observed to come out as ~1e-26 on some machines, in which case
++        # the correction is numerical noise. FIXME
+         e = myeom.eaccsd_star_contract(e, v, lv)
+         self.assertAlmostEqual(e[0], 0.1894169322207168, 5)
+         self.assertAlmostEqual(e[1], 0.1894169322207168, 5)
+-        self.assertAlmostEqual(e[2], 0.2820757599337823, 5)
++        #self.assertAlmostEqual(e[2], 0.2820757599337823, 5)
+ 
+     def test_eaccsd_koopmans(self):
+         e,v = mycc.eaccsd(nroots=3, koopmans=True)
 diff -urN pyscf-2.14.0.orig/pyscf/df/test/test_df.py pyscf-2.14.0/pyscf/df/test/test_df.py
 --- a/pyscf/df/test/test_df.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/df/test/test_df.py	2026-08-01 11:19:08.787572884 +0000
++++ b/pyscf/df/test/test_df.py	2026-08-01 16:39:24.499636554 +0000
 @@ -104,8 +104,13 @@
          dm = numpy.random.random((2,nao,nao))
          dfobj = df.DF(mol)
@@ -17,9 +37,57 @@ diff -urN pyscf-2.14.0.orig/pyscf/df/test/test_df.py pyscf-2.14.0/pyscf/df/test/
  
          vj1, vk1 = scf.hf.get_jk(mol, dm, hermi=0, omega=1.1)
          self.assertAlmostEqual(abs(vj-vj1).max(), 0, 2)
+diff -urN pyscf-2.14.0.orig/pyscf/dft/test/test_dks.py pyscf-2.14.0/pyscf/dft/test/test_dks.py
+--- a/pyscf/dft/test/test_dks.py	2026-07-18 22:19:34.000000000 +0000
++++ b/pyscf/dft/test/test_dks.py	2026-08-01 16:47:59.258198548 +0000
+@@ -100,7 +100,14 @@
+         mf = dks.UDKS(mol)
+         mf.collinear = 'ncol'
+         veff = mf.get_veff(mol, dm4c_guess)
+-        self.assertAlmostEqual(lib.fp(veff), 6.831445865173151-28.252983015580064j, 8)
++        # The random guess density matrix is not a physical density matrix: the
++        # spin densities it produces are negative on 5% of the grid points, so
++        # the correlation potential is evaluated in the fully polarized limit,
++        # where it suffers from catastrophic cancellation.  libxc 7.1 rounds
++        # differently there than the libxc 7.0 the reference value was computed
++        # with, and the difference is amplified by the 1/|m| factors of the
++        # non-collinear kernel: the fingerprint moves by 4e-6.
++        self.assertAlmostEqual(lib.fp(veff), 6.831445865173151-28.252983015580064j, 4)
+ 
+     def test_collinear_dks_lda_high_cost(self):
+         mf = dks.UDKS(mol)
+@@ -118,7 +125,9 @@
+     def test_collinear_dks_lda_veff(self):
+         mf = dks.UDKS(mol)
+         veff = mf.get_veff(mol, dm4c_guess)
+-        self.assertAlmostEqual(lib.fp(veff), 6.0513153425666815-27.01477415630974j, 8)
++        # See the comment in test_ncol_dks_lda_veff on the libxc dependence of
++        # this fingerprint.
++        self.assertAlmostEqual(lib.fp(veff), 6.0513153425666815-27.01477415630974j, 6)
+ 
+     @unittest.skipIf(mcfun is None, "mcfun library not found.")
+     def test_mcol_dks_lda(self):
+diff -urN pyscf-2.14.0.orig/pyscf/fci/test/test_spin_op.py pyscf-2.14.0/pyscf/fci/test/test_spin_op.py
+--- a/pyscf/fci/test/test_spin_op.py	2026-07-18 22:19:34.000000000 +0000
++++ b/pyscf/fci/test/test_spin_op.py	2026-08-01 16:47:16.638100694 +0000
+@@ -28,8 +28,12 @@
+     global h1, h2, c0, ci0, norb, nelec, e0
+     hfile = os.path.realpath(os.path.join(__file__, '..', 'spin_op_hamiltonian.h5'))
+     with h5py.File(hfile, 'r') as f:
+-        h1 = lib.unpack_tril(f['h1'][:])
+-        h2 = f['h2'][:]
++        # h5py hands out the data in the byte order of the file, which is
++        # little-endian.  On big-endian machines the resulting arrays are not
++        # native float64, and the FCI solvers, which pass the integrals to C
++        # code, reject them.  Convert to the native byte order here.
++        h1 = lib.unpack_tril(numpy.asarray(f['h1'][:], dtype=numpy.float64))
++        h2 = numpy.asarray(f['h2'][:], dtype=numpy.float64)
+ 
+     norb = 10
+     nelec = (5,5)
 diff -urN pyscf-2.14.0.orig/pyscf/grad/test/test_rhf.py pyscf-2.14.0/pyscf/grad/test/test_rhf.py
 --- a/pyscf/grad/test/test_rhf.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/grad/test/test_rhf.py	2026-08-01 11:18:20.394533343 +0000
++++ b/pyscf/grad/test/test_rhf.py	2026-08-01 16:39:24.499934109 +0000
 @@ -23,6 +23,15 @@
  except (ImportError, OSError):
      dftd3 = dftd4 = None
@@ -56,7 +124,7 @@ diff -urN pyscf-2.14.0.orig/pyscf/grad/test/test_rhf.py pyscf-2.14.0/pyscf/grad/
          from pyscf.gto import pp_int
 diff -urN pyscf-2.14.0.orig/pyscf/grad/test/test_uhf.py pyscf-2.14.0/pyscf/grad/test/test_uhf.py
 --- a/pyscf/grad/test/test_uhf.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/grad/test/test_uhf.py	2026-08-01 11:18:31.677309413 +0000
++++ b/pyscf/grad/test/test_uhf.py	2026-08-01 16:39:24.500150022 +0000
 @@ -22,6 +22,15 @@
  except (ImportError, OSError):
      dftd3 = dftd4 = None
@@ -84,7 +152,7 @@ diff -urN pyscf-2.14.0.orig/pyscf/grad/test/test_uhf.py pyscf-2.14.0/pyscf/grad/
              atom = '''
 diff -urN pyscf-2.14.0.orig/pyscf/pbc/dft/test/test_multigrid2.py pyscf-2.14.0/pyscf/pbc/dft/test/test_multigrid2.py
 --- a/pyscf/pbc/dft/test/test_multigrid2.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/pbc/dft/test/test_multigrid2.py	2026-08-01 11:18:45.228823203 +0000
++++ b/pyscf/pbc/dft/test/test_multigrid2.py	2026-08-01 16:39:24.500407662 +0000
 @@ -25,6 +25,15 @@
  from pyscf.pbc.grad import uks as uks_grad
  from pyscf.pbc.grad import krks as krks_grad
@@ -157,7 +225,7 @@ diff -urN pyscf-2.14.0.orig/pyscf/pbc/dft/test/test_multigrid2.py pyscf-2.14.0/p
          e0, g0 = _fftdf_energy_grad(He_nonorth, xc)
 diff -urN pyscf-2.14.0.orig/pyscf/pbc/gto/pseudo/test/test_pp.py pyscf-2.14.0/pyscf/pbc/gto/pseudo/test/test_pp.py
 --- a/pyscf/pbc/gto/pseudo/test/test_pp.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/pbc/gto/pseudo/test/test_pp.py	2026-08-01 11:18:57.490797093 +0000
++++ b/pyscf/pbc/gto/pseudo/test/test_pp.py	2026-08-01 16:39:24.502993549 +0000
 @@ -24,6 +24,15 @@
  from pyscf.pbc.gto.pseudo import pp_int
  from pyscf.data.nist import BOHR
@@ -185,7 +253,7 @@ diff -urN pyscf-2.14.0.orig/pyscf/pbc/gto/pseudo/test/test_pp.py pyscf-2.14.0/py
          cell.atom = 'H 0 0 0; Na 0 0 0.8'
 diff -urN pyscf-2.14.0.orig/pyscf/sgx/test/test_dm_screening.py pyscf-2.14.0/pyscf/sgx/test/test_dm_screening.py
 --- a/pyscf/sgx/test/test_dm_screening.py	2026-07-18 22:19:34.000000000 +0000
-+++ b/pyscf/sgx/test/test_dm_screening.py	2026-08-01 11:19:02.322701194 +0000
++++ b/pyscf/sgx/test/test_dm_screening.py	2026-08-01 16:39:24.503265182 +0000
 @@ -74,7 +74,10 @@
          e2 = mf_scanner(mol1.set_geom_(atomm))
          t3 = logger.perf_counter()

diff --git a/python-pyscf.spec b/python-pyscf.spec
index 5c26221..5c089b5 100644
--- a/python-pyscf.spec
+++ b/python-pyscf.spec
@@ -145,6 +145,11 @@ bash .github/workflows/run_tests.sh
 * Sat Aug 01 2026 Susi Lehtola <jussilehtola@fedoraproject.org> - 2.14.0-2
 - Enable tests, patching the suite to pass with qcint and FlexiBLAS.
 - Fix a stack buffer overflow in the Dirac-Hartree-Fock (SS|LL) J/K build.
+- Read the FCI test Hamiltonian in the native byte order, since the solvers
+  reject the little-endian arrays h5py hands out on big-endian machines.
+- Loosen the DKS veff fingerprints, whose reference values depend on how libxc
+  rounds the correlation potential in the fully polarized limit, and drop the
+  EA-CCSD* assertion that divides by a vanishing left-right overlap.
 
 * Thu Jul 30 2026 Susi Lehtola <jussilehtola@fedoraproject.org> - 2.14.0-1
 - Update to 2.14.0.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-02  6:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-02  6:40 [rpms/python-pyscf] rawhide: More patching Susi Lehtola

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox