From 611365303cb86c4e2052c549f8a1d7130d5216bd Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 14 Feb 2023 18:39:52 +0100 Subject: invars: simplify Use cumulative_trapezoid() which does exactly what we want. --- invars.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/invars.py b/invars.py index db9b674..70eb1c8 100644 --- a/invars.py +++ b/invars.py @@ -1,8 +1,7 @@ import numpy as np -import scipy.interpolate as interp import scipy.integrate as integrate -def calc_dist_proper(coord, gXX): +def dist_proper(coord, gXX): """ Calculate proper distance along given spatial axis. @@ -11,9 +10,4 @@ def calc_dist_proper(coord, gXX): provided coordinates. :return: array of proper distances from coord[0]. """ - r_proper = np.empty_like(coord) - sqgXX = interp.interp1d(coord, np.sqrt(gXX)) - r_proper[0] = 0.0 - for i in range(coord.shape[0] - 1): - r_proper[i + 1] = r_proper[i] + integrate.quad(sqgXX, coord[i], coord[i + 1])[0] - return r_proper + return integrate.cumulative_trapezoid(np.sqrt(gXX), coord, initial = 0.0) -- cgit v1.2.3