From 9affa218f9bc24a422e81388d8f7d579a4f9e789 Mon Sep 17 00:00:00 2001 From: Jiri Janos Date: Mon, 11 May 2026 18:50:16 +0200 Subject: [PATCH 1/2] Using np.trapezoid instead of np.trapz (depracated) --- scripts/exact_factorization.py | 2 +- scripts/old/prepare_potential.py | 2 +- scripts/qdyn_analyze.py | 6 +++--- tests/RT_HarmOsc_1D/check_mean_x.py | 2 +- .../__pycache__/qdyn_analyze.cpython-312.pyc | Bin 10515 -> 0 bytes tests/RT_LaserPulse_CH3I_1D/check_ch3i.py | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 tests/RT_LaserPulse_CH3I_1D/__pycache__/qdyn_analyze.cpython-312.pyc diff --git a/scripts/exact_factorization.py b/scripts/exact_factorization.py index 556918e..a882443 100644 --- a/scripts/exact_factorization.py +++ b/scripts/exact_factorization.py @@ -154,7 +154,7 @@ def plot_ef_1d(): axs_gdtdpes.plot(x, gdtdpes[i], color=colors[0], lw=2, label=r'$\varepsilon_{GD}$', zorder=0) tdpes = gdtdpes[i] + gitdpes[i, 4] axs_gdtdpes.plot(x, tdpes, color=colors[1], lw=2, label=r'$\varepsilon$', zorder=-1) - averageE = np.trapz(nucdens[i] * tdpes, x) + averageE = np.trapezoid(nucdens[i] * tdpes, x) if plot_density: axs_gdtdpes.plot(x, nucdens[i] + averageE, color=colors[2], label=r'$|\chi|^2 + \langle\chi|\varepsilon|\chi\rangle$') diff --git a/scripts/old/prepare_potential.py b/scripts/old/prepare_potential.py index 664129f..0332af9 100644 --- a/scripts/old/prepare_potential.py +++ b/scripts/old/prepare_potential.py @@ -141,7 +141,7 @@ if convolution: if rank == 1: kernel = np.exp(-(x - np.median(x))**2/np.var(x)*1000) - kernel = kernel/np.trapz(kernel) + kernel = kernel/np.trapezoid(kernel) pot[10:-10] = np.convolve(pot, kernel, 'same')[10:-10] else: print('ERROR: Convolution available only for rank 1!') diff --git a/scripts/qdyn_analyze.py b/scripts/qdyn_analyze.py index ed17a91..5773f66 100644 --- a/scripts/qdyn_analyze.py +++ b/scripts/qdyn_analyze.py @@ -437,7 +437,7 @@ class calc: def bracket_1d(bra, c, ket, x): """1D bracket calculation.""" bracket = np.conjugate(bra) * c * ket - return np.trapz(bracket, x=x) + return np.trapezoid(bracket, x=x) def wf_energy_1d(wf, pot, mass, x): """Wave function energy. This function is calculates energy of the wave function on a given state in BH @@ -491,7 +491,7 @@ def wf_interp(arg): y = np.arange(ymin, ymax, dy) integrand = wf_interp(xp + y / 2) * np.conjugate(wf_interp(xp - y / 2)) * np.exp(pp * y * 1j) - return np.real(np.trapz(x=y, y=integrand) / 2 / np.pi) + return np.real(np.trapezoid(x=y, y=integrand) / 2 / np.pi) def wigner1d_density(wf, x, dy=0.002): """Calculating wigner transform of a given wave function. @@ -661,7 +661,7 @@ def el_density_matrix_1d(wf, x): for t in range(ntimes): for i in range(nstates): for j in range(nstates): - density_matrix[i, j, t] = np.trapz(np.conjugate(wf[i, t]) * wf[j, t], x) + density_matrix[i, j, t] = np.trapezoid(np.conjugate(wf[i, t]) * wf[j, t], x) return density_matrix diff --git a/tests/RT_HarmOsc_1D/check_mean_x.py b/tests/RT_HarmOsc_1D/check_mean_x.py index 9697436..1a1a4b6 100644 --- a/tests/RT_HarmOsc_1D/check_mean_x.py +++ b/tests/RT_HarmOsc_1D/check_mean_x.py @@ -21,7 +21,7 @@ # calculating mean x position x_mean = [] for i in range(0, nframes_wf): - x_mean.append(np.trapz(y=wf[i, 3] * wf[i, 0], x=wf[i, 0])) + x_mean.append(np.trapezoid(y=wf[i, 3] * wf[i, 0], x=wf[i, 0])) # calculating exact result exact = x0 * np.cos(exact_omega * t) diff --git a/tests/RT_LaserPulse_CH3I_1D/__pycache__/qdyn_analyze.cpython-312.pyc b/tests/RT_LaserPulse_CH3I_1D/__pycache__/qdyn_analyze.cpython-312.pyc deleted file mode 100644 index 7fe8a099377d6acba56d1415f08d7a182d55ba79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10515 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 B{f7Vm diff --git a/tests/RT_LaserPulse_CH3I_1D/check_ch3i.py b/tests/RT_LaserPulse_CH3I_1D/check_ch3i.py index 9ead1ed..123ba9b 100644 --- a/tests/RT_LaserPulse_CH3I_1D/check_ch3i.py +++ b/tests/RT_LaserPulse_CH3I_1D/check_ch3i.py @@ -1,6 +1,6 @@ from os.path import exists -from numpy import genfromtxt, linspace, interp, std, trapz, sqrt, array, reshape, shape +from numpy import genfromtxt, linspace, interp, std, trapezoid, sqrt, array, reshape, shape xngrid = 256 @@ -34,10 +34,10 @@ for i in range(0, nframes_wf, 10): x[0].append(t[i] * 0.02418884254) dx = wf[i][0][1] - wf[i][0][1] - norm = trapz(wf[i][3], wf[i][0], dx=dx) - aver_x = trapz(wf[i][3] * wf[i][0], wf[i][0], dx=dx) / norm + norm = trapezoid(wf[i][3], wf[i][0], dx=dx) + aver_x = trapezoid(wf[i][3] * wf[i][0], wf[i][0], dx=dx) / norm x[1].append(aver_x) - aver_dx = sqrt(trapz(wf[i][3] * wf[i][0] ** 2, wf[i][0], dx=dx) / norm - aver_x ** 2) + aver_dx = sqrt(trapezoid(wf[i][3] * wf[i][0] ** 2, wf[i][0], dx=dx) / norm - aver_x ** 2) x[2].append(aver_dx) x = array(x) From ea6cedf69dbe9dd6d89ca83548c2e9383f486910 Mon Sep 17 00:00:00 2001 From: Jiri Janos Date: Mon, 11 May 2026 19:07:21 +0200 Subject: [PATCH 2/2] Upgrading nympy in CI --- .github/workflows/tests.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4eea6e2..e8d41b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,14 +16,22 @@ jobs: uses: actions/checkout@v4 # 2️⃣ System packages for build & tests + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install build dependencies run: | sudo apt-get update sudo apt-get install -y \ build-essential gfortran make \ - libfftw3-dev liblapack-dev \ - python3 python3-pip python3-numpy - python3 -m pip install scipy + libfftw3-dev liblapack-dev + + - name: Install Python dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install "numpy>=2.0,<3" scipy # 3️⃣ Compile the QDyn executable (bin ends up in src/qdyn) - name: Build qdyn