sxs 2023.2.0__py3-none-any.whl → 2023.3.1__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__ = "2023.2.0"
1
+ __version__ = "2023.3.1"
sxs/julia/GWFrames.py CHANGED
@@ -1,3 +1,4 @@
1
+ import numpy as np
1
2
  import quaternionic
2
3
  from .. import WaveformModes
3
4
  from . import PostNewtonian
@@ -46,17 +47,25 @@ def PNWaveform(
46
47
  **kwargs
47
48
  )
48
49
 
50
+ coorbital_frame = quaternionic.array(w1.frame.to_numpy())
51
+ frame = np.array([quaternionic.one]) if inertial else coorbital_frame
52
+ frame_type = "inertial" if inertial else "coorbital"
53
+
49
54
  w = WaveformModes(
50
- w1.data,
51
- time=w1.t,
55
+ w1.data.to_numpy(),
56
+ time=w1.t.to_numpy(),
52
57
  modes_axis=1,
53
- ell_min=2,
54
- ell_max=8,
58
+ ell_min=ell_min,
59
+ ell_max=ell_max,
60
+ spin_weight=-2,
61
+ frame=frame,
62
+ frame_type=frame_type,
63
+ data_type="h",
55
64
  M1=w1.M1.to_numpy(),
56
65
  M2=w1.M2.to_numpy(),
57
66
  chi1=w1.chi1.to_numpy(),
58
67
  chi2=w1.chi2.to_numpy(),
59
- frame=quaternionic.array(w1.frame.to_numpy()),
68
+ coorbital_frame=coorbital_frame,
60
69
  v=w1.v.to_numpy(),
61
70
  orbital_phase=w1.Phi.to_numpy(),
62
71
  )
