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 CHANGED
@@ -1 +1 @@
1
- __version__ = "2025.0.18"
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
@@ -1,9 +1,9 @@
1
1
  {
2
- "julia": "1.11",
2
+ "julia": "1.12",
3
3
  "packages": {
4
4
  "PostNewtonian": {
5
5
  "uuid": "377afc40-5642-4616-8613-b7ebca523866",
6
- "version": "0.10.5"
6
+ "version": "0.10.9"
7
7
  }
8
8
  }
9
9
  }
@@ -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=0,
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
- raise ValueError(f"Empty index to {type(self).__name__} does not make sense")
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.18
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: The MIT License (MIT)
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
20
+ Requires-Dist: juliacall>=0.9.30
42
21
  Requires-Dist: numba>=0.55; implementation_name == 'cpython'
43
- Requires-Dist: numpy>=1.25
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<2.0,>=1.20; extra == 'ecosystem'
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=Zp8-5A0uO7ej2Pvo61c5zj8bbXO39g6v_i7hfxUerOA,26
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=-baaa3Za_KBmmiGjlh2YYLWmvUvZl6GaKKXwNI4S7qU,178
6
- sxs/time_series.py,sha256=OKaLg8tFyrtKcef7900ri-a0C6A8wKxA68KovZXvH6I,41081
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=f7Zfkj9-r-4IOa-LFuqvChxLDMz6nNiAjsjXCG_uWw0,19194
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=A4gE0KGFU6hgE6hR0BCrRqDyrN_4A7MnKIyEYfFn_Rs,43760
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.18.dist-info/METADATA,sha256=BpOnDzYH5t6ge6s_RpYnTVUq8qBjOmMWEZ4KPPIlYH4,13214
87
- sxs-2025.0.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- sxs-2025.0.18.dist-info/entry_points.txt,sha256=51VqSnJT5UOMI4RilR9giG9DNrIDgnsSkuNuYldEnTs,89
89
- sxs-2025.0.18.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
90
- sxs-2025.0.18.dist-info/RECORD,,
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,,