diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-02-14 18:39:52 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-02-14 18:39:52 +0100 |
commit | 611365303cb86c4e2052c549f8a1d7130d5216bd (patch) | |
tree | 11eb0ad775c24ede1c03f1c473947ace794e5132 | |
parent | a4ce5b09d85b1aede9ff1c82e08010af96ef84c6 (diff) |
invars: simplify
Use cumulative_trapezoid() which does exactly what we want.
-rw-r--r-- | invars.py | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -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) |