@@ -66,7 +75,7 @@ def PNWaveform(
66
75
  w.M2 = w._metadata["M2"]
67
76
  w.chi1 = w._metadata["chi1"]
68
77
  w.chi2 = w._metadata["chi2"]
69
- #w.frame = w._metadata["frame"] ## Already done
78
+ w.coorbital_frame = w._metadata["coorbital_frame"]
70
79
  w.v = w._metadata["v"]
71
80
  w.orbital_phase = w._metadata["orbital_phase"]
72
81
 
sxs/julia/__init__.py CHANGED
@@ -1,3 +1,4 @@
1
+ import numpy as np
1
2
  import quaternionic
2
3
  from .. import WaveformModes
3
4
 
@@ -6,7 +7,8 @@ import juliacall
6
7
 
7
8
  PostNewtonian = juliacall.newmodule("PN")
8
9
  PostNewtonian.seval("using PostNewtonian")
9
- GWFrames = PostNewtonian.GWFrames
10
+
11
+ from . import GWFrames
10
12
 
11
13
  def pkg_update():
12
14
  """Update all installed Julia packages (but not julia itself)."""
@@ -16,6 +18,7 @@ def pkg_update():
16
18
 
17
19
  def PNWaveform(
18
20
  M1, M2, chi1, chi2, Omega_i, *,
21
+ inertial=True,
19
22
  ell_min=2, ell_max=8, waveform_pn_order=None,
20
23
  **orbital_evolution_kwargs
21
24
  ):
@@ -33,7 +36,7 @@ def PNWaveform(
33
36
  - `v` (array): The orbital velocity as a function of time.
34
37
  - `orbital_phase` (array): The orbital phase as a function of
35
38
  time.
36
-
39
+
37
40
  This is a wrapper around the Julia functions
38
41
  `PostNewtonian.orbital_evolution` and
39
42
  `PostNewtonian.inertial_waveform`. See [the Julia
@@ -45,7 +48,7 @@ def PNWaveform(
45
48
  docs](https://moble.github.io/PostNewtonian.jl/dev/interface/python/)
46
49
  for details. Also, the GWFrames submodule of this module provides
47
50
  another interface.
48
-
51
+
49
52
  """
50
53
  # Integrate the orbital dynamics
51
54
  inspiral = PostNewtonian.orbital_evolution(
@@ -55,9 +58,19 @@ def PNWaveform(
55
58
 
56
59
  # Compute the waveform in the inertial frame
57
60
  waveform_pn_order = waveform_pn_order or PostNewtonian.typemax(PostNewtonian.Int)
58
- h = PostNewtonian.inertial_waveform(
59
- inspiral, ell_min=ell_min, ell_max=ell_max, PNOrder=waveform_pn_order
60
- ).to_numpy().T
61
+ coorbital_frame = quaternionic.array(values[8:12, :].to_numpy().T)
62
+ if inertial:
63
+ frame = np.array([quaternionic.one])
64
+ frame_type = "inertial"
65
+ h = PostNewtonian.inertial_waveform(
66
+ inspiral, ell_min=ell_min, ell_max=ell_max, PNOrder=waveform_pn_order
67
+ ).to_numpy().T
68
+ else:
69
+ frame = coorbital_frame
70
+ frame_type = "coorbital"
71
+ h = PostNewtonian.coorbital_waveform(
72
+ inspiral, ell_min=ell_min, ell_max=ell_max, PNOrder=waveform_pn_order
73
+ ).to_numpy().T
61
74
 
62
75
  w = WaveformModes(
63
76
  h,
@@ -65,11 +78,15 @@ def PNWaveform(
65
78
  modes_axis=1,
66
79
  ell_min=ell_min,
67
80
  ell_max=ell_max,
81
+ spin_weight=-2,
82
+ frame=frame,
83
+ frame_type=frame_type,
84
+ data_type="h",
68
85
  M1=values[0, :].to_numpy(),
69
86
  M2=values[1, :].to_numpy(),
70
87
  chi1=values[2:5, :].to_numpy().T,
71
88
  chi2=values[5:8, :].to_numpy().T,
72
- frame=quaternionic.array(values[8:12, :].to_numpy().T),
89
+ coorbital_frame=coorbital_frame,
73
90
  v=values[12, :].to_numpy(),
74
91
  orbital_phase=values[13, :].to_numpy(),
75
92
  )
@@ -79,7 +96,7 @@ def PNWaveform(
79
96
  w.M2 = w._metadata["M2"]
80
97
  w.chi1 = w._metadata["chi1"]
81
98
  w.chi2 = w._metadata["chi2"]
82
- #w.frame = w._metadata["frame"] ## Already done
99
+ w.coorbital_frame = w._metadata["coorbital_frame"]
83
100
  w.v = w._metadata["v"]
84
101
  w.orbital_phase = w._metadata["orbital_phase"]
85
102
 
sxs/juliapkg.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "packages": {
4
4
  "PostNewtonian": {
5
5
  "uuid": "377afc40-5642-4616-8613-b7ebca523866",
6
- "version": "0.8.0"
6
+ "version": "0.9"
7
7
  }
8
8
  }
9
9
  }
@@ -876,7 +876,7 @@ class WaveformModes(WaveformMixin, TimeSeries):
876
876
  ll = self.expectation_value_LL
877
877
 
878
878
  # Solve ⟨w|LᵇLᵃ|w⟩ ωₐ = -⟨w|Lᵇ∂ₜ|w⟩ for ω
879
- ω = -np.linalg.solve(ll, ldt)
879
+ ω = -np.linalg.solve(ll, ldt[..., np.newaxis])[..., 0]
880
880
 
881
881
  return ω
882
882
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sxs
3
- Version: 2023.2.0
3
+ Version: 2023.3.1
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/
@@ -1,7 +1,7 @@
1
1
  sxs/__init__.py,sha256=mDh2J6wLpie1GJT-Z3cmB3poEOvjXk-JsRu-p9U7zlI,2512
2
- sxs/__version__.py,sha256=8J0K7gy6dHxZ0PVCGSAx00hLycCaLjH0epD4_pqqTK8,25
2
+ sxs/__version__.py,sha256=ZUB4Y9Iv9pGtodvEnODNEQt5ZD0hbfm5urGs3QoD-iQ,25
3
3
  sxs/handlers.py,sha256=odBzrk5f-Q3Nzm2_brKBGiSgo-x8q4DmCt0H0E6J8Ko,20929
4
- sxs/juliapkg.json,sha256=u7kSSlR0fsObNs92WA4aNkl6sg-B9FagLK_jKmZCons,176
4
+ sxs/juliapkg.json,sha256=cD8OYJOG-cyVvmrnvoiJOl_cxSUAOYqOnEMmg_AESj0,174
5
5
  sxs/time_series.py,sha256=c3doMFyRrC33_YjFO4CLGhBOECWECo4TGzrhetSG8EQ,39641
6
6
  sxs/caltechdata/__init__.py,sha256=s-RXyBiImKsQenqJIU6NAjlsjOX7f1MkIIW9rPtWYyg,14761
7
7
  sxs/caltechdata/catalog.py,sha256=E2nystCaMZLKxTlLgfbfpGkckfkLyIzhn3YeEI3nQYc,4914
@@ -13,8 +13,8 @@ sxs/catalog/description.py,sha256=4eHMde4oGNp69jRmXCsfrIYJ4WK5HYgYFgXyF5htLDM,10
13
13
  sxs/horizons/__init__.py,sha256=KR0aaEyreLHJItMBExGhG8bhRrHfPc0jBgPMsHysoEY,16265
14
14
  sxs/horizons/spec_horizons_h5.py,sha256=63cIGXuCEbJWrkRu3_mjL2gmssWtQ4axBTmg_wo_020,3642
15
15
  sxs/horizons/xor_multishuffle_bzip2.py,sha256=y4AKuxmLuj8K1pkdhIoSzENGyMu4uhpiPrBh-XisvK4,6536
16
- sxs/julia/GWFrames.py,sha256=WIm6TKm_2crM4TDY098XOKZVccUDzN8ndDN5RrG9eHI,2558
17
- sxs/julia/__init__.py,sha256=jJ5nyg0z5ao92TuSLM9cQPgy0pddzZLf-jJ-ZI5ei0I,2985
16
+ sxs/julia/GWFrames.py,sha256=47H9Ugff7ldGBujiUTcADT3b4MSxUtqmajvSApI91WA,2892
17
+ sxs/julia/__init__.py,sha256=uSLP_xfU-GZG7IO5vs0TEkCR4LH8aBYMF-852wDY3kI,3490
18
18
  sxs/metadata/__init__.py,sha256=KCvJ9Cf1WhIZp-z28UzarKcmUAzV2BOv2gqKiorILjo,149
19
19
  sxs/metadata/metadata.py,sha256=_vGqMUbeiN0fecJj9f9f9ex56WgSZuwwBXykUuj1_ZI,27679
20
20
  sxs/utilities/__init__.py,sha256=Np27-TQRWfGP8HtDWlZcnZ_UL8QHBXLjXHGHGAbHD2g,4580
@@ -58,7 +58,7 @@ sxs/waveforms/mode_utilities.py,sha256=gxsW-hunCoIReBVv9IrkGLdshr0rmztbH-JRgD6D9
58
58
  sxs/waveforms/transformations.py,sha256=S5C-xnCk2umZlVsYgciyp7VMGZA8NI6md7OZp72upJU,9124
59
59
  sxs/waveforms/waveform_grid.py,sha256=aBlcsudj1XozZD7n42sh6-nzysKNalAdHJkVQ7M6fE4,180
60
60
  sxs/waveforms/waveform_mixin.py,sha256=S0RNe2HkwnqdCyGEarGYmoXD_DkTWGorsiGGIBWOam8,1179
61
- sxs/waveforms/waveform_modes.py,sha256=dA9nmWoGEq7dHFJbpMu_VAHtizptyQqwalKAe7ZRKwU,56594
61
+ sxs/waveforms/waveform_modes.py,sha256=OPv6UXIlWhLswm1r36K_zltF20vYh3G6EjrPGAHtWUQ,56619
62
62
  sxs/waveforms/waveform_signal.py,sha256=Ojrt6DSDdleB0qmu6UwjjPnYdaWsrjnpBA_8dhnM_q4,182
63
63
  sxs/waveforms/format_handlers/__init__.py,sha256=0wsnuBYCYsCkN19L2ipga7BtigvPyBcqiy_4qrzmLpE,50
64
64
  sxs/waveforms/format_handlers/lvc.py,sha256=kUiLT-QbBTH5Di2touWwXqasQ8Q777mV9zhRIHEqjPk,7789
@@ -75,7 +75,7 @@ sxs/zenodo/api/__init__.py,sha256=EM_eh4Q8R5E0vIfMhyIR1IYFfOBu6vA0UTasgX9gHys,21
75
75
  sxs/zenodo/api/deposit.py,sha256=uor1irig-gBvrEQNg_Wb0ZuiXhZC9AeLwuJu3vB30e0,36946
76
76
  sxs/zenodo/api/login.py,sha256=Yz0ytgi81_5BpDzhrS0WPMXlvU2qUaCK8yn8zxfEbko,18007
77
77
  sxs/zenodo/api/records.py,sha256=nKkhoHZ95CTztHF9Zzaug5p7IiUCJG4Em1i-l-WqH6U,3689
78
- sxs-2023.2.0.dist-info/METADATA,sha256=Quttf97Q_Z9dfCqUGXHk9XepZHVrv3vkJKiwKNsWtVg,9419
79
- sxs-2023.2.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
80
- sxs-2023.2.0.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
81
- sxs-2023.2.0.dist-info/RECORD,,
78
+ sxs-2023.3.1.dist-info/METADATA,sha256=jdWMjW8wIOoHyW9fNhKVUhuYAaMheCcx1QJVauaOtUs,9419
79
+ sxs-2023.3.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
80
+ sxs-2023.3.1.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
81
+ sxs-2023.3.1.dist-info/RECORD,,
File without changes