sxs 2025.0.18__py3-none-any.whl → 2025.0.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sxs/__version__.py +1 -1
- sxs/horizons/__init__.py +35 -0
- sxs/juliapkg.json +2 -2
- sxs/simulations/simulation.py +2 -2
- sxs/time_series.py +13 -1
- {sxs-2025.0.18.dist-info → sxs-2025.0.20.dist-info}/METADATA +5 -26
- {sxs-2025.0.18.dist-info → sxs-2025.0.20.dist-info}/RECORD +10 -10
- {sxs-2025.0.18.dist-info → sxs-2025.0.20.dist-info}/WHEEL +0 -0
- {sxs-2025.0.18.dist-info → sxs-2025.0.20.dist-info}/entry_points.txt +0 -0
- {sxs-2025.0.18.dist-info → sxs-2025.0.20.dist-info}/licenses/LICENSE +0 -0
sxs/__version__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "2025.0.
|
|
1
|
+
__version__ = "2025.0.20"
|
sxs/horizons/__init__.py
CHANGED
|
@@ -530,3 +530,38 @@ class Horizons(object):
|
|
|
530
530
|
ω = Ω
|
|
531
531
|
Omega = Ω
|
|
532
532
|
omega = Ω
|
|
533
|
+
|
|
534
|
+
@property
|
|
535
|
+
def χₚ(self):
|
|
536
|
+
"""Effective spin precession parameter χₚ as function of time
|
|
537
|
+
|
|
538
|
+
Returns
|
|
539
|
+
-------
|
|
540
|
+
χₚ : TimeSeries
|
|
541
|
+
This represents the effective spin precession parameter as
|
|
542
|
+
a function of time.
|
|
543
|
+
|
|
544
|
+
Notes
|
|
545
|
+
-----
|
|
546
|
+
There are multiple definitions of the effective spin
|
|
547
|
+
precession parameter in the literature. This implementation
|
|
548
|
+
follows the definition given in Eq. (16) of the LVK's most
|
|
549
|
+
recent paper as of this writing,
|
|
550
|
+
[*GWTC-4.0*](https://arxiv.org/pdf/2508.18080). See [this
|
|
551
|
+
paper](https://arxiv.org/abs/2011.11948) for discussion of the
|
|
552
|
+
differences between various definitions.
|
|
553
|
+
|
|
554
|
+
"""
|
|
555
|
+
m1 = self.A.christodoulou_mass
|
|
556
|
+
m2 = self.B.christodoulou_mass
|
|
557
|
+
S1 = m1[:, np.newaxis] ** 2 * self.A.chi_inertial
|
|
558
|
+
S2 = m2[:, np.newaxis] ** 2 * self.B.chi_inertial
|
|
559
|
+
L̂ = self.ℓ̂
|
|
560
|
+
χₚ = (1 / m1) * np.maximum(
|
|
561
|
+
np.linalg.norm(np.cross(L̂, S1), axis=1) / m1,
|
|
562
|
+
((3*m1 + 4*m2)/(3*m2+4*m1)) * np.linalg.norm(np.cross(L̂, S2), axis=1) / m2
|
|
563
|
+
)
|
|
564
|
+
return χₚ
|
|
565
|
+
|
|
566
|
+
χp = χₚ
|
|
567
|
+
chi_p = χₚ
|
sxs/juliapkg.json
CHANGED
sxs/simulations/simulation.py
CHANGED
|
@@ -915,7 +915,7 @@ class Simulation_v2(SimulationBase):
|
|
|
915
915
|
f"/rMPsi4_Asymptotic_GeometricUnits_CoM_Mem/{extrapolation}"
|
|
916
916
|
)
|
|
917
917
|
|
|
918
|
-
def load_waveform(self, file_name, group, transform_to_inertial=True):
|
|
918
|
+
def load_waveform(self, file_name, group, transform_to_inertial=True, drop_times_before=0):
|
|
919
919
|
from .. import load
|
|
920
920
|
# Note that `name` should not have the file ending on input,
|
|
921
921
|
# but we will replace it regardless with `.with_suffix`.
|
|
@@ -934,7 +934,7 @@ class Simulation_v2(SimulationBase):
|
|
|
934
934
|
download_file(json_location, json_truepath)
|
|
935
935
|
return load(
|
|
936
936
|
h5_location, truepath=h5_truepath, group=group, metadata=self.metadata,
|
|
937
|
-
transform_to_inertial=transform_to_inertial, drop_times_before=
|
|
937
|
+
transform_to_inertial=transform_to_inertial, drop_times_before=drop_times_before,
|
|
938
938
|
)
|
|
939
939
|
|
|
940
940
|
|
sxs/time_series.py
CHANGED
|
@@ -121,8 +121,20 @@ class TimeSeries(np.ndarray):
|
|
|
121
121
|
"""
|
|
122
122
|
from numbers import Integral
|
|
123
123
|
|
|
124
|
+
# The docs at
|
|
125
|
+
# https://numpy.org/doc/stable/user/basics.indexing.html#detailed-notes
|
|
126
|
+
# say, "An empty (tuple) index is a full scalar index into a
|
|
127
|
+
# zero-dimensional array. `x[()]` returns a *scalar* if `x`
|
|
128
|
+
# is zero-dimensional and a view otherwise. On the other hand,
|
|
129
|
+
# `x[...]` always returns a view." This was true in numpy 1 as well,
|
|
130
|
+
# but the behavior has actually changed in numpy 2 for non-0d arrays,
|
|
131
|
+
# which causes downstream errors. So we have to change to handle this.
|
|
124
132
|
if isinstance(key, tuple) and len(key) == 0:
|
|
125
|
-
|
|
133
|
+
if self.ndim == 0:
|
|
134
|
+
return super().__getitem__(key), key
|
|
135
|
+
else:
|
|
136
|
+
return self, key
|
|
137
|
+
# raise ValueError(f"Empty index to {type(self).__name__} does not make sense")
|
|
126
138
|
|
|
127
139
|
def newaxis_type(e):
|
|
128
140
|
return isinstance(e, (type(np.newaxis), type(None)))
|
|
@@ -1,35 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sxs
|
|
3
|
-
Version: 2025.0.
|
|
3
|
+
Version: 2025.0.20
|
|
4
4
|
Summary: Interface to data produced by the Simulating eXtreme Spacetimes collaboration
|
|
5
5
|
Project-URL: Homepage, https://github.com/sxs-collaboration/sxs
|
|
6
6
|
Project-URL: Documentation, https://sxs.readthedocs.io/
|
|
7
7
|
Author-email: Michael Boyle <michael.oliver.boyle@gmail.com>
|
|
8
|
-
License:
|
|
9
|
-
|
|
10
|
-
Copyright (c) 2020 Michael Boyle
|
|
11
|
-
|
|
12
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
-
in the Software without restriction, including without limitation the rights
|
|
15
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
-
furnished to do so, subject to the following conditions:
|
|
18
|
-
|
|
19
|
-
The above copyright notice and this permission notice shall be included in all
|
|
20
|
-
copies or substantial portions of the Software.
|
|
21
|
-
|
|
22
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
-
SOFTWARE.
|
|
8
|
+
License-Expression: MIT
|
|
29
9
|
License-File: LICENSE
|
|
30
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
31
11
|
Classifier: Intended Audience :: Science/Research
|
|
32
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
33
12
|
Classifier: Operating System :: OS Independent
|
|
34
13
|
Classifier: Programming Language :: Python :: 3
|
|
35
14
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
@@ -38,9 +17,9 @@ Requires-Python: >=3.10
|
|
|
38
17
|
Requires-Dist: bibtexparser>=2.0.0b8
|
|
39
18
|
Requires-Dist: h5py>=3
|
|
40
19
|
Requires-Dist: inflection>=0.5.1
|
|
41
|
-
Requires-Dist: juliacall>=0.9.
|
|
20
|
+
Requires-Dist: juliacall>=0.9.30
|
|
42
21
|
Requires-Dist: numba>=0.55; implementation_name == 'cpython'
|
|
43
|
-
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: numpy<3.0,>=2.0
|
|
44
23
|
Requires-Dist: packaging
|
|
45
24
|
Requires-Dist: pandas>=1.1.2
|
|
46
25
|
Requires-Dist: pytz>=2020.1
|
|
@@ -64,7 +43,7 @@ Requires-Dist: line-profiler>=3.0.2; extra == 'ecosystem'
|
|
|
64
43
|
Requires-Dist: matplotlib>=2.1.1; extra == 'ecosystem'
|
|
65
44
|
Requires-Dist: memory-profiler>=0.57.0; extra == 'ecosystem'
|
|
66
45
|
Requires-Dist: numpy-quaternion>=2023.0.4; extra == 'ecosystem'
|
|
67
|
-
Requires-Dist: numpy<
|
|
46
|
+
Requires-Dist: numpy<3.0,>=2.0; extra == 'ecosystem'
|
|
68
47
|
Requires-Dist: qgridnext>=2.0; extra == 'ecosystem'
|
|
69
48
|
Requires-Dist: rise>=5.6.1; extra == 'ecosystem'
|
|
70
49
|
Requires-Dist: scri>=2020.8.18; (sys_platform != 'win32') and extra == 'ecosystem'
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
sxs/__init__.py,sha256=C8VhmrUPAa70Y-C2KfZv9BhS6ef-eB7uaNtwm18IRhk,2637
|
|
2
|
-
sxs/__version__.py,sha256=
|
|
2
|
+
sxs/__version__.py,sha256=WL126X6qd-XDIyPiUN5RKa9p25GrVWfEPkC7F8oUm6I,26
|
|
3
3
|
sxs/citation.py,sha256=QAiRnasTXpufZCaoxTKR5ESSJQ2ww7FgWyxoaaAQifw,7167
|
|
4
4
|
sxs/handlers.py,sha256=rUS0TmbewpllnZHkS5TXCx6nxGA-E8xrBGLlejBPEAg,18820
|
|
5
|
-
sxs/juliapkg.json,sha256
|
|
6
|
-
sxs/time_series.py,sha256=
|
|
5
|
+
sxs/juliapkg.json,sha256=j-T3x1iSsGEw7mttbjaUvo0GPXB5611bp9Cob_XLDBo,178
|
|
6
|
+
sxs/time_series.py,sha256=GhsE-p4NoHZ5WZ4v5mYX7bRe5HO_sKWYNRKDJTvnjwI,41765
|
|
7
7
|
sxs/catalog/__init__.py,sha256=9-WTMTPDmqqkFyIHOtEbPA6etXm3_RSRrLWvHtLrjLg,205
|
|
8
8
|
sxs/catalog/catalog.py,sha256=R2tO7kpIqBgobvk9tDsvHTYNTH432dlWDrMiBL5g8Nk,25562
|
|
9
9
|
sxs/catalog/create.py,sha256=KL3zHljdLADeLfTDMTSkcVjIFim92Ylc-ziEvpiflEU,4734
|
|
10
10
|
sxs/catalog/description.py,sha256=4eHMde4oGNp69jRmXCsfrIYJ4WK5HYgYFgXyF5htLDM,10830
|
|
11
|
-
sxs/horizons/__init__.py,sha256=
|
|
11
|
+
sxs/horizons/__init__.py,sha256=iGagCQXjhflwAwMIWCvCnvG7XN3xIBnXHxcQx-PzVqw,20406
|
|
12
12
|
sxs/horizons/spec_horizons_h5.py,sha256=63cIGXuCEbJWrkRu3_mjL2gmssWtQ4axBTmg_wo_020,3642
|
|
13
13
|
sxs/horizons/xor_multishuffle_bzip2.py,sha256=y4AKuxmLuj8K1pkdhIoSzENGyMu4uhpiPrBh-XisvK4,6536
|
|
14
14
|
sxs/julia/GWFrames.py,sha256=47H9Ugff7ldGBujiUTcADT3b4MSxUtqmajvSApI91WA,2892
|
|
@@ -19,7 +19,7 @@ sxs/metadata/metric.py,sha256=Tsig1Jm50OO8r89zfjCuQ4i3JAoiazSb4J9qYtPWKgM,41
|
|
|
19
19
|
sxs/simulations/__init__.py,sha256=eXkheYhRaYyKjul5J1IXpoJ7Wq4nr3Tgwr-HSS3BTek,156
|
|
20
20
|
sxs/simulations/analyze.py,sha256=YwX0i_GRATRpvp7T8VheShkclvqYsraGDDKEkJQxJnw,11530
|
|
21
21
|
sxs/simulations/local.py,sha256=e77SeaWMl2PWX_EndQtShOXZxcFKhQsUDQ55R2Njcuc,43
|
|
22
|
-
sxs/simulations/simulation.py,sha256=
|
|
22
|
+
sxs/simulations/simulation.py,sha256=7u5W3H08dKdPa7F4jZEX0XTndSJD3J5o5GTYkiQdCfY,43797
|
|
23
23
|
sxs/simulations/simulations.py,sha256=sMle89VoD1CQni1N23Vjo3h2yj9LHHAtuaB_qfD3Wgg,109
|
|
24
24
|
sxs/utilities/__init__.py,sha256=WSStlqljfgQheMxHGfuofSc5LdmASGvO3FNO3f_zaT0,4806
|
|
25
25
|
sxs/utilities/bitwise.py,sha256=G9ZNYgwDQRhq5wbDf-p2HcUqkEP_IRDiQoXW4KyU17k,13205
|
|
@@ -83,8 +83,8 @@ sxs/zenodo/api/__init__.py,sha256=EM_eh4Q8R5E0vIfMhyIR1IYFfOBu6vA0UTasgX9gHys,21
|
|
|
83
83
|
sxs/zenodo/api/deposit.py,sha256=J4RGvGjh0cEOrN4bBZWEDcPAhNscqB2fzLlvRZ5HTHM,36948
|
|
84
84
|
sxs/zenodo/api/login.py,sha256=hXyxLrx1PALaEEH76XrBvlO5Wwz-qa-MCjkI8UyB3t0,18005
|
|
85
85
|
sxs/zenodo/api/records.py,sha256=nKkhoHZ95CTztHF9Zzaug5p7IiUCJG4Em1i-l-WqH6U,3689
|
|
86
|
-
sxs-2025.0.
|
|
87
|
-
sxs-2025.0.
|
|
88
|
-
sxs-2025.0.
|
|
89
|
-
sxs-2025.0.
|
|
90
|
-
sxs-2025.0.
|
|
86
|
+
sxs-2025.0.20.dist-info/METADATA,sha256=9YEV7SXhTMtoBO_eWI8MaZ9pEqhnJJroIam_rUFRhC0,11941
|
|
87
|
+
sxs-2025.0.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
88
|
+
sxs-2025.0.20.dist-info/entry_points.txt,sha256=51VqSnJT5UOMI4RilR9giG9DNrIDgnsSkuNuYldEnTs,89
|
|
89
|
+
sxs-2025.0.20.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
|
|
90
|
+
sxs-2025.0.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|