sxs 2023.2.0__tar.gz → 2023.3.1__tar.gz
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-2023.2.0 → sxs-2023.3.1}/CITATION.cff +2 -2
- {sxs-2023.2.0 → sxs-2023.3.1}/PKG-INFO +1 -1
- sxs-2023.3.1/sxs/__version__.py +1 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/julia/GWFrames.py +15 -6
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/julia/__init__.py +25 -8
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/juliapkg.json +1 -1
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/waveform_modes.py +1 -1
- sxs-2023.3.1/tests/test_julia.py +61 -0
- sxs-2023.2.0/sxs/__version__.py +0 -1
- {sxs-2023.2.0 → sxs-2023.3.1}/.codecov.yml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.github/dependabot.yml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.github/scripts/parse_bump_rule.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.github/workflows/build.yml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.github/workflows/pr_rtd_link.yml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.gitignore +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/.readthedocs.yaml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/LICENSE +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/README.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/catalog.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/horizons.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/load.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/metadata.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/time_series.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/api/waveforms.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/html/main.html +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/images/favicon.ico +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/index.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/javascript/mathjax.js +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/julia.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/mathematica.md +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/stylesheets/extra.css +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/00-Introduction.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/01-Metadata.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/02-Catalog.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/03-Horizons.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/04-Waveforms.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/docs/tutorials/05-PreprocessingForFFTs.ipynb +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/mkdocs.yml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/pyproject.toml +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/caltechdata/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/caltechdata/catalog.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/caltechdata/login.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/catalog/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/catalog/catalog.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/catalog/create.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/catalog/description.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/handlers.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/horizons/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/horizons/spec_horizons_h5.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/horizons/xor_multishuffle_bzip2.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/metadata/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/metadata/metadata.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/time_series.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/bitwise.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/decimation/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/decimation/greedy_spline.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/decimation/linear_bisection.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/decimation/peak_greed.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/decimation/suppression.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/dicts.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/downloads.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/files.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/formats.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/inspire.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/comparisons.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/conversion.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/dataset.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/horizons.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/metadata.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/waveform_amp_phase.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/lvcnr/waveforms.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/monotonicity.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/pretty_print.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/ads.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/arxiv.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/fairchild_report.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/inspire.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/journal_abbreviations.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/references/references.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/select.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/smooth_functions.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/sxs_directories.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/sxs_identifiers.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/utilities/url.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/alignment.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/lvc.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/nrar.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/format_handlers/spectre_cce_v1.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/memory.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/mode_utilities.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/transformations.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/waveform_grid.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/waveform_mixin.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/waveforms/waveform_signal.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/api/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/api/deposit.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/api/login.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/api/records.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/catalog.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/creators.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/simannex.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/sxs/zenodo/surrogatemodeling.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/__init__.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/conftest.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_catalog.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_horizons.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_loader.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_metadata.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_time_series.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_transformations.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_utilities.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_waveform_rotations.py +0 -0
- {sxs-2023.2.0 → sxs-2023.3.1}/tests/test_waveforms.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sxs
|
|
3
|
-
Version: 2023.
|
|
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/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2023.3.1"
|
|
@@ -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=
|
|
54
|
-
ell_max=
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import sxs
|
|
3
|
+
from sxs import julia
|
|
4
|
+
|
|
5
|
+
def test_PNWaveform():
|
|
6
|
+
M1 = 0.3
|
|
7
|
+
M2 = 0.7
|
|
8
|
+
chi1 = [0.1, 0.2, 0.3]
|
|
9
|
+
chi2 = [-0.2, 0.1, -0.3]
|
|
10
|
+
Omega_i = 0.01
|
|
11
|
+
PNOrder = 4.0
|
|
12
|
+
waveform_pn_order = 4.0
|
|
13
|
+
saves_per_orbit = 32
|
|
14
|
+
w1 = sxs.julia.PNWaveform(
|
|
15
|
+
M1, M2, chi1, chi2, Omega_i,
|
|
16
|
+
PNOrder=PNOrder, waveform_pn_order=waveform_pn_order,
|
|
17
|
+
saves_per_orbit=saves_per_orbit
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
Approximant = "TaylorT1"
|
|
21
|
+
delta = sxs.julia.PostNewtonian.mass_difference_ratio(M1, M2)
|
|
22
|
+
chi1_i = chi1
|
|
23
|
+
chi2_i = chi2
|
|
24
|
+
Omega_orb_i = Omega_i
|
|
25
|
+
inertial = True
|
|
26
|
+
w2 = sxs.julia.GWFrames.PNWaveform(Approximant, delta, chi1_i, chi2_i, Omega_orb_i, inertial=inertial)
|
|
27
|
+
|
|
28
|
+
for w in [w1, w2]:
|
|
29
|
+
n_times = w.n_times
|
|
30
|
+
assert w.t[0] == 0.0
|
|
31
|
+
assert w.data.shape == (n_times, 77)
|
|
32
|
+
assert w.data_type == "h"
|
|
33
|
+
assert w.ell_min == 2
|
|
34
|
+
assert w.ell_max == 8
|
|
35
|
+
assert w.spin_weight == -2
|
|
36
|
+
assert w.frame.shape == (1, 4)
|
|
37
|
+
assert w.frame_type == "inertial"
|
|
38
|
+
assert w.M1.shape == (n_times,)
|
|
39
|
+
assert w.M2.shape == (n_times,)
|
|
40
|
+
assert w.chi1.shape == (n_times, 3)
|
|
41
|
+
assert w.chi2.shape == (n_times, 3)
|
|
42
|
+
assert w.coorbital_frame.shape == (n_times, 4)
|
|
43
|
+
assert w.v.shape == (n_times,)
|
|
44
|
+
assert w.orbital_phase.shape == (n_times,)
|
|
45
|
+
|
|
46
|
+
assert np.allclose(w1.t[:-10], w2.t[:-10])
|
|
47
|
+
assert np.allclose(w1.data[:-10, :], w2.data[:-10, :], rtol=1e-3, atol=1e-5)
|
|
48
|
+
assert np.allclose(w1.frame, w2.frame)
|
|
49
|
+
assert np.allclose(w1.M1[:-10], w2.M1[:-10])
|
|
50
|
+
assert np.allclose(w1.M2[:-10], w2.M2[:-10])
|
|
51
|
+
assert np.allclose(w1.chi1[:-10, :], w2.chi1[:-10, :], rtol=1e-3)
|
|
52
|
+
assert np.allclose(w1.chi2[:-10, :], w2.chi2[:-10, :], rtol=1e-3)
|
|
53
|
+
assert np.allclose(w1.coorbital_frame[:-10, :], w2.coorbital_frame[:-10, :])
|
|
54
|
+
|
|
55
|
+
w1_corot = w1.copy().to_corotating_frame()
|
|
56
|
+
w2_corot = w2.copy().to_corotating_frame()
|
|
57
|
+
for (w, w_corot) in [(w1, w1_corot), (w2, w2_corot)]:
|
|
58
|
+
assert np.array_equal(w.t, w_corot.t)
|
|
59
|
+
assert w.data.shape == w_corot.data.shape
|
|
60
|
+
assert w.coorbital_frame.shape == w_corot.frame.shape
|
|
61
|
+
assert w_corot.frame_type == "corotating"
|
sxs-2023.2.0/sxs/__version__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2023.2.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|