summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-02-14 18:39:52 +0100
committerAnton Khirnov <anton@khirnov.net>2023-02-14 18:39:52 +0100
commit611365303cb86c4e2052c549f8a1d7130d5216bd (patch)
tree11eb0ad775c24ede1c03f1c473947ace794e5132
parenta4ce5b09d85b1aede9ff1c82e08010af96ef84c6 (diff)
invars: simplify
Use cumulative_trapezoid() which does exactly what we want.
-rw-r--r--invars.py10
1 files 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)