diff --git a/.github/workflows/test_suite.yml b/.github/workflows/test_suite.yml index 9d64f3e..032f6ff 100644 --- a/.github/workflows/test_suite.yml +++ b/.github/workflows/test_suite.yml @@ -4,7 +4,7 @@ on: branches: [ main ] jobs: - build: + python_3_10_job: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -15,5 +15,18 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt + - name: Test with pytest + run: python -m unittest discover tests + python_3_12_job: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: '3.12' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt - name: Test with pytest run: python -m unittest discover tests \ No newline at end of file diff --git a/CITATION.cff b/CITATION.cff index 8c24977..8457a6d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -30,7 +30,7 @@ authors: - family-names: "Valorz" given-names: "Finny" title: "mayawaves" -version: v2023.10 -date-released: 2023-10-23 +version: v2024.4 +date-released: 2024-04-05 url: "https://github.com/MayaWaves/mayawaves" doi: 10.5281/zenodo.10035526 \ No newline at end of file diff --git a/docs/html/_sources/source/getting_started.rst.txt b/docs/html/_sources/source/getting_started.rst.txt index e45a2e4..b38e493 100644 --- a/docs/html/_sources/source/getting_started.rst.txt +++ b/docs/html/_sources/source/getting_started.rst.txt @@ -31,11 +31,17 @@ at the top of your file. You can also import specific parts of mayawaves instead Requirements ------------------------------------- -Due to its dependencies, this package requires 3.9 :math:`\leq` python :math:`\leq` 3.10. +For most usecases, this package requires 3.9 :math:`\leq` python. It also relies upon the following python packages which are automatically installed from pip when you install mayawaves:: - numpy, scipy, pandas, romspline, wget, matplotlib, mock, numba, scri + numpy, scipy, pandas, romspline, wget, matplotlib, mock + + +However, if you want to use the ability to switch to a center-of-mass frame for the gravitational radiation, that has +additional dependencies that require python :math:`\leq` 3.10 as well as the following dependencies:: + + numba, scri This package has been tested with Einstein Toolkit Release Meitner (released on December 6th, 2023). It supports output from the following thorns:: diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index 6ddae9d..18f8977 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "source/contributing", "source/getting_help", "source/getting_started", "source/mayawaves.coalescence", "source/mayawaves.compactobject", "source/mayawaves.radiation", "source/mayawaves.utils", "source/notebooks/catalog_utils", "source/notebooks/compact_objects", "source/notebooks/creating_h5", "source/notebooks/exporting_lvk", "source/notebooks/gravitational_waves", "source/notebooks/reading_raw_files"], "filenames": ["index.rst", "source/contributing.rst", "source/getting_help.rst", "source/getting_started.rst", "source/mayawaves.coalescence.rst", "source/mayawaves.compactobject.rst", "source/mayawaves.radiation.rst", "source/mayawaves.utils.rst", "source/notebooks/catalog_utils.ipynb", "source/notebooks/compact_objects.ipynb", "source/notebooks/creating_h5.ipynb", "source/notebooks/exporting_lvk.ipynb", "source/notebooks/gravitational_waves.ipynb", "source/notebooks/reading_raw_files.ipynb"], "titles": ["Welcome to Mayawaves\u2019s documentation!", "Contributor\u2019s Guide", "Getting Help", "Getting Started", "mayawaves.coalescence module", "mayawaves.compactobject module", "mayawaves.radiation module", "mayawaves.utils package", "Catalog Utils", "Compact Objects", "Creating a Mayawaves h5 File", "Exporting to LVK Catalog Format", "Gravitational Waves", "Reading raw simulation files"], "terms": {"i": [0, 1, 3, 4, 5, 6, 7], "python": [0, 1, 3], "librari": [0, 1, 2, 3], "analysi": [0, 1], "numer": [0, 3, 8], "rel": [0, 3, 8], "simul": [0, 4, 5, 6, 7], "binari": [0, 7], "black": [0, 3, 4], "hole": [0, 3, 4], "perform": [0, 4, 7], "einstein": [0, 3], "toolkit": [0, 3], "http": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13], "einsteintoolkit": 0, "org": [0, 3, 4, 6, 7, 9, 10, 11, 12, 13], "provid": [0, 3, 4, 6, 7], "through": [0, 3, 4, 6], "maya": [0, 1, 7, 9, 11, 12], "public": [0, 3, 7], "waveform": [0, 3, 7, 9, 12], "catalog": [0, 4, 7, 9, 12], "cgp": [0, 8, 9, 11, 12], "ph": [0, 8, 9, 11, 12], "utexa": [0, 8, 9, 11, 12], "edu": [0, 2, 8, 9, 11, 12], "produc": 0, "larg": 0, "amount": 0, "data": [0, 3, 4, 5, 6, 7, 11], "ar": [0, 1, 3, 4, 6, 7], "gener": [0, 3, 7], "over": [0, 4, 5, 6], "cours": 0, "mani": 0, "dai": 0, "The": [0, 1, 3, 4, 5, 6, 7], "typic": 0, "broken": [0, 1], "multipl": 0, "output": [0, 3, 7], "directori": [0, 1, 7, 13], "within": [0, 4, 6, 7], "which": [0, 3, 4, 5, 6, 7], "must": [0, 7], "stitch": [0, 3, 7], "togeth": [0, 3, 7], "process": [0, 1], "whole": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13], "design": 0, "streamlin": 0, "analsi": 0, "raw": [0, 4, 6, 7], "store": [0, 3, 4, 6, 7, 10, 11], "them": [0, 1], "h5": [0, 4, 7], "file": [0, 2, 4, 7, 8], "format": [0, 3, 7, 9, 12], "handl": [0, 3], "more": [0, 3], "effici": 0, "than": [0, 4, 7], "ascii": [0, 3, 4, 7], "reduc": 0, "disc": 0, "space": 0, "taken": 0, "while": 0, "still": 0, "retain": 0, "precis": 0, "some": [0, 3], "kei": [0, 4, 7], "function": [0, 1, 3, 4, 5], "follow": [0, 1, 3, 8], "read": [0, 3, 7], "track": [0, 1], "properti": [0, 4, 5, 6, 7], "trajectori": [0, 3], "spin": [0, 3, 4, 5, 6, 7], "mass": [0, 3, 4, 5, 6, 7], "horizon": [0, 3, 4, 5, 7], "inform": [0, 3, 5, 6, 7, 10], "etc": [0, 3, 8], "comput": [0, 3, 4, 6, 7], "about": [0, 3, 4], "orbit": [0, 4, 7], "eccentr": [0, 3, 4, 8], "separ": [0, 3, 4, 7, 8, 13], "frequenc": [0, 4, 6, 7], "kick": [0, 4], "quantiti": 0, "pertain": [0, 3, 5, 6], "gravit": [0, 3, 4, 6, 7, 8], "radiat": [0, 3, 4], "psi_4": [0, 3, 4, 6], "strain": [0, 4, 6], "extrapol": [0, 4, 6, 7], "energi": [0, 3, 4, 6], "export": [0, 3, 7], "requir": [0, 7], "ligo": [0, 7], "analys": [0, 3], "analyz": 0, "learn": 0, "how": 0, "us": [0, 1, 4, 5, 6, 7], "both": [0, 1], "your": [0, 3], "own": 0, "get": [0, 5], "start": [0, 6], "help": [0, 1], "contributor": 0, "guid": 0, "creat": [0, 1, 4, 6, 7], "wave": [0, 3, 4, 6, 7], "compact": [0, 3, 4, 5, 10], "object": [0, 3, 4, 5, 6, 7, 8, 10], "lvk": [0, 3], "util": [0, 10, 11, 13], "coalesc": [0, 5, 7], "modul": [0, 3], "compactobject": [0, 4], "radiationbundl": [0, 4, 6], "radiationspher": [0, 3, 6], "radiationmod": [0, 3, 6], "packag": [0, 3], "postprocessingutil": [0, 3, 10, 11, 13], "catalogutil": [0, 3, 8], "postnewtonianutil": 0, "index": 0, "mayawav": [1, 2, 8, 9, 11, 12, 13], "intend": 1, "grow": 1, "expand": 1, "addit": [1, 3], "tool": 1, "we": [1, 3, 8], "welcom": 1, "input": 1, "commun": 1, "new": [1, 6], "featur": 1, "implement": 1, "In": [1, 3], "order": [1, 4, 6, 7], "smooth": 1, "workflow": 1, "you": [1, 2, 3, 6, 7, 12], "repositori": [1, 2, 3], "branch": 1, "all": [1, 3, 4, 5, 6, 7], "do": 1, "ani": [1, 2, 3], "main": [1, 3], "mai": [1, 3], "primari": [1, 3, 4, 7], "can": [1, 3, 4, 6, 7, 12], "step": 1, "section": [1, 3], "onli": [1, 6], "need": 1, "done": [1, 3], "onc": [1, 9, 11, 12], "click": 1, "button": 1, "github": [1, 2, 3], "com": [1, 2, 3, 11], "Then": [1, 9, 10, 11, 12, 13], "clone": [1, 3], "machin": 1, "git": [1, 3], "your_workspac": 1, "link": 1, "upstream": 1, "cd": [1, 3], "remot": 1, "add": 1, "setup": 1, "checkout": 1, "fetch": 1, "set": [1, 4, 6, 9, 10, 11, 12, 13], "pull": 1, "To": [1, 3, 8, 9, 10, 11, 12, 13], "regularli": 1, "push": 1, "origin": [1, 4, 6, 7], "b": [1, 3], "name": [1, 4, 7, 8], "desir": [1, 4, 5, 7], "commit": 1, "frequent": 1, "descript": 1, "messag": 1, "when": [1, 3, 4, 6, 7], "readi": 1, "first": [1, 4, 6, 8], "futur": 1, "period": 1, "rebas": 1, "f": [1, 3, 8, 9], "ensur": 1, "exist": [1, 4], "pass": 1, "suit": 1, "from": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13], "m": [1, 3, 4, 5, 6, 7, 9, 11], "unittest": 1, "discov": 1, "pleas": [1, 2, 3], "thei": [1, 7], "also": [1, 3, 7, 9, 11, 12], "ve": 1, "made": 1, "doc": 1, "rm": [1, 3], "r": [1, 3, 4, 9, 12, 13], "html": 1, "doctre": 1, "happi": 1, "review": 1, "develop": [1, 2], "team": 1, "If": [2, 3, 4, 6, 7], "encount": 2, "bug": 2, "unexpect": 2, "behavior": 2, "an": [2, 4], "issu": 2, "feel": 2, "free": 2, "contact": 2, "directli": [2, 3], "dferg": 2, "illinoi": 2, "have": [2, 5, 7, 9, 12], "question": [2, 3, 7], "regard": [2, 7], "either": [3, 4, 6], "pypi": 3, "sourc": [3, 4], "pip": 3, "code": [3, 7], "put": 3, "import": [3, 7, 8, 9, 10, 11, 12, 13], "top": 3, "specif": [3, 4, 6], "part": [3, 4, 5, 6, 11], "instead": [3, 7], "would": [3, 6], "rather": [3, 7], "create_h5_from_simul": [3, 7, 10], "due": 3, "its": [3, 4, 6], "depend": 3, "3": [3, 6, 7, 8, 9, 10, 11, 12], "9": [3, 8, 9, 12], "leq": [3, 4, 6], "10": [3, 7, 8, 9, 12], "It": 3, "reli": 3, "upon": [3, 7], "automat": 3, "numpi": [3, 4, 6, 7, 12, 13], "scipi": 3, "panda": [3, 4], "romsplin": 3, "wget": 3, "matplotlib": [3, 9, 12, 13], "mock": 3, "numba": 3, "scri": 3, "ha": [3, 4, 6], "been": [3, 6], "test": 3, "releas": 3, "meitner": 3, "decemb": 3, "6th": 3, "2023": 3, "support": 3, "thorn": 3, "ahfinderdirect": 3, "puncturetrack": 3, "quasilocalmeasur": 3, "multipol": [3, 4], "weylscal4": 3, "ihspin": 3, "shifttrack": 3, "ylm_decomp": 3, "runstat": [3, 4], "research": 3, "bibtex": [3, 7], "softwar": 3, "ferguson_mayawaves_2023": 3, "author": 3, "ferguson": 3, "deborah": 3, "ann": 3, "surendra": 3, "gracia": 3, "linar": 3, "miguel": 3, "iglesia": 3, "hector": 3, "jan": 3, "aasim": 3, "martinez": 3, "erick": 3, "lu": 3, "meoni": 3, "filippo": 3, "nowicki": 3, "ryan": 3, "trostel": 3, "max": [3, 4, 6], "tsao": 3, "bing": 3, "jyun": 3, "valorz": 3, "finni": 3, "doi": 3, "5281": 3, "zenodo": [3, 9, 10, 11, 12, 13], "10035526": 3, "month": 3, "oct": 3, "titl": 3, "url": 3, "version": 3, "v2023": 3, "year": 3, "apa": 3, "d": 3, "": [3, 4, 5], "h": [3, 4, 6], "A": [3, 4, 6], "e": [3, 6, 7], "l": [3, 4, 5, 6, 11, 12], "These": 3, "citat": 3, "download": [3, 7, 9, 10, 11, 12, 13], "heart": 3, "interact": [3, 4, 6, 7, 8], "contain": [3, 4, 5, 6, 7], "everyth": 3, "each": [3, 4, 6, 7], "involv": 3, "refer": [3, 4], "tutori": [3, 9, 10, 11], "detail": 3, "list": [3, 4, 5, 6, 7], "well": [3, 7], "attribut": 3, "access": 3, "secondari": [3, 4, 7], "final": [3, 4], "larger": [3, 4, 7], "initi": [3, 4, 7], "primarili": 3, "behind": 3, "scene": 3, "extract": [3, 4, 6, 7], "concentr": 3, "sphere": [3, 6], "sever": 3, "express": [3, 6], "wai": 3, "independ": 3, "locat": [3, 4, 6, 7], "decompos": [3, 4, 6], "term": [3, 6], "spheric": [3, 4, 6], "harmon": [3, 4, 6], "t": [3, 4, 6, 9, 12, 13], "theta": [3, 4, 6, 12], "phi": [3, 4, 6, 12], "sum_": [3, 4, 6], "ell": [3, 4, 6], "psi_": [3, 12, 13], "4": [3, 8, 9, 10, 11, 12, 13], "_": [3, 4, 6], "2": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "y_": [3, 4, 6], "pair": [3, 6], "There": 3, "includ": [3, 4, 5, 6, 7], "shown": 3, "creating_h5": [3, 9, 11, 12], "exporting_lvk": 3, "enabl": 3, "user": 3, "entir": 3, "metadata": [3, 4, 7, 8, 10], "walk": 3, "two": [3, 4, 7], "want": [3, 7], "describ": [3, 4, 6], "below": [3, 4], "begin": [3, 4, 5], "instruct": 3, "With": 3, "hand": 3, "h5_filepath": [3, 4], "limit": 3, "For": [3, 7], "exampl": 3, "exhaust": 3, "coales": [3, 4], "method": [3, 4, 6], "see": 3, "call": 3, "primary_compact_object": [3, 4, 9], "secondary_compact_object": [3, 4, 9], "final_compact_object": [3, 4], "associ": [3, 4, 6, 7], "know": 3, "relev": 3, "appar": [3, 5], "document": [3, 7], "back": [3, 4], "summarize_coalesc": [3, 7], "quick": 3, "summari": [3, 7], "paramet": [3, 4, 5, 6, 7, 10], "plot": [3, 7, 9, 12], "gravitaiton": 3, "monitor": 3, "ongo": 3, "run": [3, 7, 9, 10, 11, 12, 13], "simpli": 3, "make": 3, "get_stitched_data": [3, 7], "given": [3, 4, 5, 6, 7], "return": [3, 4, 5, 6, 7], "arrai": [3, 4, 5, 6, 7], "same": [3, 6, 7], "request": [3, 5, 6, 7], "full": [3, 5, 7], "search": 3, "even": 3, "class": [4, 5, 6, 7], "str": [4, 5, 7], "fundament": 4, "average_run_spe": 4, "float": [4, 5, 6, 7], "averag": 4, "speed": 4, "hr": 4, "catalog_id": [4, 7], "id": [4, 7, 8, 11], "center_of_mass": [4, 6], "tupl": [4, 5, 6, 7], "center": [4, 6, 7, 8], "coordin": [4, 13], "posit": [4, 5], "close": 4, "compact_object_by_id": 4, "int": [4, 5, 6, 7], "type": [4, 5, 6, 7], "compact_object_data_for_object": 4, "object_num": 4, "ndarrai": [4, 5, 6, 7], "intern": [4, 5, 7], "compact_object_metadata_dict": 4, "dict": [4, 6, 7], "retriev": 4, "relat": 4, "compact_object": 4, "denergy_dt_radi": [4, 6], "lmin": [4, 6], "none": [4, 6, 7], "lmax": [4, 6], "extraction_radiu": [4, 6, 7, 11], "rate": [4, 6], "arxiv": [4, 6, 7], "ab": [4, 6, 7], "0707": [4, 6], "4654": [4, 6], "total": [4, 6, 7, 8], "sum": [4, 6], "mode": [4, 6], "option": [4, 6, 7], "minumum": [4, 6], "valu": [4, 5, 6, 7, 8], "rang": [4, 6], "maximum": [4, 5, 6, 8], "radiu": [4, 5, 6, 7], "infinit": [4, 6, 7], "time": [4, 5, 6, 7, 9], "np": [4, 5, 12, 13], "de": [4, 6], "dt": [4, 6], "dp_dt_radiat": [4, 6], "deriv": [4, 6, 7], "linear": [4, 6], "momentum": [4, 5, 6, 7], "being": [4, 7], "dp": [4, 6], "eccentricity_and_mean_anomaly_at_tim": 4, "start_tim": 4, "desired_tim": [4, 5], "mean": [4, 5], "anomali": 4, "1810": [4, 7], "00036": [4, 7], "four": 4, "unabl": 4, "fit": 4, "successfulli": 4, "estim": 4, "base": [4, 7], "defin": [4, 6, 7], "math": 4, "pi": [4, 6, 12], "rac": 4, "t_": 4, "prev": 4, "next": 4, "where": [4, 5, 6, 7], "periapsi": 4, "arg": 4, "energy_radi": [4, 6], "cummul": [4, 6], "nergi": 4, "cumul": [4, 6], "extrapolate_psi4_to_infinite_radiu": 4, "1": [4, 6, 7, 8, 9, 10, 11, 12], "calcul": [4, 7], "finit": 4, "obtain": [4, 7, 8, 10, 11, 13], "1008": [4, 6], "4360": [4, 6], "1108": [4, 6], "4421": [4, 6], "default": [4, 6, 7], "remnant": 4, "form": [4, 5], "after": 4, "merger": 4, "path": [4, 7, 9, 10, 11, 12], "included_extraction_radii": 4, "radii": [4, 6], "included_mod": [4, 6], "label": [4, 6, 9], "initial_orbital_frequ": 4, "init": 4, "vector": [4, 5], "between": [4, 7], "initial_separ": 4, "l_max": [4, 6], "linear_momentum_radi": [4, 6], "inear": 4, "mass_ratio": [4, 7, 8], "ratio": [4, 7], "alwai": 4, "greater": 4, "divid": 4, "smaller": [4, 7], "q": [4, 7, 8], "m_1": [4, 7], "m_2": [4, 7], "merge_tim": [4, 8], "goe": 4, "1e": 4, "what": [4, 7], "wa": [4, 6], "object_numb": 4, "orbital_angular_momentum_unit_vector": 4, "angular": [4, 7], "unit": 4, "orbital_angular_momentum_unit_vector_at_tim": 4, "orbital_frequ": [4, 7], "orbital_frequency_at_tim": 4, "orbital_phase_in_xy_plan": 4, "phase": [4, 6], "xy": [4, 5, 9], "plane": [4, 5, 6, 9], "parameter_fil": 4, "dictionari": [4, 6, 7], "text": 4, "rpar": 4, "par": [4, 8], "psi4_amp_phase_for_mod": 4, "0": [4, 6, 7, 8, 9, 10, 11, 12], "amplitud": [4, 6], "psi4_max_time_for_mod": 4, "reach": [4, 6], "peak": [4, 6], "specifi": [4, 6, 7], "singl": [4, 6], "psi4_real_imag_for_mod": [4, 12], "real": [4, 6, 12], "imaginari": [4, 6], "compon": [4, 6, 9], "psi4_sourc": 4, "could": 4, "weylscal": 4, "radiation_fram": 4, "current": [4, 6, 8], "frame": [4, 6], "radius_for_extrapol": [4, 6], "recoil_spe": 4, "km_per_sec": 4, "bool": [4, 6, 7], "fals": [4, 6, 7], "magnitud": [4, 7], "recoil": 4, "whether": [4, 6, 7], "report": 4, "km": 4, "fraction": 4, "c": [4, 12, 13], "recoil_veloc": 4, "veloc": [4, 5], "runstats_data": 4, "dataset": [4, 5], "separation_at_tim": 4, "point": [4, 6, 13], "separation_unit_vector_at_tim": 4, "separation_vector": [4, 13], "set_radiation_fram": [4, 12], "center_of_mass_correct": [4, 6, 7, 11, 12], "decomposit": [4, 6], "drift": [4, 6, 7], "correct": [4, 6, 7], "spin_configur": 4, "configur": 4, "non": 4, "align": [4, 7], "precess": [4, 7], "neither": 4, "anti": [4, 7], "least": 4, "one": [4, 6, 7], "strain_amp_phase_for_mod": 4, "second": [4, 6], "integr": [4, 6], "fix": [4, 6], "rh_": [4, 6, 12], "strain_for_mod": [4, 12], "plu": [4, 6], "cross": [4, 6], "rh": [4, 6, 12], "strain_recomposed_at_sky_loc": [4, 12], "recompos": [4, 6], "sky": [4, 6], "up": [4, 6], "weight": [4, 6], "h_": [4, 6], "lt": [4, 6, 8, 9], "symmetric_mass_ratio": [4, 8], "symmetr": [4, 7], "eta": [4, 7, 8], "data_arrai": 5, "header_list": 5, "identifi": 5, "object_typ": 5, "initial_irreducible_mass": [5, 9], "initial_horizon_mass": [5, 9], "initial_dimensionless_spin": [5, 9], "initial_dimensional_spin": [5, 9], "column": [5, 7, 9], "enum": [5, 6, 7], "easili": [5, 7], "referenc": [5, 7], "apparent_horizon_area": 5, "area": [5, 9], "apparent_horizon_areal_radiu": 5, "areal": 5, "apparent_horizon_circumfer": 5, "circumfer": [5, 9], "xz": 5, "yz": 5, "respect": [5, 7], "apparent_horizon_expansion_theta_l": 5, "expans": 5, "theta_": 5, "apparent_horizon_inner_expansion_theta_n": 5, "inner": 5, "n": [5, 8], "apparent_horizon_maximum_radiu": 5, "apparent_horizon_mean_curvatur": 5, "curvatur": 5, "apparent_horizon_mean_radiu": 5, "apparent_horizon_minimum_radiu": 5, "minimum": [5, 6, 8], "apparent_horizon_quadrupol": 5, "quadrupol": 5, "xx": 5, "yy": 5, "zz": 5, "available_data_column": [5, 9], "dimensional_spin_at_tim": 5, "dimension": [5, 9], "pmb": 5, "j": 5, "dimensional_spin_vector": 5, "dimensionless_spin_at_tim": 5, "dimensionless": [5, 7, 9], "chi": 5, "giventim": 5, "dimensionless_spin_vector": [5, 9], "final_dimensional_spin": 5, "last": 5, "avail": [5, 7, 8], "final_dimensionless_spin": 5, "final_horizon_mass": 5, "final_irreducible_mass": 5, "irreduc": [5, 9], "get_data_from_column": [5, 9], "column_nam": 5, "iter": 5, "horizon_mass": 5, "horizon_mass_at_tim": 5, "irreducible_mass": 5, "irreducible_mass_at_tim": 5, "last_available_spin_data_tim": 5, "momentum_vector": 5, "position_vector": [5, 9], "velocity_vector": 5, "radiation_spher": 6, "radi": [6, 10], "create_extrapolated_spher": 6, "those": [6, 7], "static": 6, "create_radiation_bundl": 6, "radiation_group": 6, "group": [6, 7], "h5py": 6, "consist": 6, "extrapolated_spher": 6, "com_correct": 6, "get_denergy_dt_radi": 6, "kwarg": 6, "like": 6, "valid": 6, "keyword": 6, "argument": 6, "get_dp_dt_radi": 6, "get_energy_radi": 6, "get_linear_momentum_radi": 6, "get_psi4_amplitude_for_mod": 6, "infin": 6, "get_psi4_imaginary_for_mod": 6, "get_psi4_max_time_for_mod": 6, "get_psi4_phase_for_mod": 6, "get_psi4_real_for_mod": 6, "get_strain_amplitude_for_mod": 6, "get_strain_cross_for_mod": 6, "get_strain_phase_for_mod": 6, "get_strain_plus_for_mod": 6, "get_strain_recomposed_at_sky_loc": 6, "get_tim": 6, "timeseri": 6, "included_radii": 6, "set_fram": 6, "new_fram": 6, "transform": 6, "stamp": [6, 7], "necessari": 6, "move": 6, "seri": [6, 7], "mode_dict": 6, "create_radiation_spher": 6, "radius_group": 6, "inerti": 6, "get_extrapolated_spher": 6, "get_mod": 6, "raw_mod": 6, "alpha": 6, "beta": 6, "offset": 6, "boost": 6, "rad": 6, "psi4_group": 6, "psi4_real": 6, "psi4_imaginari": 6, "strain_plu": 6, "strain_cross": 6, "compute_and_store_strain": 6, "doubl": 6, "fourier": 6, "create_radiation_mod": 6, "psi4": 6, "empti": 6, "construct": 6, "pdf": [6, 7], "eq": 6, "8": [6, 8, 9, 11, 12, 13], "14": [6, 8, 9, 12], "15": [6, 8, 9, 12], "get_mode_with_extrapolated_radiu": 6, "h_cross_dot": 6, "h_plus_dot": 6, "l_valu": 6, "denot": 6, "m_valu": 6, "omega_start": 6, "psi4_amplitud": 6, "weyl": 6, "scalar": 6, "sqrt": [6, 13], "mathcal": 6, "re": 6, "im": 6, "psi4_max_tim": 6, "psi4_omega": 6, "psi4_phas": 6, "textrm": 6, "tan": 6, "strain_amplitud": 6, "strain_phas": 6, "ylm": 6, "angl": 6, "z": [6, 9], "axi": [6, 13], "x": [6, 9, 12], "y": [6, 9], "counterclockwis": 6, "raw_directori": 7, "output_directori": [7, 10], "compat": 7, "determine_lvc_format": 7, "initial_horizon_tim": 7, "determin": 7, "lvc": 7, "number": 7, "definit": 7, "1703": 7, "01076": 7, "export_to_ascii": 7, "individu": 7, "export_to_lal_compatible_format": [7, 11], "nr_group": [7, 11], "nr_code": [7, 11], "bibtex_kei": [7, 11], "contact_email": [7, 11], "license_typ": 7, "nr_techniqu": 7, "comparable_simul": 7, "files_in_error_seri": 7, "production_run": 7, "true": [7, 8, 11, 12], "lalsuit": 7, "readabl": 7, "pycbc": 7, "less": 7, "stringent": 7, "nr": 7, "cite": 7, "email": [7, 11], "aris": 7, "tag": 7, "save": 7, "g": 7, "maya0908": 7, "techniqu": 7, "were": 7, "other": 7, "similar": 7, "error": 7, "product": 7, "export_to_lvcnr_catalog": [7, 11], "suffici": 7, "abl": 7, "eeccentr": 7, "Will": 7, "filenam": 7, "low_pass_filt": 7, "low_pass_freq_cutoff": 7, "filter": 7, "out": 7, "high": 7, "nois": 7, "butter": 7, "cutoff": 7, "remov": 7, "summar": 7, "collect": 7, "txt": 7, "displai": 7, "aligned_spin_simul": [7, 8], "download_waveform": [7, 8], "save_wf_path": [7, 8], "safeti": 7, "lvcnr_format": [7, 8], "By": 7, "verif": 7, "size": [7, 8], "exce": 7, "gb": [7, 8], "get_parameters_for_simul": [7, 8], "get_simulations_with_mass_ratio": [7, 8], "tol": [7, 8], "0001": 7, "toler": 7, "geq": 7, "satisfi": 7, "get_simulations_with_paramet": [7, 8], "param": [7, 8], "take": 7, "correspond": 7, "get_simulations_with_symmetric_mass_ratio": [7, 8], "nonspinning_simul": [7, 8], "plot_catalog_paramet": [7, 8], "p1": 7, "p2": 7, "save_path": [7, 8], "dpi": [7, 8], "300": 7, "color": [7, 8], "cornflowerblu": 7, "against": 7, "histogram": 7, "distribut": 7, "figur": 7, "precessing_simul": [7, 8], "spin_magnitudes_for_simul": 7, "system": 7, "dh_dr_from_separ": 7, "primary_dimensionless_spin": 7, "secondary_dimensionless_spin": 7, "hamiltonian": 7, "orbital_frequency_from_separ": 7, "quasi": 7, "circular": 7, "equat": 7, "1702": 7, "00872": 7, "radial_momentum_from_separ": 7, "radial": 7, "give": 7, "separation_from_orbital_frequ": 7, "tangential_momentum_from_separ": 7, "tangenti": 7, "p": 8, "updat": 8, "all_simul": 8, "print": [8, 9, 10], "len": 8, "ten": 8, "635": 8, "gt0001": 8, "39": [8, 9], "gt0002": 8, "gt0003": 8, "gt0004": 8, "gt0005": 8, "gt0006": 8, "gt0007": 8, "gt0008": 8, "gt0009": 8, "gt0010": 8, "sep": 8, "mass_1": 8, "mass_2": 8, "irreducible_mass_1": 8, "irreducible_mass_2": 8, "dimensionless_spin_1": 8, "dimensionless_spin_x_1": 8, "dimensionless_spin_y_1": 8, "dimensionless_spin_z_1": 8, "dimensionless_spin_2": 8, "dimensionless_spin_x_2": 8, "dimensionless_spin_y_2": 8, "dimensionless_spin_z_2": 8, "chi_eff": 8, "chi_p": 8, "f_lower_at_1msun": 8, "mean_anomali": 8, "maya_size_gb": 8, "lvcnr_size_gb": 8, "5": [8, 9, 11, 12, 13], "103": 8, "gt0370": 8, "6": [8, 9, 11, 12, 13], "157": 8, "gt0355": 8, "7": [8, 9, 11, 12, 13], "370": 8, "sim": 8, "53": 8, "gt0428": 8, "92": 8, "gt0376": 8, "23": [8, 9], "005": 8, "11": [8, 9, 12], "simulation_paramet": 8, "gt0378": 8, "050005889145129": 8, "12": [8, 9, 12], "simulation_parameter_str": 8, "join": 8, "item": 8, "d10_a0": 8, "0_q2": 8, "05_m103_q": 8, "m1": 8, "672130590009755": 8, "m2": 8, "3278676386095844": 8, "m1_irr": 8, "67213059": 8, "m2_irr": 8, "3278676386": 8, "220371": 8, "a1": 8, "0775370384725463e": 8, "05": [8, 9], "a1x": 8, "189079683097315e": 8, "13": [8, 9, 12], "a1i": 8, "31375343569779e": 8, "a1z": 8, "0775370384725444e": 8, "a2": 8, "5292461249223795e": 8, "a2x": 8, "0523082784791894e": 8, "a2i": 8, "0845157044129532e": 8, "a2z": 8, "5292461249220173e": 8, "2256380923285683e": 8, "652204568862241e": 8, "1807": 8, "5340709236116": 8, "99995249833483": 8, "005865368688535364": 8, "998": 8, "6407813": 8, "3597998470067978": 8, "lvcnr": 8, "00412185862660408": 8, "01": 8, "001": 8, "4999": 8, "125": 8, "21": [8, 9], "27": [8, 9], "500": 8, "432x288": 8, "ax": [8, 9], "gt": [8, 9], "9996440633567225": 8, "07085918507278": 8, "8089458636660637": 8, "8085713846964644": 8, "salmon": 8, "990315336895653e": 8, "18": [8, 9], "9316840649738882": 8, "16": [8, 9, 12], "green": 8, "8462054439966505e": 8, "9261967059788215": 8, "physic": 8, "websit": 8, "here": 8, "gt0898": 8, "17": [8, 9, 12, 13], "gw15_d12_q1": 8, "2_a0": 8, "0_m140": 8, "5455": 8, "4545": 8, "2000": 8, "2479": 8, "0000": 8, "1445": 8, "3053": 8, "0021": 8, "2766": 8, "1891": 8, "1250": 8, "9177": 8, "0084": 8, "tar": [9, 10, 11, 12, 13], "gz": [9, 10, 11, 12, 13], "record": [9, 10, 11, 12, 13], "10668525": [9, 10, 11, 12, 13], "unzip": [9, 10, 11, 12, 13], "example_h5_filepath": [9, 11, 12], "sampl": [9, 11, 12], "try": [9, 11, 12], "pyplot": [9, 12, 13], "plt": [9, 12, 13], "d11_q5_a1_": [9, 10, 11, 12, 13], "362_": [9, 10, 11, 12, 13], "0548_": [9, 10, 11, 12, 13], "64_a2_": [9, 10, 11, 12, 13], "0013_0": [9, 10, 11, 12, 13], "001_": [9, 10, 11, 12, 13], "0838_m533": [9, 10, 11, 12, 13], "33": [9, 10, 11, 12, 13], "primary_posit": 9, "secondary_posit": 9, "gca": [9, 13], "set_aspect": [9, 13], "equal": [9, 13], "adjust": [9, 13], "box": [9, 13], "xlabel": [9, 12, 13], "ylabel": [9, 12, 13], "show": [9, 12, 13], "bh": 9, "36451101": 9, "05518085": 9, "64443774": 9, "00129516": 9, "00100747": 9, "08374188": 9, "25138458": 9, "0380554": 9, "4444357": 9, "59770435e": 9, "79857020e": 9, "32619237e": 9, "03": 9, "8304509510300787": 9, "16666770757317356": 9, "7588330514": 9, "166521231": 9, "primary_spin": 9, "a_": 9, "legend": 9, "secondary_spin": 9, "available_column": 9, "itt": 9, "vx": 9, "vy": 9, "vz": 9, "ai": 9, "az": 9, "sx": 9, "sy": 9, "sz": 9, "px": 9, "py": 9, "pz": 9, "min_radiu": 9, "max_radiu": 9, "19": 9, "mean_radiu": 9, "20": 9, "quadrupole_xx": 9, "quadrupole_xi": 9, "22": [9, 12, 13], "quadrupole_xz": 9, "quadrupole_yi": 9, "24": 9, "quadrupole_yz": 9, "25": 9, "quadrupole_zz": 9, "26": 9, "min_x": 9, "max_x": 9, "28": 9, "min_i": 9, "29": 9, "max_i": 9, "30": 9, "min_z": 9, "31": 9, "max_z": 9, "32": 9, "xy_plane_circumfer": 9, "xz_plane_circumfer": 9, "34": 9, "yz_plane_circumfer": 9, "35": 9, "ratio_of_xz_xy_plane_circumfer": 9, "36": 9, "ratio_of_yz_xy_plane_circumfer": 9, "37": 9, "38": 9, "m_irreduc": 9, "areal_radiu": 9, "40": 9, "expansion_theta_l": 9, "41": 9, "inner_expansion_theta_n": 9, "42": 9, "product_of_the_expans": 9, "43": 9, "mean_curvatur": 9, "44": 9, "gradient_of_the_areal_radiu": 9, "45": 9, "gradient_of_the_expansion_theta_l": 9, "46": 9, "gradient_of_the_inner_expansion_theta_n": 9, "47": 9, "gradient_of_the_product_of_the_expans": 9, "48": 9, "gradient_of_the_mean_curvatur": 9, "49": 9, "minimum_of_the_mean_curvatur": 9, "50": 9, "maximum_of_the_mean_curvatur": 9, "51": 9, "integral_of_the_mean_curvatur": 9, "52": 9, "example_simul": 10, "result": [10, 13], "h5_path": 10, "output_direcori": 11, "ut": 11, "austin": 11, "jani": 11, "2016wkt": 11, "doe": 11, "sim0001": 11, "75": 11, "example_h5_filenam": 12, "time_psi4": 12, "imag": 12, "axvlin": [12, 13], "150": [12, 13], "a9a9a9": [12, 13], "linestyl": [12, 13], "time_strain": 12, "rh_plu": 12, "rh_cross": 12, "time_strain_extrapol": 12, "rh_plus_extrapol": 12, "rh_cross_extrapol": 12, "time_strain_com": 12, "rh_plus_com": 12, "rh_cross_com": 12, "simulation_directori": 13, "shifttracker0_data": 13, "shifttracker0": 13, "asc": 13, "shifttracker1_data": 13, "shifttracker1": 13, "separation_mag": 13, "linalg": 13, "norm": 13, "psi4_data": 13, "psi4r_l2_m2_r75": 13, "00": 13}, "objects": {"mayawaves": [[4, 0, 0, "-", "coalescence"], [5, 0, 0, "-", "compactobject"]], "mayawaves.coalescence": [[4, 1, 1, "", "Coalescence"]], "mayawaves.coalescence.Coalescence": [[4, 2, 1, "", "average_run_speed"], [4, 2, 1, "", "catalog_id"], [4, 2, 1, "", "center_of_mass"], [4, 3, 1, "", "close"], [4, 3, 1, "", "compact_object_by_id"], [4, 3, 1, "", "compact_object_data_for_object"], [4, 3, 1, "", "compact_object_metadata_dict"], [4, 2, 1, "", "compact_objects"], [4, 3, 1, "", "dEnergy_dt_radiated"], [4, 3, 1, "", "dP_dt_radiated"], [4, 3, 1, "", "eccentricity_and_mean_anomaly_at_time"], [4, 3, 1, "", "energy_radiated"], [4, 3, 1, "", "extrapolate_psi4_to_infinite_radius"], [4, 2, 1, "", "final_compact_object"], [4, 2, 1, "", "h5_filepath"], [4, 2, 1, "", "included_extraction_radii"], [4, 2, 1, "", "included_modes"], [4, 2, 1, "", "initial_orbital_frequency"], [4, 2, 1, "", "initial_separation"], [4, 2, 1, "", "l_max"], [4, 3, 1, "", "linear_momentum_radiated"], [4, 2, 1, "", "mass_ratio"], [4, 2, 1, "", "merge_time"], [4, 2, 1, "", "name"], [4, 2, 1, "", "object_numbers"], [4, 2, 1, "", "orbital_angular_momentum_unit_vector"], [4, 3, 1, "", "orbital_angular_momentum_unit_vector_at_time"], [4, 2, 1, "", "orbital_frequency"], [4, 3, 1, "", "orbital_frequency_at_time"], [4, 2, 1, "", "orbital_phase_in_xy_plane"], [4, 2, 1, "", "parameter_files"], [4, 2, 1, "", "primary_compact_object"], [4, 3, 1, "", "psi4_amp_phase_for_mode"], [4, 3, 1, "", "psi4_max_time_for_mode"], [4, 3, 1, "", "psi4_real_imag_for_mode"], [4, 2, 1, "", "psi4_source"], [4, 2, 1, "", "radiation_frame"], [4, 2, 1, "", "radiationbundle"], [4, 2, 1, "", "radius_for_extrapolation"], [4, 3, 1, "", "recoil_speed"], [4, 3, 1, "", "recoil_velocity"], [4, 2, 1, "", "runstats_data"], [4, 2, 1, "", "secondary_compact_object"], [4, 3, 1, "", "separation_at_time"], [4, 3, 1, "", "separation_unit_vector_at_time"], [4, 2, 1, "", "separation_vector"], [4, 3, 1, "", "set_radiation_frame"], [4, 2, 1, "", "spin_configuration"], [4, 3, 1, "", "strain_amp_phase_for_mode"], [4, 3, 1, "", "strain_for_mode"], [4, 3, 1, "", "strain_recomposed_at_sky_location"], [4, 2, 1, "", "symmetric_mass_ratio"]], "mayawaves.compactobject": [[5, 1, 1, "", "CompactObject"]], "mayawaves.compactobject.CompactObject": [[5, 1, 1, "", "Column"], [5, 2, 1, "", "apparent_horizon_area"], [5, 2, 1, "", "apparent_horizon_areal_radius"], [5, 2, 1, "", "apparent_horizon_circumferences"], [5, 2, 1, "", "apparent_horizon_expansion_theta_l"], [5, 2, 1, "", "apparent_horizon_inner_expansion_theta_n"], [5, 2, 1, "", "apparent_horizon_maximum_radius"], [5, 2, 1, "", "apparent_horizon_mean_curvature"], [5, 2, 1, "", "apparent_horizon_mean_radius"], [5, 2, 1, "", "apparent_horizon_minimum_radius"], [5, 2, 1, "", "apparent_horizon_quadrupoles"], [5, 2, 1, "", "available_data_columns"], [5, 2, 1, "", "data_array"], [5, 3, 1, "", "dimensional_spin_at_time"], [5, 2, 1, "", "dimensional_spin_vector"], [5, 3, 1, "", "dimensionless_spin_at_time"], [5, 2, 1, "", "dimensionless_spin_vector"], [5, 2, 1, "", "final_dimensional_spin"], [5, 2, 1, "", "final_dimensionless_spin"], [5, 2, 1, "", "final_horizon_mass"], [5, 2, 1, "", "final_irreducible_mass"], [5, 3, 1, "", "get_data_from_columns"], [5, 2, 1, "", "horizon_mass"], [5, 3, 1, "", "horizon_mass_at_time"], [5, 2, 1, "", "initial_dimensional_spin"], [5, 2, 1, "", "initial_dimensionless_spin"], [5, 2, 1, "", "initial_horizon_mass"], [5, 2, 1, "", "initial_irreducible_mass"], [5, 2, 1, "", "irreducible_mass"], [5, 3, 1, "", "irreducible_mass_at_time"], [5, 2, 1, "", "last_available_spin_data_time"], [5, 2, 1, "", "momentum_vector"], [5, 2, 1, "", "position_vector"], [5, 2, 1, "", "velocity_vector"]], "mayawaves.radiation": [[6, 1, 1, "", "RadiationBundle"], [6, 1, 1, "", "RadiationMode"], [6, 1, 1, "", "RadiationSphere"]], "mayawaves.radiation.RadiationBundle": [[6, 3, 1, "", "create_extrapolated_sphere"], [6, 3, 1, "", "create_radiation_bundle"], [6, 2, 1, "", "extrapolated_sphere"], [6, 2, 1, "", "frame"], [6, 3, 1, "", "get_dEnergy_dt_radiated"], [6, 3, 1, "", "get_dP_dt_radiated"], [6, 3, 1, "", "get_energy_radiated"], [6, 3, 1, "", "get_linear_momentum_radiated"], [6, 3, 1, "", "get_psi4_amplitude_for_mode"], [6, 3, 1, "", "get_psi4_imaginary_for_mode"], [6, 3, 1, "", "get_psi4_max_time_for_mode"], [6, 3, 1, "", "get_psi4_phase_for_mode"], [6, 3, 1, "", "get_psi4_real_for_mode"], [6, 3, 1, "", "get_strain_amplitude_for_mode"], [6, 3, 1, "", "get_strain_cross_for_mode"], [6, 3, 1, "", "get_strain_phase_for_mode"], [6, 3, 1, "", "get_strain_plus_for_mode"], [6, 3, 1, "", "get_strain_recomposed_at_sky_location"], [6, 3, 1, "", "get_time"], [6, 2, 1, "", "included_modes"], [6, 2, 1, "", "included_radii"], [6, 2, 1, "", "l_max"], [6, 2, 1, "", "radiation_spheres"], [6, 2, 1, "", "radius_for_extrapolation"], [6, 3, 1, "", "set_frame"]], "mayawaves.radiation.RadiationMode": [[6, 3, 1, "", "compute_and_store_strain"], [6, 3, 1, "", "create_radiation_mode"], [6, 2, 1, "", "dEnergy_dt_radiated"], [6, 2, 1, "", "dP_dt_radiated"], [6, 2, 1, "", "energy_radiated"], [6, 2, 1, "", "extrapolated"], [6, 3, 1, "", "get_mode_with_extrapolated_radius"], [6, 2, 1, "", "h_cross_dot"], [6, 2, 1, "", "h_plus_dot"], [6, 2, 1, "", "l_value"], [6, 2, 1, "", "linear_momentum_radiated"], [6, 2, 1, "", "m_value"], [6, 2, 1, "", "omega_start"], [6, 2, 1, "", "psi4_amplitude"], [6, 2, 1, "", "psi4_imaginary"], [6, 2, 1, "", "psi4_max_time"], [6, 2, 1, "", "psi4_omega"], [6, 2, 1, "", "psi4_phase"], [6, 2, 1, "", "psi4_real"], [6, 2, 1, "", "radiation_sphere"], [6, 2, 1, "", "radius"], [6, 2, 1, "", "strain_amplitude"], [6, 2, 1, "", "strain_cross"], [6, 2, 1, "", "strain_phase"], [6, 2, 1, "", "strain_plus"], [6, 2, 1, "", "time"], [6, 3, 1, "", "ylm"]], "mayawaves.radiation.RadiationSphere": [[6, 3, 1, "", "create_radiation_sphere"], [6, 2, 1, "", "extrapolated"], [6, 2, 1, "", "frame"], [6, 3, 1, "", "get_dEnergy_dt_radiated"], [6, 3, 1, "", "get_dP_dt_radiated"], [6, 3, 1, "", "get_energy_radiated"], [6, 3, 1, "", "get_extrapolated_sphere"], [6, 3, 1, "", "get_linear_momentum_radiated"], [6, 3, 1, "", "get_mode"], [6, 3, 1, "", "get_psi4_amplitude_for_mode"], [6, 3, 1, "", "get_psi4_imaginary_for_mode"], [6, 3, 1, "", "get_psi4_max_time_for_mode"], [6, 3, 1, "", "get_psi4_phase_for_mode"], [6, 3, 1, "", "get_psi4_real_for_mode"], [6, 3, 1, "", "get_strain_amplitude_for_mode"], [6, 3, 1, "", "get_strain_cross_for_mode"], [6, 3, 1, "", "get_strain_phase_for_mode"], [6, 3, 1, "", "get_strain_plus_for_mode"], [6, 3, 1, "", "get_strain_recomposed_at_sky_location"], [6, 2, 1, "", "included_modes"], [6, 2, 1, "", "l_max"], [6, 2, 1, "", "modes"], [6, 2, 1, "", "radius"], [6, 2, 1, "", "raw_modes"], [6, 3, 1, "", "set_frame"], [6, 2, 1, "", "time"]], "mayawaves.utils": [[7, 0, 0, "-", "catalogutils"], [7, 0, 0, "-", "postnewtonianutils"], [7, 0, 0, "-", "postprocessingutils"]], "mayawaves.utils.catalogutils": [[7, 1, 1, "", "Catalog"], [7, 1, 1, "", "Parameter"]], "mayawaves.utils.catalogutils.Catalog": [[7, 2, 1, "", "aligned_spin_simulations"], [7, 3, 1, "", "download_waveforms"], [7, 3, 1, "", "get_parameters_for_simulation"], [7, 3, 1, "", "get_simulations_with_mass_ratio"], [7, 3, 1, "", "get_simulations_with_parameters"], [7, 3, 1, "", "get_simulations_with_symmetric_mass_ratio"], [7, 2, 1, "", "nonspinning_simulations"], [7, 3, 1, "", "plot_catalog_parameters"], [7, 2, 1, "", "precessing_simulations"], [7, 3, 1, "", "spin_magnitudes_for_simulation"]], "mayawaves.utils.postnewtonianutils": [[7, 4, 1, "", "dH_dr_from_separation"], [7, 4, 1, "", "orbital_frequency_from_separation"], [7, 4, 1, "", "radial_momentum_from_separation"], [7, 4, 1, "", "separation_from_orbital_frequency"], [7, 4, 1, "", "tangential_momentum_from_separation"]], "mayawaves.utils.postprocessingutils": [[7, 4, 1, "", "create_h5_from_simulation"], [7, 4, 1, "", "determine_lvc_format"], [7, 4, 1, "", "export_to_ascii"], [7, 4, 1, "", "export_to_lal_compatible_format"], [7, 4, 1, "", "export_to_lvcnr_catalog"], [7, 4, 1, "", "get_stitched_data"], [7, 4, 1, "", "low_pass_filter"], [7, 4, 1, "", "summarize_coalescence"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "mayawav": [0, 3, 4, 5, 6, 7, 10], "": [0, 1], "document": [0, 1], "tutori": [0, 12, 13], "indic": 0, "tabl": 0, "contributor": 1, "guid": 1, "make": 1, "fork": 1, "keep": 1, "your": [1, 8], "up": 1, "date": 1, "chang": [1, 12], "run": 1, "test": 1, "updat": 1, "submit": 1, "merg": 1, "request": [1, 8], "get": [2, 3, 8], "help": 2, "start": [3, 13], "how": 3, "instal": 3, "requir": [3, 11], "cite": 3, "basic": 3, "overview": 3, "structur": [3, 13], "coalesc": [3, 4, 9, 11, 12], "compactobject": [3, 5, 9], "radiationbundl": 3, "util": [3, 7, 8], "workflow": 3, "obtain": [3, 9, 12], "compat": [3, 11], "h5": [3, 9, 10, 11, 12, 13], "file": [3, 9, 10, 11, 12, 13], "work": 3, "us": [3, 8, 9, 11, 12, 13], "analyz": 3, "raw": [3, 13], "simul": [3, 8, 9, 10, 11, 12, 13], "without": 3, "creat": [3, 8, 9, 10, 11, 12], "an": [3, 8, 10, 11, 13], "maya": [3, 8], "catalog": [3, 8, 11], "modul": [4, 5, 6, 7], "radiat": [6, 12, 13], "packag": [7, 12], "postprocessingutil": 7, "catalogutil": 7, "postnewtonianutil": 7, "instanc": 8, "class": 8, "ha": 8, "properti": 8, "list": 8, "all": [8, 9, 10], "The": [8, 11], "paramet": [8, 9], "enum": 8, "allow": [8, 11], "you": [8, 9, 11, 13], "easili": 8, "refer": 8, "specif": 8, "grab": 8, "nonspin": 8, "align": 8, "spin": [8, 9], "precess": 8, "given": [8, 9, 12], "mass": [8, 9, 11, 12], "ratio": 8, "can": [8, 9, 11, 13], "also": 8, "enter": 8, "toler": 8, "receiv": 8, "ar": [8, 9], "within": 8, "symmetr": 8, "thi": [8, 11], "method": 8, "ani": [8, 9, 13], "number": 8, "It": [8, 11], "i": [8, 9, 11, 12, 13], "better": 8, "non": 8, "zero": 8, "while": 8, "search": 8, "waveform": [8, 11], "ensur": 8, "fit": 8, "desir": [8, 10, 11], "plot": [8, 13], "distribtut": 8, "provid": [8, 11], "directori": [8, 10], "save": 8, "figur": 8, "thei": 8, "rather": 8, "than": 8, "displai": 8, "download": 8, "lvc": [8, 11], "nr": [8, 11], "format": [8, 11], "http": 8, "arxiv": 8, "org": 8, "ab": 8, "1703": 8, "01076": 8, "compact": 9, "object": [9, 11, 12], "associ": [9, 11, 12], "larger": 9, "primari": 9, "smaller": 9, "secondari": 9, "trajectori": 9, "data": [9, 10, 12, 13], "initi": [9, 11, 12, 13], "timeseri": 9, "note": [9, 12, 13], "mani": 9, "system": 9, "horizon": 9, "track": 9, "wai": 9, "through": 9, "merger": 9, "after": 9, "which": [9, 11], "valu": 9, "longer": 9, "reliabl": 9, "access": 9, "avail": 9, "close": [9, 11, 12], "point": 10, "root": 10, "stitch": [10, 13], "export": 11, "lvk": 11, "extrapol": [11, 12], "infinit": [11, 12], "radiu": [11, 12], "have": [11, 13], "same": 11, "name": 11, "option": 11, "correct": [11, 12], "center": [11, 12], "drift": [11, 12], "befor": [11, 12, 13], "lal": 11, "let": 11, "lalsimul": 11, "pycbc": 11, "specifi": 11, "finit": 11, "extract": [11, 12], "so": 11, "gravit": 12, "wave": 12, "read": [12, 13], "psi_4": [12, 13], "mode": 12, "75": [12, 13], "extraction_radiu": [12, 13], "m": [12, 13], "junk": [12, 13], "should": [12, 13], "cut": [12, 13], "off": [12, 13], "most": [12, 13], "analys": [12, 13], "That": [12, 13], "time": [12, 13], "mark": [12, 13], "follow": [12, 13], "vertic": [12, 13], "dash": [12, 13], "line": [12, 13], "strain": 12, "If": 12, "recombin": 12, "sky": 12, "locat": 12, "frame": 12, "when": 12, "send": 12, "scri": 12, "reset": 12, "origin": 12, "do": 13, "fulli": 13, "visualz": 13, "get_stitched_data": 13, "togeth": 13, "output": 13, "column": 13, "each": 13, "row": 13, "being": 13, "iter": 13, "step": 13, "base": 13, "present": 13, "In": 13, "2": 13, "3": 13, "0": 13, "shift": 13, "tracker": 13, "contain": 13, "x": 13, "y": 13, "compon": 13, "posit": 13, "real": 13, "componenet": 13, "1": 13, "ylm_weylscal4": 13}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Welcome to Mayawaves\u2019s documentation!": [[0, "welcome-to-mayawaves-s-documentation"]], "Tutorials:": [[0, null]], "Documentation:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "Contributor\u2019s Guide": [[1, "contributor-s-guide"]], "Make a fork": [[1, "make-a-fork"]], "Keeping your fork up to date": [[1, "keeping-your-fork-up-to-date"]], "Making changes": [[1, "making-changes"]], "Running tests": [[1, "running-tests"]], "Updating the documentation": [[1, "updating-the-documentation"]], "Submitting a merge request": [[1, "submitting-a-merge-request"]], "Getting Help": [[2, "getting-help"]], "Getting Started": [[3, "getting-started"]], "How to install": [[3, "how-to-install"]], "Requirements": [[3, "requirements"]], "How to cite": [[3, "how-to-cite"]], "Basic overview of structure": [[3, "basic-overview-of-structure"]], "Coalescence": [[3, "coalescence"]], "CompactObject": [[3, "compactobject"]], "RadiationBundle": [[3, "radiationbundle"]], "Utilities": [[3, "utilities"]], "Basic overview of workflow": [[3, "basic-overview-of-workflow"]], "Obtaining a mayawaves compatible h5 file": [[3, "obtaining-a-mayawaves-compatible-h5-file"]], "Working with a mayawaves h5 file using Coalescence": [[3, "working-with-a-mayawaves-h5-file-using-coalescence"]], "Analyzing raw simulations without creating an h5 file": [[3, "analyzing-raw-simulations-without-creating-an-h5-file"]], "Analyzing the MAYA Catalog": [[3, "analyzing-the-maya-catalog"]], "mayawaves.coalescence module": [[4, "module-mayawaves.coalescence"]], "mayawaves.compactobject module": [[5, "module-mayawaves.compactobject"]], "mayawaves.radiation module": [[6, "mayawaves-radiation-module"]], "mayawaves.utils package": [[7, "mayawaves-utils-package"]], "mayawaves.utils.postprocessingutils module": [[7, "module-mayawaves.utils.postprocessingutils"]], "mayawaves.utils.catalogutils module": [[7, "module-mayawaves.utils.catalogutils"]], "mayawaves.utils.postnewtonianutils module": [[7, "module-mayawaves.utils.postnewtonianutils"]], "Catalog Utils": [[8, "Catalog-Utils"]], "Create an instance of the Catalog class": [[8, "Create-an-instance-of-the-Catalog-class"]], "Catalog has a property to list all simulations in the maya catalog": [[8, "Catalog-has-a-property-to-list-all-simulations-in-the-maya-catalog"]], "The Parameter enum allows you to easily reference specific parameters": [[8, "The-Parameter-enum-allows-you-to-easily-reference-specific-parameters"]], "Catalog has properties to grab all nonspinning, aligned spin, or precessing simulations": [[8, "Catalog-has-properties-to-grab-all-nonspinning,-aligned-spin,-or-precessing-simulations"]], "Get simulations with a given mass ratio": [[8, "Get-simulations-with-a-given-mass-ratio"]], "You can also enter a tolerance for a parameter, and will receive simulations that are within that tolerance of the requested mass ratio": [[8, "You-can-also-enter-a-tolerance-for-a-parameter,-and-will-receive-simulations-that-are-within-that-tolerance-of-the-requested-mass-ratio"]], "Get simulations with a given symmetric mass ratio": [[8, "Get-simulations-with-a-given-symmetric-mass-ratio"]], "Get the all the parameters of a given simulation": [[8, "Get-the-all-the-parameters-of-a-given-simulation"]], "Get all simulations with given parameters": [[8, "Get-all-simulations-with-given-parameters"]], "This method can be used with any number of parameters. It is better to use non-zero tolerances while searching for waveforms to ensure you get all simulations that fit your desired parameters.": [[8, "This-method-can-be-used-with-any-number-of-parameters.-It-is-better-to-use-non-zero-tolerances-while-searching-for-waveforms-to-ensure-you-get-all-simulations-that-fit-your-desired-parameters."]], "Plotting the distribtution of waveform parameters in the catalog": [[8, "Plotting-the-distribtution-of-waveform-parameters-in-the-catalog"]], "You can also provide a directory to save the figures in and they will be saved rather than displayed.": [[8, "You-can-also-provide-a-directory-to-save-the-figures-in-and-they-will-be-saved-rather-than-displayed."]], "Downloading waveforms": [[8, "Downloading-waveforms"]], "Waveforms can also be downloaded in the lvc-nr format (https://arxiv.org/abs/1703.01076)": [[8, "Waveforms-can-also-be-downloaded-in-the-lvc-nr-format-(https://arxiv.org/abs/1703.01076)"]], "Compact Objects": [[9, "Compact-Objects"]], "Create a Coalescence object using the simulation h5 file": [[9, "Create-a-Coalescence-object-using-the-simulation-h5-file"], [11, "Create-a-Coalescence-object-using-the-simulation-h5-file"], [12, "Create-a-Coalescence-object-using-the-simulation-h5-file"]], "Obtain the CompactObject objects associated with the larger object (primary) and smaller object (secondary)": [[9, "Obtain-the-CompactObject-objects-associated-with-the-larger-object-(primary)-and-smaller-object-(secondary)"]], "Obtain trajectory data": [[9, "Obtain-trajectory-data"]], "Obtain initial data such as masses and spins": [[9, "Obtain-initial-data-such-as-masses-and-spins"]], "Obtain timeseries data for parameters such as spin": [[9, "Obtain-timeseries-data-for-parameters-such-as-spin"]], "Note that for many systems, the initial horizons are tracked all the way through merger after which the values are no longer reliable.": [[9, "Note-that-for-many-systems,-the-initial-horizons-are-tracked-all-the-way-through-merger-after-which-the-values-are-no-longer-reliable."]], "You can access any data that is available for the given compact object": [[9, "You-can-access-any-data-that-is-available-for-the-given-compact-object"]], "Close the Coalescence object to close the associated h5 file": [[9, "Close-the-Coalescence-object-to-close-the-associated-h5-file"], [11, "Close-the-Coalescence-object-to-close-the-associated-h5-file"], [12, "Close-the-Coalescence-object-to-close-the-associated-h5-file"]], "Creating a Mayawaves h5 File": [[10, "Creating-a-Mayawaves-h5-File"]], "Point to the root of the desired simulation directory": [[10, "Point-to-the-root-of-the-desired-simulation-directory"]], "Create an h5 file with all the stitched data for the simulation": [[10, "Create-an-h5-file-with-all-the-stitched-data-for-the-simulation"]], "Exporting to LVK Catalog Format": [[11, "Exporting-to-LVK-Catalog-Format"]], "Export to the LVC NR catalog format": [[11, "Export-to-the-LVC-NR-catalog-format"]], "Exporting to this format requires extrapolating the waveforms to infinite radius.": [[11, "Exporting-to-this-format-requires-extrapolating-the-waveforms-to-infinite-radius."]], "The exported file will have the same name as the initial simulation h5 file.": [[11, "The-exported-file-will-have-the-same-name-as-the-initial-simulation-h5-file."]], "An optional name can be provided which will be used as the name of the exported file": [[11, "An-optional-name-can-be-provided-which-will-be-used-as-the-name-of-the-exported-file"]], "You can optionally correct for the center of mass drift before exporting": [[11, "You-can-optionally-correct-for-the-center-of-mass-drift-before-exporting"]], "Export to LAL Compatible format": [[11, "Export-to-LAL-Compatible-format"]], "This format lets you use the waveform with LALSimulation and PyCBC. It is of the same format as the LVC NR catalog but allows you to specify a finite extraction radius if so desired.": [[11, "This-format-lets-you-use-the-waveform-with-LALSimulation-and-PyCBC.-It-is-of-the-same-format-as-the-LVC-NR-catalog-but-allows-you-to-specify-a-finite-extraction-radius-if-so-desired."]], "Gravitational Waves": [[12, "Gravitational-Waves"]], "Read the \\Psi_4 data for a given mode and extraction radius": [[12, "Read-the-\\Psi_4-data-for-a-given-mode-and-extraction-radius"]], "Note that the initial ~(75 + extraction_radius) M will be junk radiation and should be cut off for most analyses. That time is marked in the following tutorial with a vertical dashed line.": [[12, "Note-that-the-initial-~(75-+-extraction_radius)-M-will-be-junk-radiation-and-should-be-cut-off-for-most-analyses.-That-time-is-marked-in-the-following-tutorial-with-a-vertical-dashed-line."], [13, "Note-that-the-initial-~(75-+-extraction_radius)-M-will-be-junk-radiation-and-should-be-cut-off-for-most-analyses.-That-time-is-marked-in-the-following-tutorial-with-a-vertical-dashed-line."]], "Read the strain data for a given mode and extraction radius": [[12, "Read-the-strain-data-for-a-given-mode-and-extraction-radius"]], "If no extraction radius is given, the radiation is extrapolated to infinite radius": [[12, "If-no-extraction-radius-is-given,-the-radiation-is-extrapolated-to-infinite-radius"]], "Recombine the modes to obtain the strain at a given sky location": [[12, "Recombine-the-modes-to-obtain-the-strain-at-a-given-sky-location"]], "Correct for center of mass drift by changing the frame of the radiation extraction": [[12, "Correct-for-center-of-mass-drift-by-changing-the-frame-of-the-radiation-extraction"]], "When correcting for center of mass drift, the junk radiation is cut off before sending the data to the scri package.": [[12, "When-correcting-for-center-of-mass-drift,-the-junk-radiation-is-cut-off-before-sending-the-data-to-the-scri-package."]], "Reset to the original frame": [[12, "Reset-to-the-original-frame"]], "Reading raw simulation files": [[13, "Reading-raw-simulation-files"]], "Simulations do not have to be fully stitched into an h5 file before reading and visualzing their data": [[13, "Simulations-do-not-have-to-be-fully-stitched-into-an-h5-file-before-reading-and-visualzing-their-data"]], "Use get_stitched_data to stitch together any output file structured as columns of data with each row being a time/iteration step": [[13, "Use-get_stitched_data-to-stitch-together-any-output-file-structured-as-columns-of-data-with-each-row-being-a-time/iteration-step"]], "You can then plot the data based on the columns present in the data file. In the following, columns 2 and 3 (starting at 0) of the shift tracker files contain the x and y components of the positions.": [[13, "You-can-then-plot-the-data-based-on-the-columns-present-in-the-data-file.-In-the-following,-columns-2-and-3-(starting-at-0)-of-the-shift-tracker-files-contain-the-x-and-y-components-of-the-positions."]], "Plot the real componenet of the \\Psi_4 data using columns 0 and 1 of the Ylm_WEYLSCAL4 files": [[13, "Plot-the-real-componenet-of-the-\\Psi_4-data-using-columns-0-and-1-of-the-Ylm_WEYLSCAL4-files"]]}, "indexentries": {"coalescence (class in mayawaves.coalescence)": [[4, "mayawaves.coalescence.Coalescence"]], "average_run_speed (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.average_run_speed"]], "catalog_id (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.catalog_id"]], "center_of_mass (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.center_of_mass"]], "close() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.close"]], "compact_object_by_id() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_by_id"]], "compact_object_data_for_object() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_data_for_object"]], "compact_object_metadata_dict() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_metadata_dict"]], "compact_objects (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.compact_objects"]], "denergy_dt_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.dEnergy_dt_radiated"]], "dp_dt_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.dP_dt_radiated"]], "eccentricity_and_mean_anomaly_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.eccentricity_and_mean_anomaly_at_time"]], "energy_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.energy_radiated"]], "extrapolate_psi4_to_infinite_radius() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.extrapolate_psi4_to_infinite_radius"]], "final_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.final_compact_object"]], "h5_filepath (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.h5_filepath"]], "included_extraction_radii (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.included_extraction_radii"]], "included_modes (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.included_modes"]], "initial_orbital_frequency (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.initial_orbital_frequency"]], "initial_separation (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.initial_separation"]], "l_max (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.l_max"]], "linear_momentum_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.linear_momentum_radiated"]], "mass_ratio (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.mass_ratio"]], "mayawaves.coalescence": [[4, "module-mayawaves.coalescence"]], "merge_time (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.merge_time"]], "module": [[4, "module-mayawaves.coalescence"], [5, "module-mayawaves.compactobject"], [7, "module-mayawaves.utils.catalogutils"], [7, "module-mayawaves.utils.postnewtonianutils"], [7, "module-mayawaves.utils.postprocessingutils"]], "name (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.name"]], "object_numbers (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.object_numbers"]], "orbital_angular_momentum_unit_vector (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_angular_momentum_unit_vector"]], "orbital_angular_momentum_unit_vector_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.orbital_angular_momentum_unit_vector_at_time"]], "orbital_frequency (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_frequency"]], "orbital_frequency_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.orbital_frequency_at_time"]], "orbital_phase_in_xy_plane (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_phase_in_xy_plane"]], "parameter_files (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.parameter_files"]], "primary_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.primary_compact_object"]], "psi4_amp_phase_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_amp_phase_for_mode"]], "psi4_max_time_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_max_time_for_mode"]], "psi4_real_imag_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_real_imag_for_mode"]], "psi4_source (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.psi4_source"]], "radiation_frame (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radiation_frame"]], "radiationbundle (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radiationbundle"]], "radius_for_extrapolation (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radius_for_extrapolation"]], "recoil_speed() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.recoil_speed"]], "recoil_velocity() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.recoil_velocity"]], "runstats_data (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.runstats_data"]], "secondary_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.secondary_compact_object"]], "separation_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.separation_at_time"]], "separation_unit_vector_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.separation_unit_vector_at_time"]], "separation_vector (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.separation_vector"]], "set_radiation_frame() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.set_radiation_frame"]], "spin_configuration (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.spin_configuration"]], "strain_amp_phase_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_amp_phase_for_mode"]], "strain_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_for_mode"]], "strain_recomposed_at_sky_location() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_recomposed_at_sky_location"]], "symmetric_mass_ratio (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.symmetric_mass_ratio"]], "compactobject (class in mayawaves.compactobject)": [[5, "mayawaves.compactobject.CompactObject"]], "compactobject.column (class in mayawaves.compactobject)": [[5, "mayawaves.compactobject.CompactObject.Column"]], "apparent_horizon_area (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_area"]], "apparent_horizon_areal_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_areal_radius"]], "apparent_horizon_circumferences (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_circumferences"]], "apparent_horizon_expansion_theta_l (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_expansion_theta_l"]], "apparent_horizon_inner_expansion_theta_n (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_inner_expansion_theta_n"]], "apparent_horizon_maximum_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_maximum_radius"]], "apparent_horizon_mean_curvature (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_mean_curvature"]], "apparent_horizon_mean_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_mean_radius"]], "apparent_horizon_minimum_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_minimum_radius"]], "apparent_horizon_quadrupoles (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_quadrupoles"]], "available_data_columns (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.available_data_columns"]], "data_array (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.data_array"]], "dimensional_spin_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.dimensional_spin_at_time"]], "dimensional_spin_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.dimensional_spin_vector"]], "dimensionless_spin_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.dimensionless_spin_at_time"]], "dimensionless_spin_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.dimensionless_spin_vector"]], "final_dimensional_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_dimensional_spin"]], "final_dimensionless_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_dimensionless_spin"]], "final_horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_horizon_mass"]], "final_irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_irreducible_mass"]], "get_data_from_columns() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.get_data_from_columns"]], "horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.horizon_mass"]], "horizon_mass_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.horizon_mass_at_time"]], "initial_dimensional_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_dimensional_spin"]], "initial_dimensionless_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_dimensionless_spin"]], "initial_horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_horizon_mass"]], "initial_irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_irreducible_mass"]], "irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.irreducible_mass"]], "irreducible_mass_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.irreducible_mass_at_time"]], "last_available_spin_data_time (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.last_available_spin_data_time"]], "mayawaves.compactobject": [[5, "module-mayawaves.compactobject"]], "momentum_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.momentum_vector"]], "position_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.position_vector"]], "velocity_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.velocity_vector"]], "radiationbundle (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationBundle"]], "radiationmode (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationMode"]], "radiationsphere (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationSphere"]], "compute_and_store_strain() (mayawaves.radiation.radiationmode method)": [[6, "mayawaves.radiation.RadiationMode.compute_and_store_strain"]], "create_extrapolated_sphere() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.create_extrapolated_sphere"]], "create_radiation_bundle() (mayawaves.radiation.radiationbundle static method)": [[6, "mayawaves.radiation.RadiationBundle.create_radiation_bundle"]], "create_radiation_mode() (mayawaves.radiation.radiationmode static method)": [[6, "mayawaves.radiation.RadiationMode.create_radiation_mode"]], "create_radiation_sphere() (mayawaves.radiation.radiationsphere static method)": [[6, "mayawaves.radiation.RadiationSphere.create_radiation_sphere"]], "denergy_dt_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.dEnergy_dt_radiated"]], "dp_dt_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.dP_dt_radiated"]], "energy_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.energy_radiated"]], "extrapolated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.extrapolated"]], "extrapolated (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.extrapolated"]], "extrapolated_sphere (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.extrapolated_sphere"]], "frame (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.frame"]], "frame (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.frame"]], "get_denergy_dt_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_dEnergy_dt_radiated"]], "get_denergy_dt_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_dEnergy_dt_radiated"]], "get_dp_dt_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_dP_dt_radiated"]], "get_dp_dt_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_dP_dt_radiated"]], "get_energy_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_energy_radiated"]], "get_energy_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_energy_radiated"]], "get_extrapolated_sphere() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_extrapolated_sphere"]], "get_linear_momentum_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_linear_momentum_radiated"]], "get_linear_momentum_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_linear_momentum_radiated"]], "get_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_mode"]], "get_mode_with_extrapolated_radius() (mayawaves.radiation.radiationmode method)": [[6, "mayawaves.radiation.RadiationMode.get_mode_with_extrapolated_radius"]], "get_psi4_amplitude_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_amplitude_for_mode"]], "get_psi4_amplitude_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_amplitude_for_mode"]], "get_psi4_imaginary_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_imaginary_for_mode"]], "get_psi4_imaginary_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_imaginary_for_mode"]], "get_psi4_max_time_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_max_time_for_mode"]], "get_psi4_max_time_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_max_time_for_mode"]], "get_psi4_phase_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_phase_for_mode"]], "get_psi4_phase_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_phase_for_mode"]], "get_psi4_real_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_real_for_mode"]], "get_psi4_real_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_real_for_mode"]], "get_strain_amplitude_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_amplitude_for_mode"]], "get_strain_amplitude_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_amplitude_for_mode"]], "get_strain_cross_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_cross_for_mode"]], "get_strain_cross_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_cross_for_mode"]], "get_strain_phase_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_phase_for_mode"]], "get_strain_phase_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_phase_for_mode"]], "get_strain_plus_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_plus_for_mode"]], "get_strain_plus_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_plus_for_mode"]], "get_strain_recomposed_at_sky_location() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_recomposed_at_sky_location"]], "get_strain_recomposed_at_sky_location() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_recomposed_at_sky_location"]], "get_time() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_time"]], "h_cross_dot (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.h_cross_dot"]], "h_plus_dot (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.h_plus_dot"]], "included_modes (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.included_modes"]], "included_modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.included_modes"]], "included_radii (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.included_radii"]], "l_max (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.l_max"]], "l_max (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.l_max"]], "l_value (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.l_value"]], "linear_momentum_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.linear_momentum_radiated"]], "m_value (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.m_value"]], "modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.modes"]], "omega_start (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.omega_start"]], "psi4_amplitude (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_amplitude"]], "psi4_imaginary (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_imaginary"]], "psi4_max_time (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_max_time"]], "psi4_omega (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_omega"]], "psi4_phase (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_phase"]], "psi4_real (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_real"]], "radiation_sphere (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.radiation_sphere"]], "radiation_spheres (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.radiation_spheres"]], "radius (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.radius"]], "radius (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.radius"]], "radius_for_extrapolation (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.radius_for_extrapolation"]], "raw_modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.raw_modes"]], "set_frame() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.set_frame"]], "set_frame() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.set_frame"]], "strain_amplitude (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_amplitude"]], "strain_cross (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_cross"]], "strain_phase (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_phase"]], "strain_plus (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_plus"]], "time (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.time"]], "time (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.time"]], "ylm() (mayawaves.radiation.radiationmode static method)": [[6, "mayawaves.radiation.RadiationMode.ylm"]], "catalog (class in mayawaves.utils.catalogutils)": [[7, "mayawaves.utils.catalogutils.Catalog"]], "parameter (class in mayawaves.utils.catalogutils)": [[7, "mayawaves.utils.catalogutils.Parameter"]], "aligned_spin_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.aligned_spin_simulations"]], "create_h5_from_simulation() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.create_h5_from_simulation"]], "dh_dr_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.dH_dr_from_separation"]], "determine_lvc_format() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.determine_lvc_format"]], "download_waveforms() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.download_waveforms"]], "export_to_ascii() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_ascii"]], "export_to_lal_compatible_format() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_lal_compatible_format"]], "export_to_lvcnr_catalog() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_lvcnr_catalog"]], "get_parameters_for_simulation() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_parameters_for_simulation"]], "get_simulations_with_mass_ratio() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_mass_ratio"]], "get_simulations_with_parameters() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_parameters"]], "get_simulations_with_symmetric_mass_ratio() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_symmetric_mass_ratio"]], "get_stitched_data() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.get_stitched_data"]], "low_pass_filter() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.low_pass_filter"]], "mayawaves.utils.catalogutils": [[7, "module-mayawaves.utils.catalogutils"]], "mayawaves.utils.postnewtonianutils": [[7, "module-mayawaves.utils.postnewtonianutils"]], "mayawaves.utils.postprocessingutils": [[7, "module-mayawaves.utils.postprocessingutils"]], "nonspinning_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.nonspinning_simulations"]], "orbital_frequency_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.orbital_frequency_from_separation"]], "plot_catalog_parameters() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.plot_catalog_parameters"]], "precessing_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.precessing_simulations"]], "radial_momentum_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.radial_momentum_from_separation"]], "separation_from_orbital_frequency() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.separation_from_orbital_frequency"]], "spin_magnitudes_for_simulation() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.spin_magnitudes_for_simulation"]], "summarize_coalescence() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.summarize_coalescence"]], "tangential_momentum_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.tangential_momentum_from_separation"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "source/contributing", "source/getting_help", "source/getting_started", "source/mayawaves.coalescence", "source/mayawaves.compactobject", "source/mayawaves.radiation", "source/mayawaves.utils", "source/notebooks/catalog_utils", "source/notebooks/compact_objects", "source/notebooks/creating_h5", "source/notebooks/exporting_lvk", "source/notebooks/gravitational_waves", "source/notebooks/reading_raw_files"], "filenames": ["index.rst", "source/contributing.rst", "source/getting_help.rst", "source/getting_started.rst", "source/mayawaves.coalescence.rst", "source/mayawaves.compactobject.rst", "source/mayawaves.radiation.rst", "source/mayawaves.utils.rst", "source/notebooks/catalog_utils.ipynb", "source/notebooks/compact_objects.ipynb", "source/notebooks/creating_h5.ipynb", "source/notebooks/exporting_lvk.ipynb", "source/notebooks/gravitational_waves.ipynb", "source/notebooks/reading_raw_files.ipynb"], "titles": ["Welcome to Mayawaves\u2019s documentation!", "Contributor\u2019s Guide", "Getting Help", "Getting Started", "mayawaves.coalescence module", "mayawaves.compactobject module", "mayawaves.radiation module", "mayawaves.utils package", "Catalog Utils", "Compact Objects", "Creating a Mayawaves h5 File", "Exporting to LVK Catalog Format", "Gravitational Waves", "Reading raw simulation files"], "terms": {"i": [0, 1, 3, 4, 5, 6, 7], "python": [0, 1, 3], "librari": [0, 1, 2, 3], "analysi": [0, 1], "numer": [0, 3, 8], "rel": [0, 3, 8], "simul": [0, 4, 5, 6, 7], "binari": [0, 7], "black": [0, 3, 4], "hole": [0, 3, 4], "perform": [0, 4, 7], "einstein": [0, 3], "toolkit": [0, 3], "http": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13], "einsteintoolkit": 0, "org": [0, 3, 4, 6, 7, 9, 10, 11, 12, 13], "provid": [0, 3, 4, 6, 7], "through": [0, 3, 4, 6], "maya": [0, 1, 7, 9, 11, 12], "public": [0, 3, 7], "waveform": [0, 3, 7, 9, 12], "catalog": [0, 4, 7, 9, 12], "cgp": [0, 8, 9, 11, 12], "ph": [0, 8, 9, 11, 12], "utexa": [0, 8, 9, 11, 12], "edu": [0, 2, 8, 9, 11, 12], "produc": 0, "larg": 0, "amount": 0, "data": [0, 3, 4, 5, 6, 7, 11], "ar": [0, 1, 3, 4, 6, 7], "gener": [0, 3, 7], "over": [0, 4, 5, 6], "cours": 0, "mani": 0, "dai": 0, "The": [0, 1, 3, 4, 5, 6, 7], "typic": 0, "broken": [0, 1], "multipl": 0, "output": [0, 3, 7], "directori": [0, 1, 7, 13], "within": [0, 4, 6, 7], "which": [0, 3, 4, 5, 6, 7], "must": [0, 7], "stitch": [0, 3, 7], "togeth": [0, 3, 7], "process": [0, 1], "whole": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13], "design": 0, "streamlin": 0, "analsi": 0, "raw": [0, 4, 6, 7], "store": [0, 3, 4, 6, 7, 10, 11], "them": [0, 1], "h5": [0, 4, 7], "file": [0, 2, 4, 7, 8], "format": [0, 3, 7, 9, 12], "handl": [0, 3], "more": [0, 3], "effici": 0, "than": [0, 4, 7], "ascii": [0, 3, 4, 7], "reduc": 0, "disc": 0, "space": 0, "taken": 0, "while": 0, "still": 0, "retain": 0, "precis": 0, "some": [0, 3], "kei": [0, 4, 7], "function": [0, 1, 3, 4, 5], "follow": [0, 1, 3, 8], "read": [0, 3, 7], "track": [0, 1], "properti": [0, 4, 5, 6, 7], "trajectori": [0, 3], "spin": [0, 3, 4, 5, 6, 7], "mass": [0, 3, 4, 5, 6, 7], "horizon": [0, 3, 4, 5, 7], "inform": [0, 3, 5, 6, 7, 10], "etc": [0, 3, 8], "comput": [0, 3, 4, 6, 7], "about": [0, 3, 4], "orbit": [0, 4, 7], "eccentr": [0, 3, 4, 8], "separ": [0, 3, 4, 7, 8, 13], "frequenc": [0, 4, 6, 7], "kick": [0, 4], "quantiti": 0, "pertain": [0, 3, 5, 6], "gravit": [0, 3, 4, 6, 7, 8], "radiat": [0, 3, 4], "psi_4": [0, 3, 4, 6], "strain": [0, 4, 6], "extrapol": [0, 4, 6, 7], "energi": [0, 3, 4, 6], "export": [0, 3, 7], "requir": [0, 7], "ligo": [0, 7], "analys": [0, 3], "analyz": 0, "learn": 0, "how": 0, "us": [0, 1, 4, 5, 6, 7], "both": [0, 1], "your": [0, 3], "own": 0, "get": [0, 5], "start": [0, 6], "help": [0, 1], "contributor": 0, "guid": 0, "creat": [0, 1, 4, 6, 7], "wave": [0, 3, 4, 6, 7], "compact": [0, 3, 4, 5, 10], "object": [0, 3, 4, 5, 6, 7, 8, 10], "lvk": [0, 3], "util": [0, 10, 11, 13], "coalesc": [0, 5, 7], "modul": [0, 3], "compactobject": [0, 4], "radiationbundl": [0, 4, 6], "radiationspher": [0, 3, 6], "radiationmod": [0, 3, 6], "packag": [0, 3], "postprocessingutil": [0, 3, 10, 11, 13], "catalogutil": [0, 3, 8], "postnewtonianutil": 0, "index": 0, "mayawav": [1, 2, 8, 9, 11, 12, 13], "intend": 1, "grow": 1, "expand": 1, "addit": [1, 3], "tool": 1, "we": [1, 3, 8], "welcom": 1, "input": 1, "commun": 1, "new": [1, 6], "featur": 1, "implement": 1, "In": [1, 3], "order": [1, 4, 6, 7], "smooth": 1, "workflow": 1, "you": [1, 2, 3, 6, 7, 12], "repositori": [1, 2, 3], "branch": 1, "all": [1, 3, 4, 5, 6, 7], "do": 1, "ani": [1, 2, 3], "main": [1, 3], "mai": [1, 3], "primari": [1, 3, 4, 7], "can": [1, 3, 4, 6, 7, 12], "step": 1, "section": [1, 3], "onli": [1, 6], "need": 1, "done": [1, 3], "onc": [1, 9, 11, 12], "click": 1, "button": 1, "github": [1, 2, 3], "com": [1, 2, 3, 11], "Then": [1, 9, 10, 11, 12, 13], "clone": [1, 3], "machin": 1, "git": [1, 3], "your_workspac": 1, "link": 1, "upstream": 1, "cd": [1, 3], "remot": 1, "add": 1, "setup": 1, "checkout": 1, "fetch": 1, "set": [1, 4, 6, 9, 10, 11, 12, 13], "pull": 1, "To": [1, 3, 8, 9, 10, 11, 12, 13], "regularli": 1, "push": 1, "origin": [1, 4, 6, 7], "b": [1, 3], "name": [1, 4, 7, 8], "desir": [1, 4, 5, 7], "commit": 1, "frequent": 1, "descript": 1, "messag": 1, "when": [1, 3, 4, 6, 7], "readi": 1, "first": [1, 4, 6, 8], "futur": 1, "period": 1, "rebas": 1, "f": [1, 3, 8, 9], "ensur": 1, "exist": [1, 4], "pass": 1, "suit": 1, "from": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13], "m": [1, 3, 4, 5, 6, 7, 9, 11], "unittest": 1, "discov": 1, "pleas": [1, 2, 3], "thei": [1, 7], "also": [1, 3, 7, 9, 11, 12], "ve": 1, "made": 1, "doc": 1, "rm": [1, 3], "r": [1, 3, 4, 9, 12, 13], "html": 1, "doctre": 1, "happi": 1, "review": 1, "develop": [1, 2], "team": 1, "If": [2, 3, 4, 6, 7], "encount": 2, "bug": 2, "unexpect": 2, "behavior": 2, "an": [2, 4], "issu": 2, "feel": 2, "free": 2, "contact": 2, "directli": [2, 3], "dferg": 2, "illinoi": 2, "have": [2, 5, 7, 9, 12], "question": [2, 3, 7], "regard": [2, 7], "either": [3, 4, 6], "pypi": 3, "sourc": [3, 4], "pip": 3, "code": [3, 7], "put": 3, "import": [3, 7, 8, 9, 10, 11, 12, 13], "top": 3, "specif": [3, 4, 6], "part": [3, 4, 5, 6, 11], "instead": [3, 7], "would": [3, 6], "rather": [3, 7], "create_h5_from_simul": [3, 7, 10], "For": [3, 7], "most": 3, "usecas": 3, "3": [3, 6, 7, 8, 9, 10, 11, 12], "9": [3, 8, 9, 12], "leq": [3, 4, 6], "It": 3, "reli": 3, "upon": [3, 7], "automat": 3, "numpi": [3, 4, 6, 7, 12, 13], "scipi": 3, "panda": [3, 4], "romsplin": 3, "wget": 3, "matplotlib": [3, 9, 12, 13], "mock": 3, "howev": 3, "want": [3, 7], "abil": 3, "switch": 3, "center": [3, 4, 6, 7, 8], "frame": [3, 4, 6], "ha": [3, 4, 6], "depend": 3, "10": [3, 7, 8, 9, 12], "well": [3, 7], "numba": 3, "scri": 3, "been": [3, 6], "test": 3, "releas": 3, "meitner": 3, "decemb": 3, "6th": 3, "2023": 3, "support": 3, "thorn": 3, "ahfinderdirect": 3, "puncturetrack": 3, "quasilocalmeasur": 3, "multipol": [3, 4], "weylscal4": 3, "ihspin": 3, "shifttrack": 3, "ylm_decomp": 3, "runstat": [3, 4], "research": 3, "bibtex": [3, 7], "softwar": 3, "ferguson_mayawaves_2023": 3, "author": 3, "ferguson": 3, "deborah": 3, "ann": 3, "surendra": 3, "gracia": 3, "linar": 3, "miguel": 3, "iglesia": 3, "hector": 3, "jan": 3, "aasim": 3, "martinez": 3, "erick": 3, "lu": 3, "meoni": 3, "filippo": 3, "nowicki": 3, "ryan": 3, "trostel": 3, "max": [3, 4, 6], "tsao": 3, "bing": 3, "jyun": 3, "valorz": 3, "finni": 3, "doi": 3, "5281": 3, "zenodo": [3, 9, 10, 11, 12, 13], "10035526": 3, "month": 3, "oct": 3, "titl": 3, "url": 3, "version": 3, "v2023": 3, "year": 3, "apa": 3, "d": 3, "": [3, 4, 5], "h": [3, 4, 6], "A": [3, 4, 6], "e": [3, 6, 7], "l": [3, 4, 5, 6, 11, 12], "These": 3, "citat": 3, "download": [3, 7, 9, 10, 11, 12, 13], "heart": 3, "interact": [3, 4, 6, 7, 8], "contain": [3, 4, 5, 6, 7], "everyth": 3, "each": [3, 4, 6, 7], "involv": 3, "refer": [3, 4], "tutori": [3, 9, 10, 11], "detail": 3, "list": [3, 4, 5, 6, 7], "attribut": 3, "access": 3, "secondari": [3, 4, 7], "final": [3, 4], "larger": [3, 4, 7], "initi": [3, 4, 7], "primarili": 3, "behind": 3, "scene": 3, "extract": [3, 4, 6, 7], "concentr": 3, "sphere": [3, 6], "sever": 3, "express": [3, 6], "wai": 3, "independ": 3, "locat": [3, 4, 6, 7], "decompos": [3, 4, 6], "term": [3, 6], "spheric": [3, 4, 6], "harmon": [3, 4, 6], "t": [3, 4, 6, 9, 12, 13], "theta": [3, 4, 6, 12], "phi": [3, 4, 6, 12], "sum_": [3, 4, 6], "ell": [3, 4, 6], "psi_": [3, 12, 13], "4": [3, 8, 9, 10, 11, 12, 13], "_": [3, 4, 6], "2": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "y_": [3, 4, 6], "pair": [3, 6], "There": 3, "includ": [3, 4, 5, 6, 7], "shown": 3, "creating_h5": [3, 9, 11, 12], "exporting_lvk": 3, "enabl": 3, "user": 3, "entir": 3, "metadata": [3, 4, 7, 8, 10], "walk": 3, "two": [3, 4, 7], "describ": [3, 4, 6], "below": [3, 4], "begin": [3, 4, 5], "instruct": 3, "With": 3, "hand": 3, "h5_filepath": [3, 4], "limit": 3, "exampl": 3, "exhaust": 3, "coales": [3, 4], "method": [3, 4, 6], "see": 3, "call": 3, "primary_compact_object": [3, 4, 9], "secondary_compact_object": [3, 4, 9], "final_compact_object": [3, 4], "associ": [3, 4, 6, 7], "know": 3, "relev": 3, "appar": [3, 5], "document": [3, 7], "back": [3, 4], "summarize_coalesc": [3, 7], "quick": 3, "summari": [3, 7], "paramet": [3, 4, 5, 6, 7, 10], "plot": [3, 7, 9, 12], "gravitaiton": 3, "monitor": 3, "ongo": 3, "run": [3, 7, 9, 10, 11, 12, 13], "simpli": 3, "make": 3, "get_stitched_data": [3, 7], "given": [3, 4, 5, 6, 7], "return": [3, 4, 5, 6, 7], "arrai": [3, 4, 5, 6, 7], "same": [3, 6, 7], "request": [3, 5, 6, 7], "full": [3, 5, 7], "search": 3, "even": 3, "class": [4, 5, 6, 7], "str": [4, 5, 7], "fundament": 4, "average_run_spe": 4, "float": [4, 5, 6, 7], "averag": 4, "speed": 4, "hr": 4, "catalog_id": [4, 7], "id": [4, 7, 8, 11], "center_of_mass": [4, 6], "tupl": [4, 5, 6, 7], "coordin": [4, 13], "posit": [4, 5], "close": 4, "its": [4, 6], "compact_object_by_id": 4, "int": [4, 5, 6, 7], "type": [4, 5, 6, 7], "compact_object_data_for_object": 4, "object_num": 4, "ndarrai": [4, 5, 6, 7], "intern": [4, 5, 7], "compact_object_metadata_dict": 4, "dict": [4, 6, 7], "retriev": 4, "relat": 4, "compact_object": 4, "denergy_dt_radi": [4, 6], "lmin": [4, 6], "none": [4, 6, 7], "lmax": [4, 6], "extraction_radiu": [4, 6, 7, 11], "rate": [4, 6], "arxiv": [4, 6, 7], "ab": [4, 6, 7], "0707": [4, 6], "4654": [4, 6], "total": [4, 6, 7, 8], "sum": [4, 6], "mode": [4, 6], "option": [4, 6, 7], "minumum": [4, 6], "valu": [4, 5, 6, 7, 8], "rang": [4, 6], "maximum": [4, 5, 6, 8], "radiu": [4, 5, 6, 7], "infinit": [4, 6, 7], "time": [4, 5, 6, 7, 9], "np": [4, 5, 12, 13], "de": [4, 6], "dt": [4, 6], "dp_dt_radiat": [4, 6], "deriv": [4, 6, 7], "linear": [4, 6], "momentum": [4, 5, 6, 7], "being": [4, 7], "dp": [4, 6], "eccentricity_and_mean_anomaly_at_tim": 4, "start_tim": 4, "desired_tim": [4, 5], "mean": [4, 5], "anomali": 4, "1810": [4, 7], "00036": [4, 7], "four": 4, "unabl": 4, "fit": 4, "successfulli": 4, "estim": 4, "base": [4, 7], "defin": [4, 6, 7], "math": 4, "pi": [4, 6, 12], "rac": 4, "t_": 4, "prev": 4, "next": 4, "where": [4, 5, 6, 7], "periapsi": 4, "arg": 4, "energy_radi": [4, 6], "cummul": [4, 6], "nergi": 4, "cumul": [4, 6], "extrapolate_psi4_to_infinite_radiu": 4, "1": [4, 6, 7, 8, 9, 10, 11, 12], "calcul": [4, 7], "finit": 4, "obtain": [4, 7, 8, 10, 11, 13], "1008": [4, 6], "4360": [4, 6], "1108": [4, 6], "4421": [4, 6], "default": [4, 6, 7], "remnant": 4, "form": [4, 5], "after": 4, "merger": 4, "path": [4, 7, 9, 10, 11, 12], "included_extraction_radii": 4, "radii": [4, 6], "included_mod": [4, 6], "label": [4, 6, 9], "initial_orbital_frequ": 4, "init": 4, "vector": [4, 5], "between": [4, 7], "initial_separ": 4, "l_max": [4, 6], "linear_momentum_radi": [4, 6], "inear": 4, "mass_ratio": [4, 7, 8], "ratio": [4, 7], "alwai": 4, "greater": 4, "divid": 4, "smaller": [4, 7], "q": [4, 7, 8], "m_1": [4, 7], "m_2": [4, 7], "merge_tim": [4, 8], "goe": 4, "1e": 4, "what": [4, 7], "wa": [4, 6], "object_numb": 4, "orbital_angular_momentum_unit_vector": 4, "angular": [4, 7], "unit": 4, "orbital_angular_momentum_unit_vector_at_tim": 4, "orbital_frequ": [4, 7], "orbital_frequency_at_tim": 4, "orbital_phase_in_xy_plan": 4, "phase": [4, 6], "xy": [4, 5, 9], "plane": [4, 5, 6, 9], "parameter_fil": 4, "dictionari": [4, 6, 7], "text": 4, "rpar": 4, "par": [4, 8], "psi4_amp_phase_for_mod": 4, "0": [4, 6, 7, 8, 9, 10, 11, 12], "amplitud": [4, 6], "psi4_max_time_for_mod": 4, "reach": [4, 6], "peak": [4, 6], "specifi": [4, 6, 7], "singl": [4, 6], "psi4_real_imag_for_mod": [4, 12], "real": [4, 6, 12], "imaginari": [4, 6], "compon": [4, 6, 9], "psi4_sourc": 4, "could": 4, "weylscal": 4, "radiation_fram": 4, "current": [4, 6, 8], "radius_for_extrapol": [4, 6], "recoil_spe": 4, "km_per_sec": 4, "bool": [4, 6, 7], "fals": [4, 6, 7], "magnitud": [4, 7], "recoil": 4, "whether": [4, 6, 7], "report": 4, "km": 4, "fraction": 4, "c": [4, 12, 13], "recoil_veloc": 4, "veloc": [4, 5], "runstats_data": 4, "dataset": [4, 5], "separation_at_tim": 4, "point": [4, 6, 13], "separation_unit_vector_at_tim": 4, "separation_vector": [4, 13], "set_radiation_fram": [4, 12], "center_of_mass_correct": [4, 6, 7, 11, 12], "decomposit": [4, 6], "drift": [4, 6, 7], "correct": [4, 6, 7], "spin_configur": 4, "configur": 4, "non": 4, "align": [4, 7], "precess": [4, 7], "neither": 4, "anti": [4, 7], "least": 4, "one": [4, 6, 7], "strain_amp_phase_for_mod": 4, "second": [4, 6], "integr": [4, 6], "fix": [4, 6], "rh_": [4, 6, 12], "strain_for_mod": [4, 12], "plu": [4, 6], "cross": [4, 6], "rh": [4, 6, 12], "strain_recomposed_at_sky_loc": [4, 12], "recompos": [4, 6], "sky": [4, 6], "up": [4, 6], "weight": [4, 6], "h_": [4, 6], "lt": [4, 6, 8, 9], "symmetric_mass_ratio": [4, 8], "symmetr": [4, 7], "eta": [4, 7, 8], "data_arrai": 5, "header_list": 5, "identifi": 5, "object_typ": 5, "initial_irreducible_mass": [5, 9], "initial_horizon_mass": [5, 9], "initial_dimensionless_spin": [5, 9], "initial_dimensional_spin": [5, 9], "column": [5, 7, 9], "enum": [5, 6, 7], "easili": [5, 7], "referenc": [5, 7], "apparent_horizon_area": 5, "area": [5, 9], "apparent_horizon_areal_radiu": 5, "areal": 5, "apparent_horizon_circumfer": 5, "circumfer": [5, 9], "xz": 5, "yz": 5, "respect": [5, 7], "apparent_horizon_expansion_theta_l": 5, "expans": 5, "theta_": 5, "apparent_horizon_inner_expansion_theta_n": 5, "inner": 5, "n": [5, 8], "apparent_horizon_maximum_radiu": 5, "apparent_horizon_mean_curvatur": 5, "curvatur": 5, "apparent_horizon_mean_radiu": 5, "apparent_horizon_minimum_radiu": 5, "minimum": [5, 6, 8], "apparent_horizon_quadrupol": 5, "quadrupol": 5, "xx": 5, "yy": 5, "zz": 5, "available_data_column": [5, 9], "dimensional_spin_at_tim": 5, "dimension": [5, 9], "pmb": 5, "j": 5, "dimensional_spin_vector": 5, "dimensionless_spin_at_tim": 5, "dimensionless": [5, 7, 9], "chi": 5, "giventim": 5, "dimensionless_spin_vector": [5, 9], "final_dimensional_spin": 5, "last": 5, "avail": [5, 7, 8], "final_dimensionless_spin": 5, "final_horizon_mass": 5, "final_irreducible_mass": 5, "irreduc": [5, 9], "get_data_from_column": [5, 9], "column_nam": 5, "iter": 5, "horizon_mass": 5, "horizon_mass_at_tim": 5, "irreducible_mass": 5, "irreducible_mass_at_tim": 5, "last_available_spin_data_tim": 5, "momentum_vector": 5, "position_vector": [5, 9], "velocity_vector": 5, "radiation_spher": 6, "radi": [6, 10], "create_extrapolated_spher": 6, "those": [6, 7], "static": 6, "create_radiation_bundl": 6, "radiation_group": 6, "group": [6, 7], "h5py": 6, "consist": 6, "extrapolated_spher": 6, "com_correct": 6, "get_denergy_dt_radi": 6, "kwarg": 6, "like": 6, "valid": 6, "keyword": 6, "argument": 6, "get_dp_dt_radi": 6, "get_energy_radi": 6, "get_linear_momentum_radi": 6, "get_psi4_amplitude_for_mod": 6, "infin": 6, "get_psi4_imaginary_for_mod": 6, "get_psi4_max_time_for_mod": 6, "get_psi4_phase_for_mod": 6, "get_psi4_real_for_mod": 6, "get_strain_amplitude_for_mod": 6, "get_strain_cross_for_mod": 6, "get_strain_phase_for_mod": 6, "get_strain_plus_for_mod": 6, "get_strain_recomposed_at_sky_loc": 6, "get_tim": 6, "timeseri": 6, "included_radii": 6, "set_fram": 6, "new_fram": 6, "transform": 6, "stamp": [6, 7], "necessari": 6, "move": 6, "seri": [6, 7], "mode_dict": 6, "create_radiation_spher": 6, "radius_group": 6, "inerti": 6, "get_extrapolated_spher": 6, "get_mod": 6, "raw_mod": 6, "alpha": 6, "beta": 6, "offset": 6, "boost": 6, "rad": 6, "psi4_group": 6, "psi4_real": 6, "psi4_imaginari": 6, "strain_plu": 6, "strain_cross": 6, "compute_and_store_strain": 6, "doubl": 6, "fourier": 6, "create_radiation_mod": 6, "psi4": 6, "empti": 6, "construct": 6, "pdf": [6, 7], "eq": 6, "8": [6, 8, 9, 11, 12, 13], "14": [6, 8, 9, 12], "15": [6, 8, 9, 12], "get_mode_with_extrapolated_radiu": 6, "h_cross_dot": 6, "h_plus_dot": 6, "l_valu": 6, "denot": 6, "m_valu": 6, "omega_start": 6, "psi4_amplitud": 6, "weyl": 6, "scalar": 6, "sqrt": [6, 13], "mathcal": 6, "re": 6, "im": 6, "psi4_max_tim": 6, "psi4_omega": 6, "psi4_phas": 6, "textrm": 6, "tan": 6, "strain_amplitud": 6, "strain_phas": 6, "ylm": 6, "angl": 6, "z": [6, 9], "axi": [6, 13], "x": [6, 9, 12], "y": [6, 9], "counterclockwis": 6, "raw_directori": 7, "output_directori": [7, 10], "compat": 7, "determine_lvc_format": 7, "initial_horizon_tim": 7, "determin": 7, "lvc": 7, "number": 7, "definit": 7, "1703": 7, "01076": 7, "export_to_ascii": 7, "individu": 7, "export_to_lal_compatible_format": [7, 11], "nr_group": [7, 11], "nr_code": [7, 11], "bibtex_kei": [7, 11], "contact_email": [7, 11], "license_typ": 7, "nr_techniqu": 7, "comparable_simul": 7, "files_in_error_seri": 7, "production_run": 7, "true": [7, 8, 11, 12], "lalsuit": 7, "readabl": 7, "pycbc": 7, "less": 7, "stringent": 7, "nr": 7, "cite": 7, "email": [7, 11], "aris": 7, "tag": 7, "save": 7, "g": 7, "maya0908": 7, "techniqu": 7, "were": 7, "other": 7, "similar": 7, "error": 7, "product": 7, "export_to_lvcnr_catalog": [7, 11], "suffici": 7, "abl": 7, "eeccentr": 7, "Will": 7, "filenam": 7, "low_pass_filt": 7, "low_pass_freq_cutoff": 7, "filter": 7, "out": 7, "high": 7, "nois": 7, "butter": 7, "cutoff": 7, "remov": 7, "summar": 7, "collect": 7, "txt": 7, "displai": 7, "aligned_spin_simul": [7, 8], "download_waveform": [7, 8], "save_wf_path": [7, 8], "safeti": 7, "lvcnr_format": [7, 8], "By": 7, "verif": 7, "size": [7, 8], "exce": 7, "gb": [7, 8], "get_parameters_for_simul": [7, 8], "get_simulations_with_mass_ratio": [7, 8], "tol": [7, 8], "0001": 7, "toler": 7, "geq": 7, "satisfi": 7, "get_simulations_with_paramet": [7, 8], "param": [7, 8], "take": 7, "correspond": 7, "get_simulations_with_symmetric_mass_ratio": [7, 8], "nonspinning_simul": [7, 8], "plot_catalog_paramet": [7, 8], "p1": 7, "p2": 7, "save_path": [7, 8], "dpi": [7, 8], "300": 7, "color": [7, 8], "cornflowerblu": 7, "against": 7, "histogram": 7, "distribut": 7, "figur": 7, "precessing_simul": [7, 8], "spin_magnitudes_for_simul": 7, "system": 7, "dh_dr_from_separ": 7, "primary_dimensionless_spin": 7, "secondary_dimensionless_spin": 7, "hamiltonian": 7, "orbital_frequency_from_separ": 7, "quasi": 7, "circular": 7, "equat": 7, "1702": 7, "00872": 7, "radial_momentum_from_separ": 7, "radial": 7, "give": 7, "separation_from_orbital_frequ": 7, "tangential_momentum_from_separ": 7, "tangenti": 7, "p": 8, "updat": 8, "all_simul": 8, "print": [8, 9, 10], "len": 8, "ten": 8, "635": 8, "gt0001": 8, "39": [8, 9], "gt0002": 8, "gt0003": 8, "gt0004": 8, "gt0005": 8, "gt0006": 8, "gt0007": 8, "gt0008": 8, "gt0009": 8, "gt0010": 8, "sep": 8, "mass_1": 8, "mass_2": 8, "irreducible_mass_1": 8, "irreducible_mass_2": 8, "dimensionless_spin_1": 8, "dimensionless_spin_x_1": 8, "dimensionless_spin_y_1": 8, "dimensionless_spin_z_1": 8, "dimensionless_spin_2": 8, "dimensionless_spin_x_2": 8, "dimensionless_spin_y_2": 8, "dimensionless_spin_z_2": 8, "chi_eff": 8, "chi_p": 8, "f_lower_at_1msun": 8, "mean_anomali": 8, "maya_size_gb": 8, "lvcnr_size_gb": 8, "5": [8, 9, 11, 12, 13], "103": 8, "gt0370": 8, "6": [8, 9, 11, 12, 13], "157": 8, "gt0355": 8, "7": [8, 9, 11, 12, 13], "370": 8, "sim": 8, "53": 8, "gt0428": 8, "92": 8, "gt0376": 8, "23": [8, 9], "005": 8, "11": [8, 9, 12], "simulation_paramet": 8, "gt0378": 8, "050005889145129": 8, "12": [8, 9, 12], "simulation_parameter_str": 8, "join": 8, "item": 8, "d10_a0": 8, "0_q2": 8, "05_m103_q": 8, "m1": 8, "672130590009755": 8, "m2": 8, "3278676386095844": 8, "m1_irr": 8, "67213059": 8, "m2_irr": 8, "3278676386": 8, "220371": 8, "a1": 8, "0775370384725463e": 8, "05": [8, 9], "a1x": 8, "189079683097315e": 8, "13": [8, 9, 12], "a1i": 8, "31375343569779e": 8, "a1z": 8, "0775370384725444e": 8, "a2": 8, "5292461249223795e": 8, "a2x": 8, "0523082784791894e": 8, "a2i": 8, "0845157044129532e": 8, "a2z": 8, "5292461249220173e": 8, "2256380923285683e": 8, "652204568862241e": 8, "1807": 8, "5340709236116": 8, "99995249833483": 8, "005865368688535364": 8, "998": 8, "6407813": 8, "3597998470067978": 8, "lvcnr": 8, "00412185862660408": 8, "01": 8, "001": 8, "4999": 8, "125": 8, "21": [8, 9], "27": [8, 9], "500": 8, "432x288": 8, "ax": [8, 9], "gt": [8, 9], "9996440633567225": 8, "07085918507278": 8, "8089458636660637": 8, "8085713846964644": 8, "salmon": 8, "990315336895653e": 8, "18": [8, 9], "9316840649738882": 8, "16": [8, 9, 12], "green": 8, "8462054439966505e": 8, "9261967059788215": 8, "physic": 8, "websit": 8, "here": 8, "gt0898": 8, "17": [8, 9, 12, 13], "gw15_d12_q1": 8, "2_a0": 8, "0_m140": 8, "5455": 8, "4545": 8, "2000": 8, "2479": 8, "0000": 8, "1445": 8, "3053": 8, "0021": 8, "2766": 8, "1891": 8, "1250": 8, "9177": 8, "0084": 8, "tar": [9, 10, 11, 12, 13], "gz": [9, 10, 11, 12, 13], "record": [9, 10, 11, 12, 13], "10668525": [9, 10, 11, 12, 13], "unzip": [9, 10, 11, 12, 13], "example_h5_filepath": [9, 11, 12], "sampl": [9, 11, 12], "try": [9, 11, 12], "pyplot": [9, 12, 13], "plt": [9, 12, 13], "d11_q5_a1_": [9, 10, 11, 12, 13], "362_": [9, 10, 11, 12, 13], "0548_": [9, 10, 11, 12, 13], "64_a2_": [9, 10, 11, 12, 13], "0013_0": [9, 10, 11, 12, 13], "001_": [9, 10, 11, 12, 13], "0838_m533": [9, 10, 11, 12, 13], "33": [9, 10, 11, 12, 13], "primary_posit": 9, "secondary_posit": 9, "gca": [9, 13], "set_aspect": [9, 13], "equal": [9, 13], "adjust": [9, 13], "box": [9, 13], "xlabel": [9, 12, 13], "ylabel": [9, 12, 13], "show": [9, 12, 13], "bh": 9, "36451101": 9, "05518085": 9, "64443774": 9, "00129516": 9, "00100747": 9, "08374188": 9, "25138458": 9, "0380554": 9, "4444357": 9, "59770435e": 9, "79857020e": 9, "32619237e": 9, "03": 9, "8304509510300787": 9, "16666770757317356": 9, "7588330514": 9, "166521231": 9, "primary_spin": 9, "a_": 9, "legend": 9, "secondary_spin": 9, "available_column": 9, "itt": 9, "vx": 9, "vy": 9, "vz": 9, "ai": 9, "az": 9, "sx": 9, "sy": 9, "sz": 9, "px": 9, "py": 9, "pz": 9, "min_radiu": 9, "max_radiu": 9, "19": 9, "mean_radiu": 9, "20": 9, "quadrupole_xx": 9, "quadrupole_xi": 9, "22": [9, 12, 13], "quadrupole_xz": 9, "quadrupole_yi": 9, "24": 9, "quadrupole_yz": 9, "25": 9, "quadrupole_zz": 9, "26": 9, "min_x": 9, "max_x": 9, "28": 9, "min_i": 9, "29": 9, "max_i": 9, "30": 9, "min_z": 9, "31": 9, "max_z": 9, "32": 9, "xy_plane_circumfer": 9, "xz_plane_circumfer": 9, "34": 9, "yz_plane_circumfer": 9, "35": 9, "ratio_of_xz_xy_plane_circumfer": 9, "36": 9, "ratio_of_yz_xy_plane_circumfer": 9, "37": 9, "38": 9, "m_irreduc": 9, "areal_radiu": 9, "40": 9, "expansion_theta_l": 9, "41": 9, "inner_expansion_theta_n": 9, "42": 9, "product_of_the_expans": 9, "43": 9, "mean_curvatur": 9, "44": 9, "gradient_of_the_areal_radiu": 9, "45": 9, "gradient_of_the_expansion_theta_l": 9, "46": 9, "gradient_of_the_inner_expansion_theta_n": 9, "47": 9, "gradient_of_the_product_of_the_expans": 9, "48": 9, "gradient_of_the_mean_curvatur": 9, "49": 9, "minimum_of_the_mean_curvatur": 9, "50": 9, "maximum_of_the_mean_curvatur": 9, "51": 9, "integral_of_the_mean_curvatur": 9, "52": 9, "example_simul": 10, "result": [10, 13], "h5_path": 10, "output_direcori": 11, "ut": 11, "austin": 11, "jani": 11, "2016wkt": 11, "doe": 11, "sim0001": 11, "75": 11, "example_h5_filenam": 12, "time_psi4": 12, "imag": 12, "axvlin": [12, 13], "150": [12, 13], "a9a9a9": [12, 13], "linestyl": [12, 13], "time_strain": 12, "rh_plu": 12, "rh_cross": 12, "time_strain_extrapol": 12, "rh_plus_extrapol": 12, "rh_cross_extrapol": 12, "time_strain_com": 12, "rh_plus_com": 12, "rh_cross_com": 12, "simulation_directori": 13, "shifttracker0_data": 13, "shifttracker0": 13, "asc": 13, "shifttracker1_data": 13, "shifttracker1": 13, "separation_mag": 13, "linalg": 13, "norm": 13, "psi4_data": 13, "psi4r_l2_m2_r75": 13, "00": 13}, "objects": {"mayawaves": [[4, 0, 0, "-", "coalescence"], [5, 0, 0, "-", "compactobject"]], "mayawaves.coalescence": [[4, 1, 1, "", "Coalescence"]], "mayawaves.coalescence.Coalescence": [[4, 2, 1, "", "average_run_speed"], [4, 2, 1, "", "catalog_id"], [4, 2, 1, "", "center_of_mass"], [4, 3, 1, "", "close"], [4, 3, 1, "", "compact_object_by_id"], [4, 3, 1, "", "compact_object_data_for_object"], [4, 3, 1, "", "compact_object_metadata_dict"], [4, 2, 1, "", "compact_objects"], [4, 3, 1, "", "dEnergy_dt_radiated"], [4, 3, 1, "", "dP_dt_radiated"], [4, 3, 1, "", "eccentricity_and_mean_anomaly_at_time"], [4, 3, 1, "", "energy_radiated"], [4, 3, 1, "", "extrapolate_psi4_to_infinite_radius"], [4, 2, 1, "", "final_compact_object"], [4, 2, 1, "", "h5_filepath"], [4, 2, 1, "", "included_extraction_radii"], [4, 2, 1, "", "included_modes"], [4, 2, 1, "", "initial_orbital_frequency"], [4, 2, 1, "", "initial_separation"], [4, 2, 1, "", "l_max"], [4, 3, 1, "", "linear_momentum_radiated"], [4, 2, 1, "", "mass_ratio"], [4, 2, 1, "", "merge_time"], [4, 2, 1, "", "name"], [4, 2, 1, "", "object_numbers"], [4, 2, 1, "", "orbital_angular_momentum_unit_vector"], [4, 3, 1, "", "orbital_angular_momentum_unit_vector_at_time"], [4, 2, 1, "", "orbital_frequency"], [4, 3, 1, "", "orbital_frequency_at_time"], [4, 2, 1, "", "orbital_phase_in_xy_plane"], [4, 2, 1, "", "parameter_files"], [4, 2, 1, "", "primary_compact_object"], [4, 3, 1, "", "psi4_amp_phase_for_mode"], [4, 3, 1, "", "psi4_max_time_for_mode"], [4, 3, 1, "", "psi4_real_imag_for_mode"], [4, 2, 1, "", "psi4_source"], [4, 2, 1, "", "radiation_frame"], [4, 2, 1, "", "radiationbundle"], [4, 2, 1, "", "radius_for_extrapolation"], [4, 3, 1, "", "recoil_speed"], [4, 3, 1, "", "recoil_velocity"], [4, 2, 1, "", "runstats_data"], [4, 2, 1, "", "secondary_compact_object"], [4, 3, 1, "", "separation_at_time"], [4, 3, 1, "", "separation_unit_vector_at_time"], [4, 2, 1, "", "separation_vector"], [4, 3, 1, "", "set_radiation_frame"], [4, 2, 1, "", "spin_configuration"], [4, 3, 1, "", "strain_amp_phase_for_mode"], [4, 3, 1, "", "strain_for_mode"], [4, 3, 1, "", "strain_recomposed_at_sky_location"], [4, 2, 1, "", "symmetric_mass_ratio"]], "mayawaves.compactobject": [[5, 1, 1, "", "CompactObject"]], "mayawaves.compactobject.CompactObject": [[5, 1, 1, "", "Column"], [5, 2, 1, "", "apparent_horizon_area"], [5, 2, 1, "", "apparent_horizon_areal_radius"], [5, 2, 1, "", "apparent_horizon_circumferences"], [5, 2, 1, "", "apparent_horizon_expansion_theta_l"], [5, 2, 1, "", "apparent_horizon_inner_expansion_theta_n"], [5, 2, 1, "", "apparent_horizon_maximum_radius"], [5, 2, 1, "", "apparent_horizon_mean_curvature"], [5, 2, 1, "", "apparent_horizon_mean_radius"], [5, 2, 1, "", "apparent_horizon_minimum_radius"], [5, 2, 1, "", "apparent_horizon_quadrupoles"], [5, 2, 1, "", "available_data_columns"], [5, 2, 1, "", "data_array"], [5, 3, 1, "", "dimensional_spin_at_time"], [5, 2, 1, "", "dimensional_spin_vector"], [5, 3, 1, "", "dimensionless_spin_at_time"], [5, 2, 1, "", "dimensionless_spin_vector"], [5, 2, 1, "", "final_dimensional_spin"], [5, 2, 1, "", "final_dimensionless_spin"], [5, 2, 1, "", "final_horizon_mass"], [5, 2, 1, "", "final_irreducible_mass"], [5, 3, 1, "", "get_data_from_columns"], [5, 2, 1, "", "horizon_mass"], [5, 3, 1, "", "horizon_mass_at_time"], [5, 2, 1, "", "initial_dimensional_spin"], [5, 2, 1, "", "initial_dimensionless_spin"], [5, 2, 1, "", "initial_horizon_mass"], [5, 2, 1, "", "initial_irreducible_mass"], [5, 2, 1, "", "irreducible_mass"], [5, 3, 1, "", "irreducible_mass_at_time"], [5, 2, 1, "", "last_available_spin_data_time"], [5, 2, 1, "", "momentum_vector"], [5, 2, 1, "", "position_vector"], [5, 2, 1, "", "velocity_vector"]], "mayawaves.radiation": [[6, 1, 1, "", "RadiationBundle"], [6, 1, 1, "", "RadiationMode"], [6, 1, 1, "", "RadiationSphere"]], "mayawaves.radiation.RadiationBundle": [[6, 3, 1, "", "create_extrapolated_sphere"], [6, 3, 1, "", "create_radiation_bundle"], [6, 2, 1, "", "extrapolated_sphere"], [6, 2, 1, "", "frame"], [6, 3, 1, "", "get_dEnergy_dt_radiated"], [6, 3, 1, "", "get_dP_dt_radiated"], [6, 3, 1, "", "get_energy_radiated"], [6, 3, 1, "", "get_linear_momentum_radiated"], [6, 3, 1, "", "get_psi4_amplitude_for_mode"], [6, 3, 1, "", "get_psi4_imaginary_for_mode"], [6, 3, 1, "", "get_psi4_max_time_for_mode"], [6, 3, 1, "", "get_psi4_phase_for_mode"], [6, 3, 1, "", "get_psi4_real_for_mode"], [6, 3, 1, "", "get_strain_amplitude_for_mode"], [6, 3, 1, "", "get_strain_cross_for_mode"], [6, 3, 1, "", "get_strain_phase_for_mode"], [6, 3, 1, "", "get_strain_plus_for_mode"], [6, 3, 1, "", "get_strain_recomposed_at_sky_location"], [6, 3, 1, "", "get_time"], [6, 2, 1, "", "included_modes"], [6, 2, 1, "", "included_radii"], [6, 2, 1, "", "l_max"], [6, 2, 1, "", "radiation_spheres"], [6, 2, 1, "", "radius_for_extrapolation"], [6, 3, 1, "", "set_frame"]], "mayawaves.radiation.RadiationMode": [[6, 3, 1, "", "compute_and_store_strain"], [6, 3, 1, "", "create_radiation_mode"], [6, 2, 1, "", "dEnergy_dt_radiated"], [6, 2, 1, "", "dP_dt_radiated"], [6, 2, 1, "", "energy_radiated"], [6, 2, 1, "", "extrapolated"], [6, 3, 1, "", "get_mode_with_extrapolated_radius"], [6, 2, 1, "", "h_cross_dot"], [6, 2, 1, "", "h_plus_dot"], [6, 2, 1, "", "l_value"], [6, 2, 1, "", "linear_momentum_radiated"], [6, 2, 1, "", "m_value"], [6, 2, 1, "", "omega_start"], [6, 2, 1, "", "psi4_amplitude"], [6, 2, 1, "", "psi4_imaginary"], [6, 2, 1, "", "psi4_max_time"], [6, 2, 1, "", "psi4_omega"], [6, 2, 1, "", "psi4_phase"], [6, 2, 1, "", "psi4_real"], [6, 2, 1, "", "radiation_sphere"], [6, 2, 1, "", "radius"], [6, 2, 1, "", "strain_amplitude"], [6, 2, 1, "", "strain_cross"], [6, 2, 1, "", "strain_phase"], [6, 2, 1, "", "strain_plus"], [6, 2, 1, "", "time"], [6, 3, 1, "", "ylm"]], "mayawaves.radiation.RadiationSphere": [[6, 3, 1, "", "create_radiation_sphere"], [6, 2, 1, "", "extrapolated"], [6, 2, 1, "", "frame"], [6, 3, 1, "", "get_dEnergy_dt_radiated"], [6, 3, 1, "", "get_dP_dt_radiated"], [6, 3, 1, "", "get_energy_radiated"], [6, 3, 1, "", "get_extrapolated_sphere"], [6, 3, 1, "", "get_linear_momentum_radiated"], [6, 3, 1, "", "get_mode"], [6, 3, 1, "", "get_psi4_amplitude_for_mode"], [6, 3, 1, "", "get_psi4_imaginary_for_mode"], [6, 3, 1, "", "get_psi4_max_time_for_mode"], [6, 3, 1, "", "get_psi4_phase_for_mode"], [6, 3, 1, "", "get_psi4_real_for_mode"], [6, 3, 1, "", "get_strain_amplitude_for_mode"], [6, 3, 1, "", "get_strain_cross_for_mode"], [6, 3, 1, "", "get_strain_phase_for_mode"], [6, 3, 1, "", "get_strain_plus_for_mode"], [6, 3, 1, "", "get_strain_recomposed_at_sky_location"], [6, 2, 1, "", "included_modes"], [6, 2, 1, "", "l_max"], [6, 2, 1, "", "modes"], [6, 2, 1, "", "radius"], [6, 2, 1, "", "raw_modes"], [6, 3, 1, "", "set_frame"], [6, 2, 1, "", "time"]], "mayawaves.utils": [[7, 0, 0, "-", "catalogutils"], [7, 0, 0, "-", "postnewtonianutils"], [7, 0, 0, "-", "postprocessingutils"]], "mayawaves.utils.catalogutils": [[7, 1, 1, "", "Catalog"], [7, 1, 1, "", "Parameter"]], "mayawaves.utils.catalogutils.Catalog": [[7, 2, 1, "", "aligned_spin_simulations"], [7, 3, 1, "", "download_waveforms"], [7, 3, 1, "", "get_parameters_for_simulation"], [7, 3, 1, "", "get_simulations_with_mass_ratio"], [7, 3, 1, "", "get_simulations_with_parameters"], [7, 3, 1, "", "get_simulations_with_symmetric_mass_ratio"], [7, 2, 1, "", "nonspinning_simulations"], [7, 3, 1, "", "plot_catalog_parameters"], [7, 2, 1, "", "precessing_simulations"], [7, 3, 1, "", "spin_magnitudes_for_simulation"]], "mayawaves.utils.postnewtonianutils": [[7, 4, 1, "", "dH_dr_from_separation"], [7, 4, 1, "", "orbital_frequency_from_separation"], [7, 4, 1, "", "radial_momentum_from_separation"], [7, 4, 1, "", "separation_from_orbital_frequency"], [7, 4, 1, "", "tangential_momentum_from_separation"]], "mayawaves.utils.postprocessingutils": [[7, 4, 1, "", "create_h5_from_simulation"], [7, 4, 1, "", "determine_lvc_format"], [7, 4, 1, "", "export_to_ascii"], [7, 4, 1, "", "export_to_lal_compatible_format"], [7, 4, 1, "", "export_to_lvcnr_catalog"], [7, 4, 1, "", "get_stitched_data"], [7, 4, 1, "", "low_pass_filter"], [7, 4, 1, "", "summarize_coalescence"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:property", "3": "py:method", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "property", "Python property"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "mayawav": [0, 3, 4, 5, 6, 7, 10], "": [0, 1], "document": [0, 1], "tutori": [0, 12, 13], "indic": 0, "tabl": 0, "contributor": 1, "guid": 1, "make": 1, "fork": 1, "keep": 1, "your": [1, 8], "up": 1, "date": 1, "chang": [1, 12], "run": 1, "test": 1, "updat": 1, "submit": 1, "merg": 1, "request": [1, 8], "get": [2, 3, 8], "help": 2, "start": [3, 13], "how": 3, "instal": 3, "requir": [3, 11], "cite": 3, "basic": 3, "overview": 3, "structur": [3, 13], "coalesc": [3, 4, 9, 11, 12], "compactobject": [3, 5, 9], "radiationbundl": 3, "util": [3, 7, 8], "workflow": 3, "obtain": [3, 9, 12], "compat": [3, 11], "h5": [3, 9, 10, 11, 12, 13], "file": [3, 9, 10, 11, 12, 13], "work": 3, "us": [3, 8, 9, 11, 12, 13], "analyz": 3, "raw": [3, 13], "simul": [3, 8, 9, 10, 11, 12, 13], "without": 3, "creat": [3, 8, 9, 10, 11, 12], "an": [3, 8, 10, 11, 13], "maya": [3, 8], "catalog": [3, 8, 11], "modul": [4, 5, 6, 7], "radiat": [6, 12, 13], "packag": [7, 12], "postprocessingutil": 7, "catalogutil": 7, "postnewtonianutil": 7, "instanc": 8, "class": 8, "ha": 8, "properti": 8, "list": 8, "all": [8, 9, 10], "The": [8, 11], "paramet": [8, 9], "enum": 8, "allow": [8, 11], "you": [8, 9, 11, 13], "easili": 8, "refer": 8, "specif": 8, "grab": 8, "nonspin": 8, "align": 8, "spin": [8, 9], "precess": 8, "given": [8, 9, 12], "mass": [8, 9, 11, 12], "ratio": 8, "can": [8, 9, 11, 13], "also": 8, "enter": 8, "toler": 8, "receiv": 8, "ar": [8, 9], "within": 8, "symmetr": 8, "thi": [8, 11], "method": 8, "ani": [8, 9, 13], "number": 8, "It": [8, 11], "i": [8, 9, 11, 12, 13], "better": 8, "non": 8, "zero": 8, "while": 8, "search": 8, "waveform": [8, 11], "ensur": 8, "fit": 8, "desir": [8, 10, 11], "plot": [8, 13], "distribtut": 8, "provid": [8, 11], "directori": [8, 10], "save": 8, "figur": 8, "thei": 8, "rather": 8, "than": 8, "displai": 8, "download": 8, "lvc": [8, 11], "nr": [8, 11], "format": [8, 11], "http": 8, "arxiv": 8, "org": 8, "ab": 8, "1703": 8, "01076": 8, "compact": 9, "object": [9, 11, 12], "associ": [9, 11, 12], "larger": 9, "primari": 9, "smaller": 9, "secondari": 9, "trajectori": 9, "data": [9, 10, 12, 13], "initi": [9, 11, 12, 13], "timeseri": 9, "note": [9, 12, 13], "mani": 9, "system": 9, "horizon": 9, "track": 9, "wai": 9, "through": 9, "merger": 9, "after": 9, "which": [9, 11], "valu": 9, "longer": 9, "reliabl": 9, "access": 9, "avail": 9, "close": [9, 11, 12], "point": 10, "root": 10, "stitch": [10, 13], "export": 11, "lvk": 11, "extrapol": [11, 12], "infinit": [11, 12], "radiu": [11, 12], "have": [11, 13], "same": 11, "name": 11, "option": 11, "correct": [11, 12], "center": [11, 12], "drift": [11, 12], "befor": [11, 12, 13], "lal": 11, "let": 11, "lalsimul": 11, "pycbc": 11, "specifi": 11, "finit": 11, "extract": [11, 12], "so": 11, "gravit": 12, "wave": 12, "read": [12, 13], "psi_4": [12, 13], "mode": 12, "75": [12, 13], "extraction_radiu": [12, 13], "m": [12, 13], "junk": [12, 13], "should": [12, 13], "cut": [12, 13], "off": [12, 13], "most": [12, 13], "analys": [12, 13], "That": [12, 13], "time": [12, 13], "mark": [12, 13], "follow": [12, 13], "vertic": [12, 13], "dash": [12, 13], "line": [12, 13], "strain": 12, "If": 12, "recombin": 12, "sky": 12, "locat": 12, "frame": 12, "when": 12, "send": 12, "scri": 12, "reset": 12, "origin": 12, "do": 13, "fulli": 13, "visualz": 13, "get_stitched_data": 13, "togeth": 13, "output": 13, "column": 13, "each": 13, "row": 13, "being": 13, "iter": 13, "step": 13, "base": 13, "present": 13, "In": 13, "2": 13, "3": 13, "0": 13, "shift": 13, "tracker": 13, "contain": 13, "x": 13, "y": 13, "compon": 13, "posit": 13, "real": 13, "componenet": 13, "1": 13, "ylm_weylscal4": 13}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"Welcome to Mayawaves\u2019s documentation!": [[0, "welcome-to-mayawaves-s-documentation"]], "Tutorials:": [[0, null]], "Documentation:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "Contributor\u2019s Guide": [[1, "contributor-s-guide"]], "Make a fork": [[1, "make-a-fork"]], "Keeping your fork up to date": [[1, "keeping-your-fork-up-to-date"]], "Making changes": [[1, "making-changes"]], "Running tests": [[1, "running-tests"]], "Updating the documentation": [[1, "updating-the-documentation"]], "Submitting a merge request": [[1, "submitting-a-merge-request"]], "Getting Help": [[2, "getting-help"]], "Getting Started": [[3, "getting-started"]], "How to install": [[3, "how-to-install"]], "Requirements": [[3, "requirements"]], "How to cite": [[3, "how-to-cite"]], "Basic overview of structure": [[3, "basic-overview-of-structure"]], "Coalescence": [[3, "coalescence"]], "CompactObject": [[3, "compactobject"]], "RadiationBundle": [[3, "radiationbundle"]], "Utilities": [[3, "utilities"]], "Basic overview of workflow": [[3, "basic-overview-of-workflow"]], "Obtaining a mayawaves compatible h5 file": [[3, "obtaining-a-mayawaves-compatible-h5-file"]], "Working with a mayawaves h5 file using Coalescence": [[3, "working-with-a-mayawaves-h5-file-using-coalescence"]], "Analyzing raw simulations without creating an h5 file": [[3, "analyzing-raw-simulations-without-creating-an-h5-file"]], "Analyzing the MAYA Catalog": [[3, "analyzing-the-maya-catalog"]], "mayawaves.coalescence module": [[4, "module-mayawaves.coalescence"]], "mayawaves.compactobject module": [[5, "module-mayawaves.compactobject"]], "mayawaves.radiation module": [[6, "mayawaves-radiation-module"]], "mayawaves.utils package": [[7, "mayawaves-utils-package"]], "mayawaves.utils.postprocessingutils module": [[7, "module-mayawaves.utils.postprocessingutils"]], "mayawaves.utils.catalogutils module": [[7, "module-mayawaves.utils.catalogutils"]], "mayawaves.utils.postnewtonianutils module": [[7, "module-mayawaves.utils.postnewtonianutils"]], "Catalog Utils": [[8, "Catalog-Utils"]], "Create an instance of the Catalog class": [[8, "Create-an-instance-of-the-Catalog-class"]], "Catalog has a property to list all simulations in the maya catalog": [[8, "Catalog-has-a-property-to-list-all-simulations-in-the-maya-catalog"]], "The Parameter enum allows you to easily reference specific parameters": [[8, "The-Parameter-enum-allows-you-to-easily-reference-specific-parameters"]], "Catalog has properties to grab all nonspinning, aligned spin, or precessing simulations": [[8, "Catalog-has-properties-to-grab-all-nonspinning,-aligned-spin,-or-precessing-simulations"]], "Get simulations with a given mass ratio": [[8, "Get-simulations-with-a-given-mass-ratio"]], "You can also enter a tolerance for a parameter, and will receive simulations that are within that tolerance of the requested mass ratio": [[8, "You-can-also-enter-a-tolerance-for-a-parameter,-and-will-receive-simulations-that-are-within-that-tolerance-of-the-requested-mass-ratio"]], "Get simulations with a given symmetric mass ratio": [[8, "Get-simulations-with-a-given-symmetric-mass-ratio"]], "Get the all the parameters of a given simulation": [[8, "Get-the-all-the-parameters-of-a-given-simulation"]], "Get all simulations with given parameters": [[8, "Get-all-simulations-with-given-parameters"]], "This method can be used with any number of parameters. It is better to use non-zero tolerances while searching for waveforms to ensure you get all simulations that fit your desired parameters.": [[8, "This-method-can-be-used-with-any-number-of-parameters.-It-is-better-to-use-non-zero-tolerances-while-searching-for-waveforms-to-ensure-you-get-all-simulations-that-fit-your-desired-parameters."]], "Plotting the distribtution of waveform parameters in the catalog": [[8, "Plotting-the-distribtution-of-waveform-parameters-in-the-catalog"]], "You can also provide a directory to save the figures in and they will be saved rather than displayed.": [[8, "You-can-also-provide-a-directory-to-save-the-figures-in-and-they-will-be-saved-rather-than-displayed."]], "Downloading waveforms": [[8, "Downloading-waveforms"]], "Waveforms can also be downloaded in the lvc-nr format (https://arxiv.org/abs/1703.01076)": [[8, "Waveforms-can-also-be-downloaded-in-the-lvc-nr-format-(https://arxiv.org/abs/1703.01076)"]], "Compact Objects": [[9, "Compact-Objects"]], "Create a Coalescence object using the simulation h5 file": [[9, "Create-a-Coalescence-object-using-the-simulation-h5-file"], [11, "Create-a-Coalescence-object-using-the-simulation-h5-file"], [12, "Create-a-Coalescence-object-using-the-simulation-h5-file"]], "Obtain the CompactObject objects associated with the larger object (primary) and smaller object (secondary)": [[9, "Obtain-the-CompactObject-objects-associated-with-the-larger-object-(primary)-and-smaller-object-(secondary)"]], "Obtain trajectory data": [[9, "Obtain-trajectory-data"]], "Obtain initial data such as masses and spins": [[9, "Obtain-initial-data-such-as-masses-and-spins"]], "Obtain timeseries data for parameters such as spin": [[9, "Obtain-timeseries-data-for-parameters-such-as-spin"]], "Note that for many systems, the initial horizons are tracked all the way through merger after which the values are no longer reliable.": [[9, "Note-that-for-many-systems,-the-initial-horizons-are-tracked-all-the-way-through-merger-after-which-the-values-are-no-longer-reliable."]], "You can access any data that is available for the given compact object": [[9, "You-can-access-any-data-that-is-available-for-the-given-compact-object"]], "Close the Coalescence object to close the associated h5 file": [[9, "Close-the-Coalescence-object-to-close-the-associated-h5-file"], [11, "Close-the-Coalescence-object-to-close-the-associated-h5-file"], [12, "Close-the-Coalescence-object-to-close-the-associated-h5-file"]], "Creating a Mayawaves h5 File": [[10, "Creating-a-Mayawaves-h5-File"]], "Point to the root of the desired simulation directory": [[10, "Point-to-the-root-of-the-desired-simulation-directory"]], "Create an h5 file with all the stitched data for the simulation": [[10, "Create-an-h5-file-with-all-the-stitched-data-for-the-simulation"]], "Exporting to LVK Catalog Format": [[11, "Exporting-to-LVK-Catalog-Format"]], "Export to the LVC NR catalog format": [[11, "Export-to-the-LVC-NR-catalog-format"]], "Exporting to this format requires extrapolating the waveforms to infinite radius.": [[11, "Exporting-to-this-format-requires-extrapolating-the-waveforms-to-infinite-radius."]], "The exported file will have the same name as the initial simulation h5 file.": [[11, "The-exported-file-will-have-the-same-name-as-the-initial-simulation-h5-file."]], "An optional name can be provided which will be used as the name of the exported file": [[11, "An-optional-name-can-be-provided-which-will-be-used-as-the-name-of-the-exported-file"]], "You can optionally correct for the center of mass drift before exporting": [[11, "You-can-optionally-correct-for-the-center-of-mass-drift-before-exporting"]], "Export to LAL Compatible format": [[11, "Export-to-LAL-Compatible-format"]], "This format lets you use the waveform with LALSimulation and PyCBC. It is of the same format as the LVC NR catalog but allows you to specify a finite extraction radius if so desired.": [[11, "This-format-lets-you-use-the-waveform-with-LALSimulation-and-PyCBC.-It-is-of-the-same-format-as-the-LVC-NR-catalog-but-allows-you-to-specify-a-finite-extraction-radius-if-so-desired."]], "Gravitational Waves": [[12, "Gravitational-Waves"]], "Read the \\Psi_4 data for a given mode and extraction radius": [[12, "Read-the-\\Psi_4-data-for-a-given-mode-and-extraction-radius"]], "Note that the initial ~(75 + extraction_radius) M will be junk radiation and should be cut off for most analyses. That time is marked in the following tutorial with a vertical dashed line.": [[12, "Note-that-the-initial-~(75-+-extraction_radius)-M-will-be-junk-radiation-and-should-be-cut-off-for-most-analyses.-That-time-is-marked-in-the-following-tutorial-with-a-vertical-dashed-line."], [13, "Note-that-the-initial-~(75-+-extraction_radius)-M-will-be-junk-radiation-and-should-be-cut-off-for-most-analyses.-That-time-is-marked-in-the-following-tutorial-with-a-vertical-dashed-line."]], "Read the strain data for a given mode and extraction radius": [[12, "Read-the-strain-data-for-a-given-mode-and-extraction-radius"]], "If no extraction radius is given, the radiation is extrapolated to infinite radius": [[12, "If-no-extraction-radius-is-given,-the-radiation-is-extrapolated-to-infinite-radius"]], "Recombine the modes to obtain the strain at a given sky location": [[12, "Recombine-the-modes-to-obtain-the-strain-at-a-given-sky-location"]], "Correct for center of mass drift by changing the frame of the radiation extraction": [[12, "Correct-for-center-of-mass-drift-by-changing-the-frame-of-the-radiation-extraction"]], "When correcting for center of mass drift, the junk radiation is cut off before sending the data to the scri package.": [[12, "When-correcting-for-center-of-mass-drift,-the-junk-radiation-is-cut-off-before-sending-the-data-to-the-scri-package."]], "Reset to the original frame": [[12, "Reset-to-the-original-frame"]], "Reading raw simulation files": [[13, "Reading-raw-simulation-files"]], "Simulations do not have to be fully stitched into an h5 file before reading and visualzing their data": [[13, "Simulations-do-not-have-to-be-fully-stitched-into-an-h5-file-before-reading-and-visualzing-their-data"]], "Use get_stitched_data to stitch together any output file structured as columns of data with each row being a time/iteration step": [[13, "Use-get_stitched_data-to-stitch-together-any-output-file-structured-as-columns-of-data-with-each-row-being-a-time/iteration-step"]], "You can then plot the data based on the columns present in the data file. In the following, columns 2 and 3 (starting at 0) of the shift tracker files contain the x and y components of the positions.": [[13, "You-can-then-plot-the-data-based-on-the-columns-present-in-the-data-file.-In-the-following,-columns-2-and-3-(starting-at-0)-of-the-shift-tracker-files-contain-the-x-and-y-components-of-the-positions."]], "Plot the real componenet of the \\Psi_4 data using columns 0 and 1 of the Ylm_WEYLSCAL4 files": [[13, "Plot-the-real-componenet-of-the-\\Psi_4-data-using-columns-0-and-1-of-the-Ylm_WEYLSCAL4-files"]]}, "indexentries": {"coalescence (class in mayawaves.coalescence)": [[4, "mayawaves.coalescence.Coalescence"]], "average_run_speed (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.average_run_speed"]], "catalog_id (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.catalog_id"]], "center_of_mass (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.center_of_mass"]], "close() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.close"]], "compact_object_by_id() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_by_id"]], "compact_object_data_for_object() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_data_for_object"]], "compact_object_metadata_dict() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.compact_object_metadata_dict"]], "compact_objects (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.compact_objects"]], "denergy_dt_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.dEnergy_dt_radiated"]], "dp_dt_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.dP_dt_radiated"]], "eccentricity_and_mean_anomaly_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.eccentricity_and_mean_anomaly_at_time"]], "energy_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.energy_radiated"]], "extrapolate_psi4_to_infinite_radius() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.extrapolate_psi4_to_infinite_radius"]], "final_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.final_compact_object"]], "h5_filepath (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.h5_filepath"]], "included_extraction_radii (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.included_extraction_radii"]], "included_modes (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.included_modes"]], "initial_orbital_frequency (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.initial_orbital_frequency"]], "initial_separation (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.initial_separation"]], "l_max (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.l_max"]], "linear_momentum_radiated() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.linear_momentum_radiated"]], "mass_ratio (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.mass_ratio"]], "mayawaves.coalescence": [[4, "module-mayawaves.coalescence"]], "merge_time (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.merge_time"]], "module": [[4, "module-mayawaves.coalescence"], [5, "module-mayawaves.compactobject"], [7, "module-mayawaves.utils.catalogutils"], [7, "module-mayawaves.utils.postnewtonianutils"], [7, "module-mayawaves.utils.postprocessingutils"]], "name (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.name"]], "object_numbers (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.object_numbers"]], "orbital_angular_momentum_unit_vector (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_angular_momentum_unit_vector"]], "orbital_angular_momentum_unit_vector_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.orbital_angular_momentum_unit_vector_at_time"]], "orbital_frequency (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_frequency"]], "orbital_frequency_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.orbital_frequency_at_time"]], "orbital_phase_in_xy_plane (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.orbital_phase_in_xy_plane"]], "parameter_files (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.parameter_files"]], "primary_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.primary_compact_object"]], "psi4_amp_phase_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_amp_phase_for_mode"]], "psi4_max_time_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_max_time_for_mode"]], "psi4_real_imag_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.psi4_real_imag_for_mode"]], "psi4_source (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.psi4_source"]], "radiation_frame (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radiation_frame"]], "radiationbundle (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radiationbundle"]], "radius_for_extrapolation (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.radius_for_extrapolation"]], "recoil_speed() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.recoil_speed"]], "recoil_velocity() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.recoil_velocity"]], "runstats_data (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.runstats_data"]], "secondary_compact_object (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.secondary_compact_object"]], "separation_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.separation_at_time"]], "separation_unit_vector_at_time() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.separation_unit_vector_at_time"]], "separation_vector (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.separation_vector"]], "set_radiation_frame() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.set_radiation_frame"]], "spin_configuration (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.spin_configuration"]], "strain_amp_phase_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_amp_phase_for_mode"]], "strain_for_mode() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_for_mode"]], "strain_recomposed_at_sky_location() (mayawaves.coalescence.coalescence method)": [[4, "mayawaves.coalescence.Coalescence.strain_recomposed_at_sky_location"]], "symmetric_mass_ratio (mayawaves.coalescence.coalescence property)": [[4, "mayawaves.coalescence.Coalescence.symmetric_mass_ratio"]], "compactobject (class in mayawaves.compactobject)": [[5, "mayawaves.compactobject.CompactObject"]], "compactobject.column (class in mayawaves.compactobject)": [[5, "mayawaves.compactobject.CompactObject.Column"]], "apparent_horizon_area (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_area"]], "apparent_horizon_areal_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_areal_radius"]], "apparent_horizon_circumferences (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_circumferences"]], "apparent_horizon_expansion_theta_l (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_expansion_theta_l"]], "apparent_horizon_inner_expansion_theta_n (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_inner_expansion_theta_n"]], "apparent_horizon_maximum_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_maximum_radius"]], "apparent_horizon_mean_curvature (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_mean_curvature"]], "apparent_horizon_mean_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_mean_radius"]], "apparent_horizon_minimum_radius (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_minimum_radius"]], "apparent_horizon_quadrupoles (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.apparent_horizon_quadrupoles"]], "available_data_columns (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.available_data_columns"]], "data_array (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.data_array"]], "dimensional_spin_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.dimensional_spin_at_time"]], "dimensional_spin_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.dimensional_spin_vector"]], "dimensionless_spin_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.dimensionless_spin_at_time"]], "dimensionless_spin_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.dimensionless_spin_vector"]], "final_dimensional_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_dimensional_spin"]], "final_dimensionless_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_dimensionless_spin"]], "final_horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_horizon_mass"]], "final_irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.final_irreducible_mass"]], "get_data_from_columns() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.get_data_from_columns"]], "horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.horizon_mass"]], "horizon_mass_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.horizon_mass_at_time"]], "initial_dimensional_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_dimensional_spin"]], "initial_dimensionless_spin (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_dimensionless_spin"]], "initial_horizon_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_horizon_mass"]], "initial_irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.initial_irreducible_mass"]], "irreducible_mass (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.irreducible_mass"]], "irreducible_mass_at_time() (mayawaves.compactobject.compactobject method)": [[5, "mayawaves.compactobject.CompactObject.irreducible_mass_at_time"]], "last_available_spin_data_time (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.last_available_spin_data_time"]], "mayawaves.compactobject": [[5, "module-mayawaves.compactobject"]], "momentum_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.momentum_vector"]], "position_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.position_vector"]], "velocity_vector (mayawaves.compactobject.compactobject property)": [[5, "mayawaves.compactobject.CompactObject.velocity_vector"]], "radiationbundle (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationBundle"]], "radiationmode (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationMode"]], "radiationsphere (class in mayawaves.radiation)": [[6, "mayawaves.radiation.RadiationSphere"]], "compute_and_store_strain() (mayawaves.radiation.radiationmode method)": [[6, "mayawaves.radiation.RadiationMode.compute_and_store_strain"]], "create_extrapolated_sphere() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.create_extrapolated_sphere"]], "create_radiation_bundle() (mayawaves.radiation.radiationbundle static method)": [[6, "mayawaves.radiation.RadiationBundle.create_radiation_bundle"]], "create_radiation_mode() (mayawaves.radiation.radiationmode static method)": [[6, "mayawaves.radiation.RadiationMode.create_radiation_mode"]], "create_radiation_sphere() (mayawaves.radiation.radiationsphere static method)": [[6, "mayawaves.radiation.RadiationSphere.create_radiation_sphere"]], "denergy_dt_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.dEnergy_dt_radiated"]], "dp_dt_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.dP_dt_radiated"]], "energy_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.energy_radiated"]], "extrapolated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.extrapolated"]], "extrapolated (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.extrapolated"]], "extrapolated_sphere (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.extrapolated_sphere"]], "frame (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.frame"]], "frame (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.frame"]], "get_denergy_dt_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_dEnergy_dt_radiated"]], "get_denergy_dt_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_dEnergy_dt_radiated"]], "get_dp_dt_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_dP_dt_radiated"]], "get_dp_dt_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_dP_dt_radiated"]], "get_energy_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_energy_radiated"]], "get_energy_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_energy_radiated"]], "get_extrapolated_sphere() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_extrapolated_sphere"]], "get_linear_momentum_radiated() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_linear_momentum_radiated"]], "get_linear_momentum_radiated() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_linear_momentum_radiated"]], "get_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_mode"]], "get_mode_with_extrapolated_radius() (mayawaves.radiation.radiationmode method)": [[6, "mayawaves.radiation.RadiationMode.get_mode_with_extrapolated_radius"]], "get_psi4_amplitude_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_amplitude_for_mode"]], "get_psi4_amplitude_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_amplitude_for_mode"]], "get_psi4_imaginary_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_imaginary_for_mode"]], "get_psi4_imaginary_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_imaginary_for_mode"]], "get_psi4_max_time_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_max_time_for_mode"]], "get_psi4_max_time_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_max_time_for_mode"]], "get_psi4_phase_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_phase_for_mode"]], "get_psi4_phase_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_phase_for_mode"]], "get_psi4_real_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_psi4_real_for_mode"]], "get_psi4_real_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_psi4_real_for_mode"]], "get_strain_amplitude_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_amplitude_for_mode"]], "get_strain_amplitude_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_amplitude_for_mode"]], "get_strain_cross_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_cross_for_mode"]], "get_strain_cross_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_cross_for_mode"]], "get_strain_phase_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_phase_for_mode"]], "get_strain_phase_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_phase_for_mode"]], "get_strain_plus_for_mode() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_plus_for_mode"]], "get_strain_plus_for_mode() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_plus_for_mode"]], "get_strain_recomposed_at_sky_location() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_strain_recomposed_at_sky_location"]], "get_strain_recomposed_at_sky_location() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.get_strain_recomposed_at_sky_location"]], "get_time() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.get_time"]], "h_cross_dot (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.h_cross_dot"]], "h_plus_dot (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.h_plus_dot"]], "included_modes (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.included_modes"]], "included_modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.included_modes"]], "included_radii (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.included_radii"]], "l_max (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.l_max"]], "l_max (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.l_max"]], "l_value (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.l_value"]], "linear_momentum_radiated (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.linear_momentum_radiated"]], "m_value (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.m_value"]], "modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.modes"]], "omega_start (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.omega_start"]], "psi4_amplitude (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_amplitude"]], "psi4_imaginary (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_imaginary"]], "psi4_max_time (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_max_time"]], "psi4_omega (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_omega"]], "psi4_phase (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_phase"]], "psi4_real (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.psi4_real"]], "radiation_sphere (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.radiation_sphere"]], "radiation_spheres (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.radiation_spheres"]], "radius (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.radius"]], "radius (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.radius"]], "radius_for_extrapolation (mayawaves.radiation.radiationbundle property)": [[6, "mayawaves.radiation.RadiationBundle.radius_for_extrapolation"]], "raw_modes (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.raw_modes"]], "set_frame() (mayawaves.radiation.radiationbundle method)": [[6, "mayawaves.radiation.RadiationBundle.set_frame"]], "set_frame() (mayawaves.radiation.radiationsphere method)": [[6, "mayawaves.radiation.RadiationSphere.set_frame"]], "strain_amplitude (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_amplitude"]], "strain_cross (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_cross"]], "strain_phase (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_phase"]], "strain_plus (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.strain_plus"]], "time (mayawaves.radiation.radiationmode property)": [[6, "mayawaves.radiation.RadiationMode.time"]], "time (mayawaves.radiation.radiationsphere property)": [[6, "mayawaves.radiation.RadiationSphere.time"]], "ylm() (mayawaves.radiation.radiationmode static method)": [[6, "mayawaves.radiation.RadiationMode.ylm"]], "catalog (class in mayawaves.utils.catalogutils)": [[7, "mayawaves.utils.catalogutils.Catalog"]], "parameter (class in mayawaves.utils.catalogutils)": [[7, "mayawaves.utils.catalogutils.Parameter"]], "aligned_spin_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.aligned_spin_simulations"]], "create_h5_from_simulation() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.create_h5_from_simulation"]], "dh_dr_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.dH_dr_from_separation"]], "determine_lvc_format() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.determine_lvc_format"]], "download_waveforms() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.download_waveforms"]], "export_to_ascii() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_ascii"]], "export_to_lal_compatible_format() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_lal_compatible_format"]], "export_to_lvcnr_catalog() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.export_to_lvcnr_catalog"]], "get_parameters_for_simulation() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_parameters_for_simulation"]], "get_simulations_with_mass_ratio() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_mass_ratio"]], "get_simulations_with_parameters() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_parameters"]], "get_simulations_with_symmetric_mass_ratio() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.get_simulations_with_symmetric_mass_ratio"]], "get_stitched_data() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.get_stitched_data"]], "low_pass_filter() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.low_pass_filter"]], "mayawaves.utils.catalogutils": [[7, "module-mayawaves.utils.catalogutils"]], "mayawaves.utils.postnewtonianutils": [[7, "module-mayawaves.utils.postnewtonianutils"]], "mayawaves.utils.postprocessingutils": [[7, "module-mayawaves.utils.postprocessingutils"]], "nonspinning_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.nonspinning_simulations"]], "orbital_frequency_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.orbital_frequency_from_separation"]], "plot_catalog_parameters() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.plot_catalog_parameters"]], "precessing_simulations (mayawaves.utils.catalogutils.catalog property)": [[7, "mayawaves.utils.catalogutils.Catalog.precessing_simulations"]], "radial_momentum_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.radial_momentum_from_separation"]], "separation_from_orbital_frequency() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.separation_from_orbital_frequency"]], "spin_magnitudes_for_simulation() (mayawaves.utils.catalogutils.catalog method)": [[7, "mayawaves.utils.catalogutils.Catalog.spin_magnitudes_for_simulation"]], "summarize_coalescence() (in module mayawaves.utils.postprocessingutils)": [[7, "mayawaves.utils.postprocessingutils.summarize_coalescence"]], "tangential_momentum_from_separation() (in module mayawaves.utils.postnewtonianutils)": [[7, "mayawaves.utils.postnewtonianutils.tangential_momentum_from_separation"]]}}) \ No newline at end of file diff --git a/docs/html/source/getting_started.html b/docs/html/source/getting_started.html index f032913..86abcd6 100644 --- a/docs/html/source/getting_started.html +++ b/docs/html/source/getting_started.html @@ -136,9 +136,14 @@
Due to its dependencies, this package requires 3.9 \(\leq\) python \(\leq\) 3.10.
+For most usecases, this package requires 3.9 \(\leq\) python.
It also relies upon the following python packages which are automatically installed from pip when you install mayawaves:
-numpy, scipy, pandas, romspline, wget, matplotlib, mock, numba, scri
+numpy, scipy, pandas, romspline, wget, matplotlib, mock
+
+
+However, if you want to use the ability to switch to a center-of-mass frame for the gravitational radiation, that has
+additional dependencies that require python \(\leq\) 3.10 as well as the following dependencies:
+numba, scri
This package has been tested with Einstein Toolkit Release Meitner (released on December 6th, 2023).
diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst
index e45a2e4..b38e493 100644
--- a/docs/source/getting_started.rst
+++ b/docs/source/getting_started.rst
@@ -31,11 +31,17 @@ at the top of your file. You can also import specific parts of mayawaves instead
Requirements
-------------------------------------
-Due to its dependencies, this package requires 3.9 :math:`\leq` python :math:`\leq` 3.10.
+For most usecases, this package requires 3.9 :math:`\leq` python.
It also relies upon the following python packages which are automatically installed from pip when you install mayawaves::
- numpy, scipy, pandas, romspline, wget, matplotlib, mock, numba, scri
+ numpy, scipy, pandas, romspline, wget, matplotlib, mock
+
+
+However, if you want to use the ability to switch to a center-of-mass frame for the gravitational radiation, that has
+additional dependencies that require python :math:`\leq` 3.10 as well as the following dependencies::
+
+ numba, scri
This package has been tested with Einstein Toolkit Release Meitner (released on December 6th, 2023).
It supports output from the following thorns::
diff --git a/mayawaves/coalescence.py b/mayawaves/coalescence.py
index df4670a..7e8db2f 100644
--- a/mayawaves/coalescence.py
+++ b/mayawaves/coalescence.py
@@ -292,6 +292,11 @@ def set_radiation_frame(self, center_of_mass_corrected: bool = False):
Args:
center_of_mass_corrected (:obj:`bool`, optional): Whether to correct for center of mass drift. Default False. If false, the frame is set back to the original, raw frame.
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ warnings.warn('Python version too recent to be compatible with Scri package. Unable to change the radiation frame.')
+ raise ImportError('Unable to change the radiation frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
from mayawaves.radiation import Frame
if center_of_mass_corrected:
diff --git a/mayawaves/radiation.py b/mayawaves/radiation.py
index 2190169..c1e1982 100644
--- a/mayawaves/radiation.py
+++ b/mayawaves/radiation.py
@@ -3,12 +3,10 @@
import h5py
import numpy as np
import scipy.integrate
-import scri
from scipy.ndimage import uniform_filter1d
from scipy.signal import butter, filtfilt
from scipy.signal.windows import blackmanharris
import math
-from spherical_functions import LM_index
class Frame(Enum):
@@ -76,6 +74,10 @@ def set_frame(self, new_frame: Frame, time: np.ndarray = None, center_of_mass: n
center_of_mass (:obj:`numpy.ndarray`, optional): Time series of center of mass. Only necessary if moving to center of mass corrected frame.
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError('Unable to change the radiation frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
if type(new_frame) != Frame:
warnings.warn("You must provide the frame as a Frame enum value")
return
@@ -685,6 +687,11 @@ def set_frame(self, new_frame: Frame, time: np.ndarray = None, center_of_mass: n
alpha (:obj:`numpy.ndarray`, optional): Offset for center of mass correction. Only necessary if moving to center of mass corrected frame and not providing the center of mass timeseries.
beta (:obj:`numpy.ndarray`, optional): Boost for center of mass correction. Only necessary if moving to center of mass corrected frame and not providing the center of mass timeseries.
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to change the radiation frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
if type(new_frame) != Frame:
warnings.warn('You must provide the new frame as a Frame enum')
return
@@ -704,6 +711,11 @@ def modes(self) -> dict:
if self.frame == Frame.RAW:
return self.raw_modes
if self.frame == Frame.COM_CORRECTED:
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to return modes in center-of-mass corrected frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
if self.__com_corrected_modes is None:
self.__frame = Frame.RAW
self._generate_com_corrected_modes()
@@ -736,6 +748,11 @@ def l_max(self) -> int:
def time(self) -> np.ndarray:
"""Time array associated with all timeseries provided by this RadiationSphere."""
if self.frame == Frame.COM_CORRECTED:
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to return time in center-of-mass corrected frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
return self.__com_corrected_time
return self.__time
@@ -1239,11 +1256,16 @@ def get_extrapolated_sphere(self, order: int = 1):
extrapolated_sphere = RadiationSphere(mode_dict=temp_modes, time=np.array(self.__time), radius=self.radius,
extrapolated=True)
if self.frame != Frame.RAW:
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to set center-of-mass corrected frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
extrapolated_sphere.set_frame(self.frame, alpha=self.__alpha, beta=self.__beta)
return extrapolated_sphere
- def _scri_waveform_modes_object(self) -> scri.WaveformModes:
+ def _scri_waveform_modes_object(self):
"""Create and return a Scri WaveformModes object containing the data for this extraction sphere.
For more information on scri objects, refer to https://scri.readthedocs.io.
@@ -1251,6 +1273,11 @@ def _scri_waveform_modes_object(self) -> scri.WaveformModes:
Returns: A Scri WaveformModes object
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to create scri waveform modes object. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
from scri import WaveformModes
from scri import h as scri_h
from scri import Inertial
@@ -1292,6 +1319,11 @@ def _set_alpha_beta_for_com_transformation(self, com_time, center_of_mass):
center_of_mass (np.ndarray): timeseries of center of mass
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to convert to center-of-mass corrected frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
com_time = com_time + self.radius
t_max = np.max(com_time)
ti = 0.1 * t_max
@@ -1316,6 +1348,13 @@ def _generate_com_corrected_modes(self):
Uses scri to perform the transformation. For more information on scri, refer to https://scri.readthedocs.io.
"""
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ raise ImportError(
+ 'Unable to return modes in center-of-mass corrected frame. Python version too recent to be compatible with Scri package. If you would like the ability to move to center-of-mass corrected frame, use python <= 3.10.')
+
+ from spherical_functions import LM_index
+
scri_waveform_object = self._scri_waveform_modes_object()
if scri_waveform_object is None:
return
diff --git a/mayawaves/utils/postprocessingutils.py b/mayawaves/utils/postprocessingutils.py
index 5ee92fd..f82de20 100644
--- a/mayawaves/utils/postprocessingutils.py
+++ b/mayawaves/utils/postprocessingutils.py
@@ -2667,10 +2667,12 @@ def _put_data_in_lal_compatible_format(coalescence: Coalescence, lal_h5_file_nam
center_of_mass_correction (:obj:'bool', optional): whether to correct for center of mass drift. Default False.
"""
+ from mayawaves.radiation import Frame
if center_of_mass_correction:
coalescence.set_radiation_frame(center_of_mass_corrected=True)
else:
- coalescence.set_radiation_frame()
+ if not coalescence.radiation_frame == Frame.RAW:
+ coalescence.set_radiation_frame()
initial_time_horizon = 75
if extraction_radius != 0:
@@ -2737,15 +2739,18 @@ def _put_data_in_lal_compatible_format(coalescence: Coalescence, lal_h5_file_nam
_store_compact_object_timeseries_data(coalescence, lal_h5_file, lvc_format, time_shift, initial_time_horizon)
lal_h5_file.close()
- coalescence.set_radiation_frame()
+ if coalescence.radiation_frame != Frame.RAW:
+ coalescence.set_radiation_frame()
except Exception as e:
lal_h5_file.close()
- coalescence.set_radiation_frame()
+ if coalescence.radiation_frame != Frame.RAW:
+ coalescence.set_radiation_frame()
raise e
if raise_mode_error:
- coalescence.set_radiation_frame()
+ if coalescence.radiation_frame != Frame.RAW:
+ coalescence.set_radiation_frame()
raise IOError(f"Data is missing for one of the included modes")
diff --git a/pyproject.toml b/pyproject.toml
index 4827ce5..b63f04b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "mayawaves"
-version = "2023.10"
+version = "2024.4"
authors = [
{ name="Deborah Ferguson", email="deborah.l.ferguson@gmail.com" },
{ name="Surendra Anne" },
@@ -22,7 +22,7 @@ authors = [
description = "A python package for interacting with Einstein Toolkit simulations and the MAYA Catalog of NR Waveforms"
readme = "README.md"
license = { file="LICENSE" }
-requires-python = ">=3.8,<3.11"
+requires-python = ">=3.8"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
@@ -35,8 +35,8 @@ dependencies = ["numpy",
"wget",
"matplotlib",
"mock",
- "numba",
- "scri"
+ "numba; python_version < '3.11'",
+ "scri; python_version < '3.11'"
]
[project.urls]
diff --git a/requirements.txt b/requirements.txt
index c6a92c6..40e15c8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,5 +5,5 @@ romspline
wget
matplotlib
mock
-numba
-scri
+numba; python_version < '3.11'
+scri; python_version < '3.11'
diff --git a/tests/test_coalescence.py b/tests/test_coalescence.py
index c02725c..572cee9 100644
--- a/tests/test_coalescence.py
+++ b/tests/test_coalescence.py
@@ -622,31 +622,65 @@ def test_set_radiation_frame(self):
# center of mass
# center of mass data is None
- with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(None, None)) as mock_center_of_mass:
- TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
-
- mock_center_of_mass.assert_called_once()
- mock_set_frame.assert_not_called()
- # center of mass data is not None
- with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(
- np.array([1, 2, 3]), np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))) as mock_center_of_mass:
- TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
-
- mock_center_of_mass.assert_called_once()
- self.assertEqual(Frame.COM_CORRECTED, mock_set_frame.call_args[0][0])
- self.assertEqual(2, len(mock_set_frame.call_args[1]))
- self.assertTrue(np.all(np.array([1, 2, 3]) == mock_set_frame.call_args[1]['time']))
- self.assertTrue(np.all(
- np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) == mock_set_frame.call_args[1]['center_of_mass']))
-
- # resetting to raw frame
- with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
- TestCoalescence.coalescence.set_radiation_frame()
- mock_set_frame.assert_called_once_with(Frame.RAW)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ try:
+ TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
+ self.fail()
+ except ImportError:
+ mock_center_of_mass.assert_not_called()
+ mock_set_frame.assert_not_called()
+
+ # center of mass data is not None
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(
+ np.array([1, 2, 3]), np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))) as mock_center_of_mass:
+ try:
+ TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
+ self.fail()
+ except ImportError:
+ mock_center_of_mass.assert_not_called()
+
+ # resetting to raw frame
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ try:
+ TestCoalescence.coalescence.set_radiation_frame()
+ self.fail()
+ except ImportError:
+ mock_set_frame.assert_not_called()
+
+ else:
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
+
+ mock_center_of_mass.assert_called_once()
+ mock_set_frame.assert_not_called()
+
+ # center of mass data is not None
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(
+ np.array([1, 2, 3]),
+ np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))) as mock_center_of_mass:
+ TestCoalescence.coalescence.set_radiation_frame(center_of_mass_corrected=True)
+
+ mock_center_of_mass.assert_called_once()
+ self.assertEqual(Frame.COM_CORRECTED, mock_set_frame.call_args[0][0])
+ self.assertEqual(2, len(mock_set_frame.call_args[1]))
+ self.assertTrue(np.all(np.array([1, 2, 3]) == mock_set_frame.call_args[1]['time']))
+ self.assertTrue(np.all(
+ np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) == mock_set_frame.call_args[1]['center_of_mass']))
+
+ # resetting to raw frame
+ with patch.object(RadiationBundle, 'set_frame') as mock_set_frame:
+ TestCoalescence.coalescence.set_radiation_frame()
+ mock_set_frame.assert_called_once_with(Frame.RAW)
@mock.patch("mayawaves.compactobject.CompactObject.initial_horizon_mass", new_callable=PropertyMock)
@mock.patch("mayawaves.compactobject.CompactObject.horizon_mass", new_callable=PropertyMock)
diff --git a/tests/test_postprocessingutils.py b/tests/test_postprocessingutils.py
index e553b01..ec87cd6 100644
--- a/tests/test_postprocessingutils.py
+++ b/tests/test_postprocessingutils.py
@@ -3123,58 +3123,60 @@ def test__store_lal_metadata(self):
# test setting frame
# com corrected frame
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor <= 10:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
- temp_h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
- temp_lal_h5 = h5py.File(temp_h5_filename, 'w')
- name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
- alternative_names = []
- initial_time_horizon = 75
- omega_22_nr = 0.2
+ temp_h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ temp_lal_h5 = h5py.File(temp_h5_filename, 'w')
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ initial_time_horizon = 75
+ omega_22_nr = 0.2
- lvc_format = 1
+ lvc_format = 1
- coalescence.set_radiation_frame(center_of_mass_corrected=True)
+ coalescence.set_radiation_frame(center_of_mass_corrected=True)
- _store_lal_metadata(coalescence, temp_lal_h5, name, alternative_names,
- initial_time_horizon, omega_22_nr, lvc_format, NR_group='UT Austin', NR_code='MAYA',
- bibtex_keys='Jani:2016wkt', contact_email='deirdre.shoemaker@austin.utexas.edu')
+ _store_lal_metadata(coalescence, temp_lal_h5, name, alternative_names,
+ initial_time_horizon, omega_22_nr, lvc_format, NR_group='UT Austin', NR_code='MAYA',
+ bibtex_keys='Jani:2016wkt', contact_email='deirdre.shoemaker@austin.utexas.edu')
- self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
- self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
+ self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
+ self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
- coalescence.close()
- temp_lal_h5.close()
- os.remove(temp_h5_filename)
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(temp_h5_filename)
- # failed com corrected frame
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
+ # failed com corrected frame
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
- temp_h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
- temp_lal_h5 = h5py.File(temp_h5_filename, 'w')
- name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
- alternative_names = []
- initial_time_horizon = 75
- omega_22_nr = 0.2
+ temp_h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ temp_lal_h5 = h5py.File(temp_h5_filename, 'w')
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ initial_time_horizon = 75
+ omega_22_nr = 0.2
- lvc_format = 1
+ lvc_format = 1
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(None, None)) as mock_center_of_mass:
- coalescence.set_radiation_frame(center_of_mass_corrected=True)
- _store_lal_metadata(coalescence, temp_lal_h5, name, alternative_names,
- initial_time_horizon, omega_22_nr, lvc_format, NR_group='UT Austin', NR_code='MAYA',
- bibtex_keys='Jani:2016wkt', contact_email='deirdre.shoemaker@austin.utexas.edu', )
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ coalescence.set_radiation_frame(center_of_mass_corrected=True)
+ _store_lal_metadata(coalescence, temp_lal_h5, name, alternative_names,
+ initial_time_horizon, omega_22_nr, lvc_format, NR_group='UT Austin', NR_code='MAYA',
+ bibtex_keys='Jani:2016wkt', contact_email='deirdre.shoemaker@austin.utexas.edu', )
- self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+ self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
- coalescence.close()
- temp_lal_h5.close()
- os.remove(temp_h5_filename)
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(temp_h5_filename)
# change metadata
@@ -3431,49 +3433,93 @@ def test__put_data_in_lal_compatible_format(self):
os.remove(temp_lal_h5_file_name)
# com corrected case
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
-
- temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
- name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
- alternative_names = []
- extraction_radius = 70
- _put_data_in_lal_compatible_format(coalescence, temp_lal_h5_file_name, name, alternative_names,
- extraction_radius, center_of_mass_correction=True, NR_group='UT Austin',
- NR_code='MAYA', bibtex_keys='Jani:2016wkt',
- contact_email='deirdre.shoemaker@austin.utexas.edu')
-
- temp_lal_h5 = h5py.File(temp_lal_h5_file_name, 'r')
- self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
- self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
-
- coalescence.close()
- temp_lal_h5.close()
- os.remove(temp_lal_h5_file_name)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+
+ temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ extraction_radius = 70
+ try:
+ _put_data_in_lal_compatible_format(coalescence, temp_lal_h5_file_name, name, alternative_names,
+ extraction_radius, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
+ coalescence.close()
- # failed com corrected case
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
-
- temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
- name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
- alternative_names = []
- extraction_radius = 70
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(None, None)) as mock_center_of_mass:
+ else:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+
+ temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ extraction_radius = 70
_put_data_in_lal_compatible_format(coalescence, temp_lal_h5_file_name, name, alternative_names,
extraction_radius, center_of_mass_correction=True, NR_group='UT Austin',
NR_code='MAYA', bibtex_keys='Jani:2016wkt',
contact_email='deirdre.shoemaker@austin.utexas.edu')
- temp_lal_h5 = h5py.File(temp_lal_h5_file_name, 'r')
- self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+ temp_lal_h5 = h5py.File(temp_lal_h5_file_name, 'r')
+ self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
+ self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
- coalescence.close()
- temp_lal_h5.close()
- os.remove(temp_lal_h5_file_name)
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(temp_lal_h5_file_name)
+
+ # failed com corrected case
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+
+ temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ extraction_radius = 70
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ try:
+ _put_data_in_lal_compatible_format(coalescence, temp_lal_h5_file_name, name, alternative_names,
+ extraction_radius, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
+ coalescence.close()
+
+ else:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+
+ temp_lal_h5_file_name = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/temp.h5")
+ name = "D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67"
+ alternative_names = []
+ extraction_radius = 70
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ _put_data_in_lal_compatible_format(coalescence, temp_lal_h5_file_name, name, alternative_names,
+ extraction_radius, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+
+ temp_lal_h5 = h5py.File(temp_lal_h5_file_name, 'r')
+ self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(temp_lal_h5_file_name)
def test_export_to_ascii(self):
h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
@@ -3638,12 +3684,13 @@ def test__export_ascii_file(self):
@mock.patch("mayawaves.coalescence.Coalescence.spin_configuration", new_callable=PropertyMock)
def test_export_to_lvcnr_catalog(self, mock_coalescence_spin_configuration):
+ from mayawaves.radiation import Frame
mock_coalescence_spin_configuration.return_value = "non-spinning"
output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
"resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
coalescence = Coalescence(h5_filename)
-
+ coalescence.radiationbundle._RadiationBundle__frame = Frame.RAW
pputils.export_to_lvcnr_catalog(coalescence, output_directory, NR_group='UT Austin', NR_code='MAYA',
bibtex_keys='Jani:2016wkt',
contact_email='deirdre.shoemaker@austin.utexas.edu')
@@ -3691,46 +3738,79 @@ def test_export_to_lvcnr_catalog(self, mock_coalescence_spin_configuration):
os.remove(lal_h5_filepath)
# com corrected case
- output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
- pputils.export_to_lvcnr_catalog(coalescence, output_directory, center_of_mass_correction=True,
- NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
- contact_email='deirdre.shoemaker@austin.utexas.edu')
-
- lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- self.assertTrue(os.path.exists(lal_h5_filepath))
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ try:
+ pputils.export_to_lvcnr_catalog(coalescence, output_directory, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
- temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
- self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
- self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
+ coalescence.close()
- coalescence.close()
- temp_lal_h5.close()
- os.remove(lal_h5_filepath)
-
- # failed com corrected case
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(None, None)) as mock_center_of_mass:
+ else:
+ output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
pputils.export_to_lvcnr_catalog(coalescence, output_directory, center_of_mass_correction=True,
NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
contact_email='deirdre.shoemaker@austin.utexas.edu')
- lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- self.assertTrue(os.path.exists(lal_h5_filepath))
+ lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ self.assertTrue(os.path.exists(lal_h5_filepath))
- temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
- self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+ temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
+ self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
+ self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
- coalescence.close()
- temp_lal_h5.close()
- os.remove(lal_h5_filepath)
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(lal_h5_filepath)
+
+ # failed com corrected case
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ try:
+ pputils.export_to_lvcnr_catalog(coalescence, output_directory, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
+ coalescence.close()
+
+ else:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ pputils.export_to_lvcnr_catalog(coalescence, output_directory, center_of_mass_correction=True,
+ NR_group='UT Austin', NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+
+ lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ self.assertTrue(os.path.exists(lal_h5_filepath))
+
+ temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
+ self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(lal_h5_filepath)
# if precessing without enough spin data, this should fail
coalescence = Coalescence(h5_filename)
@@ -3797,48 +3877,85 @@ def test_export_to_lal_compatible_format(self, mock_coalescence_spin_configurati
os.remove(lal_h5_filepath)
# com corrected case
- output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
- pputils.export_to_lal_compatible_format(coalescence, output_directory, extraction_radius=70,
- center_of_mass_correction=True, NR_group='UT Austin',
- NR_code='MAYA', bibtex_keys='Jani:2016wkt',
- contact_email='deirdre.shoemaker@austin.utexas.edu',)
-
- lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- self.assertTrue(os.path.exists(lal_h5_filepath))
-
- temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
- self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
- self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
-
- coalescence.close()
- temp_lal_h5.close()
- os.remove(lal_h5_filepath)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ try:
+ pputils.export_to_lal_compatible_format(coalescence, output_directory, extraction_radius=70,
+ center_of_mass_correction=True, NR_group='UT Austin',
+ NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
+
+ coalescence.close()
- # failed com corrected case
- h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- coalescence = Coalescence(h5_filename)
- with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
- return_value=(None, None)) as mock_center_of_mass:
+ else:
+ output_directory = os.path.join(TestPostprocessingUtils.CURR_DIR, "resources/test_output")
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
pputils.export_to_lal_compatible_format(coalescence, output_directory, extraction_radius=70,
center_of_mass_correction=True, NR_group='UT Austin',
NR_code='MAYA', bibtex_keys='Jani:2016wkt',
- contact_email='deirdre.shoemaker@austin.utexas.edu',)
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
- lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
- "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
- self.assertTrue(os.path.exists(lal_h5_filepath))
+ lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ self.assertTrue(os.path.exists(lal_h5_filepath))
- temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
- self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+ temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
+ self.assertTrue('frame' in temp_lal_h5['auxiliary-info'].attrs)
+ self.assertEqual('Center of mass drift corrected', temp_lal_h5['auxiliary-info'].attrs['frame'])
- coalescence.close()
- temp_lal_h5.close()
- os.remove(lal_h5_filepath)
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(lal_h5_filepath)
+
+ # failed com corrected case
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ try:
+ pputils.export_to_lal_compatible_format(coalescence, output_directory, extraction_radius=70,
+ center_of_mass_correction=True, NR_group='UT Austin',
+ NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+ self.fail()
+ except ImportError:
+ pass
+
+ coalescence.close()
+
+ else:
+ h5_filename = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/temp/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ coalescence = Coalescence(h5_filename)
+ with patch.object(Coalescence, 'center_of_mass', new_callable=PropertyMock,
+ return_value=(None, None)) as mock_center_of_mass:
+ pputils.export_to_lal_compatible_format(coalescence, output_directory, extraction_radius=70,
+ center_of_mass_correction=True, NR_group='UT Austin',
+ NR_code='MAYA', bibtex_keys='Jani:2016wkt',
+ contact_email='deirdre.shoemaker@austin.utexas.edu')
+
+ lal_h5_filepath = os.path.join(TestPostprocessingUtils.CURR_DIR,
+ "resources/test_output/D2.33_q1_a1_0_0_0_a2_0_0_0_m42.67.h5")
+ self.assertTrue(os.path.exists(lal_h5_filepath))
+
+ temp_lal_h5 = h5py.File(lal_h5_filepath, 'r')
+ self.assertTrue('frame' not in temp_lal_h5['auxiliary-info'].attrs)
+
+ coalescence.close()
+ temp_lal_h5.close()
+ os.remove(lal_h5_filepath)
# if precessing without enough spin data, this should just warn
coalescence = Coalescence(h5_filename)
diff --git a/tests/test_radiationbundle.py b/tests/test_radiationbundle.py
index 8d0ef02..ddf70c1 100644
--- a/tests/test_radiationbundle.py
+++ b/tests/test_radiationbundle.py
@@ -102,29 +102,62 @@ def test_frame(self):
def test_set_frame(self):
from mayawaves.radiation import Frame
- # invalid frame
- self.radiation_bundle.set_frame('test')
- self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
-
- self.radiation_bundle._RadiationBundle__frame = Frame.COM_CORRECTED
- self.radiation_bundle.set_frame('test')
- self.assertEqual(Frame.COM_CORRECTED, self.radiation_bundle._RadiationBundle__frame)
-
- # raw
- self.radiation_bundle.set_frame(Frame.RAW)
- self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
- # check that it set the frame for all the spheres
- for sphere in self.radiation_bundle.radiation_spheres.values():
- self.assertEqual(Frame.RAW, sphere.frame)
-
- # com
- self.__extrapolated_sphere = self.radiation_bundle.radiation_spheres[70]
- self.radiation_bundle.set_frame(Frame.COM_CORRECTED)
- self.assertEqual(Frame.COM_CORRECTED, self.radiation_bundle._RadiationBundle__frame)
- # check that it set the frame for all the spheres
- for sphere in self.radiation_bundle.radiation_spheres.values():
- self.assertEqual(Frame.COM_CORRECTED, sphere.frame)
- self.assertEqual(Frame.COM_CORRECTED, self.__extrapolated_sphere.frame)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ # invalid frame
+ try:
+ self.radiation_bundle.set_frame('test')
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
+
+ self.radiation_bundle._RadiationBundle__frame = Frame.COM_CORRECTED
+ try:
+ self.radiation_bundle.set_frame('test')
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_bundle._RadiationBundle__frame)
+
+ # raw
+ self.radiation_bundle._RadiationBundle__frame = Frame.RAW
+ try:
+ self.radiation_bundle.set_frame(Frame.RAW)
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
+
+ # com
+ self.__extrapolated_sphere = self.radiation_bundle.radiation_spheres[70]
+ try:
+ self.radiation_bundle.set_frame(Frame.COM_CORRECTED)
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
+
+ else:
+ # invalid frame
+ self.radiation_bundle.set_frame('test')
+ self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
+
+ self.radiation_bundle._RadiationBundle__frame = Frame.COM_CORRECTED
+ self.radiation_bundle.set_frame('test')
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_bundle._RadiationBundle__frame)
+
+ # raw
+ self.radiation_bundle.set_frame(Frame.RAW)
+ self.assertEqual(Frame.RAW, self.radiation_bundle._RadiationBundle__frame)
+ # check that it set the frame for all the spheres
+ for sphere in self.radiation_bundle.radiation_spheres.values():
+ self.assertEqual(Frame.RAW, sphere.frame)
+
+ # com
+ self.__extrapolated_sphere = self.radiation_bundle.radiation_spheres[70]
+ self.radiation_bundle.set_frame(Frame.COM_CORRECTED)
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_bundle._RadiationBundle__frame)
+ # check that it set the frame for all the spheres
+ for sphere in self.radiation_bundle.radiation_spheres.values():
+ self.assertEqual(Frame.COM_CORRECTED, sphere.frame)
+ self.assertEqual(Frame.COM_CORRECTED, self.__extrapolated_sphere.frame)
def test_radiation_spheres(self):
self.assertTrue(
diff --git a/tests/test_radiationsphere.py b/tests/test_radiationsphere.py
index ed8886a..eeb63f3 100644
--- a/tests/test_radiationsphere.py
+++ b/tests/test_radiationsphere.py
@@ -98,39 +98,102 @@ def test_frame(self):
def test_set_frame(self):
from mayawaves.radiation import Frame
- # invalid frame
- self.radiation_sphere.set_frame('coprecessing')
- self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
-
- self.radiation_sphere._RadiationSphere__frame = Frame.COM_CORRECTED
- self.radiation_sphere.set_frame('coprecessing')
- self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
-
- # raw
- self.radiation_sphere.set_frame(Frame.RAW)
- self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
-
- # com
- self.radiation_sphere.set_frame(Frame.COM_CORRECTED)
- self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
-
- # test with time, com
- self.radiation_sphere.set_frame(Frame.RAW)
- time = np.array([1, 2, 3, 4])
- com = np.array([5, 6, 7, 8])
- with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
- self.radiation_sphere.set_frame(Frame.COM_CORRECTED, time=time, center_of_mass=com)
- mock_set_alpha_beta.assert_called_once_with(time, com)
-
- # test setting alpha, beta directly
- self.radiation_sphere.set_frame(Frame.RAW)
- alpha = np.array([1, 2, 3])
- beta = np.array([5, 6, 7])
- with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
- self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=alpha, beta=beta)
- mock_set_alpha_beta.assert_not_called()
- self.assertTrue(np.all(alpha == self.radiation_sphere._RadiationSphere__alpha))
- self.assertTrue(np.all(beta == self.radiation_sphere._RadiationSphere__beta))
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ # invalid frame
+ try:
+ self.radiation_sphere.set_frame('coprecessing')
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
+
+ self.radiation_sphere._RadiationSphere__frame = Frame.COM_CORRECTED
+ try:
+ self.radiation_sphere.set_frame('coprecessing')
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
+
+ # raw
+ try:
+ self.radiation_sphere.set_frame(Frame.RAW)
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
+
+ # com
+ self.radiation_sphere._RadiationSphere__frame = Frame.RAW
+ try:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED)
+ self.fail()
+ except ImportError:
+ self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
+
+ # test with time, com
+ try:
+ self.radiation_sphere.set_frame(Frame.RAW)
+ self.fail()
+ except:
+ pass
+ time = np.array([1, 2, 3, 4])
+ com = np.array([5, 6, 7, 8])
+ with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
+ try:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, time=time, center_of_mass=com)
+ self.fail()
+ except ImportError:
+ mock_set_alpha_beta.assert_not_called()
+ self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
+
+ # test setting alpha, beta directly
+ try:
+ self.radiation_sphere.set_frame(Frame.RAW)
+ self.fail()
+ except:
+ pass
+ alpha = np.array([1, 2, 3])
+ beta = np.array([5, 6, 7])
+ with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
+ try:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=alpha, beta=beta)
+ self.fail()
+ except ImportError:
+ mock_set_alpha_beta.assert_not_called()
+
+ else:
+ # invalid frame
+ self.radiation_sphere.set_frame('coprecessing')
+ self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
+
+ self.radiation_sphere._RadiationSphere__frame = Frame.COM_CORRECTED
+ self.radiation_sphere.set_frame('coprecessing')
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
+
+ # raw
+ self.radiation_sphere.set_frame(Frame.RAW)
+ self.assertEqual(Frame.RAW, self.radiation_sphere._RadiationSphere__frame)
+
+ # com
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED)
+ self.assertEqual(Frame.COM_CORRECTED, self.radiation_sphere._RadiationSphere__frame)
+
+ # test with time, com
+ self.radiation_sphere.set_frame(Frame.RAW)
+ time = np.array([1, 2, 3, 4])
+ com = np.array([5, 6, 7, 8])
+ with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, time=time, center_of_mass=com)
+ mock_set_alpha_beta.assert_called_once_with(time, com)
+
+ # test setting alpha, beta directly
+ self.radiation_sphere.set_frame(Frame.RAW)
+ alpha = np.array([1, 2, 3])
+ beta = np.array([5, 6, 7])
+ with patch.object(RadiationSphere, '_set_alpha_beta_for_com_transformation') as mock_set_alpha_beta:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=alpha, beta=beta)
+ mock_set_alpha_beta.assert_not_called()
+ self.assertTrue(np.all(alpha == self.radiation_sphere._RadiationSphere__alpha))
+ self.assertTrue(np.all(beta == self.radiation_sphere._RadiationSphere__beta))
def test_modes(self):
example_radiation_mode = RadiationMode(l=2, m=2, rad=75, time=TestRadiationSphere.time,
@@ -151,7 +214,16 @@ def test_modes(self):
# test that it returns correctly based on frame
from mayawaves.radiation import Frame
self.radiation_sphere._RadiationSphere__frame = Frame.COM_CORRECTED
- self.assertTrue(self.radiation_sphere._RadiationSphere__com_corrected_modes == self.radiation_sphere.modes)
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ try:
+ com_modes = self.radiation_sphere.modes
+ self.fail()
+ except ImportError:
+ pass
+ else:
+ self.assertTrue(self.radiation_sphere._RadiationSphere__com_corrected_modes == self.radiation_sphere.modes)
+
def test_raw_modes(self):
example_radiation_mode = RadiationMode(l=2, m=2, rad=75, time=TestRadiationSphere.time,
@@ -194,7 +266,15 @@ def test_time(self):
# check when using other frames
from mayawaves.radiation import Frame
self.radiation_sphere._RadiationSphere__frame = Frame.COM_CORRECTED
- self.assertTrue(np.all(com_time == self.radiation_sphere.time))
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ try:
+ time = self.radiation_sphere.time
+ self.fail()
+ except ImportError:
+ pass
+ else:
+ self.assertTrue(np.all(com_time == self.radiation_sphere.time))
def test_radius(self):
self.radiation_sphere._RadiationSphere__radius = 80
@@ -1111,126 +1191,180 @@ def test_get_extrapolated_sphere(self):
self.assertEqual(Frame.RAW, extrapolated_radiation_sphere.frame)
# test frame
- self.radiation_sphere._RadiationSphere__extrapolated = False
- self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=np.array([0.1, 0.1, 0.1]),
- beta=np.array([0.2, 0.2, 0.2]))
- with patch.object(RadiationMode, 'get_mode_with_extrapolated_radius',
- return_value=extrapolated_example_mode) as mock_get_mode_with_extrapolated_radius:
- extrapolated_radiation_sphere = self.radiation_sphere.get_extrapolated_sphere()
- self.assertTrue(isinstance(extrapolated_radiation_sphere, RadiationSphere))
- self.assertTrue(extrapolated_radiation_sphere._RadiationSphere__extrapolated)
- expected_included_modes = [(2, 2), (3, 1), (3, 3)]
- generated_included_modes = sorted(list(extrapolated_radiation_sphere._RadiationSphere__raw_modes.keys()))
- self.assertTrue(expected_included_modes == generated_included_modes)
- for mode in generated_included_modes:
- self.assertTrue(
- isinstance(extrapolated_radiation_sphere._RadiationSphere__raw_modes[mode], RadiationMode))
- self.assertTrue(
- extrapolated_radiation_sphere._RadiationSphere__raw_modes[mode]._RadiationMode__extrapolated)
- self.assertEqual(Frame.COM_CORRECTED, extrapolated_radiation_sphere.frame)
- self.assertTrue(np.all(np.array([0.1, 0.1, 0.1]) == extrapolated_radiation_sphere._RadiationSphere__alpha))
- self.assertTrue(np.all(np.array([0.2, 0.2, 0.2]) == extrapolated_radiation_sphere._RadiationSphere__beta))
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ self.radiation_sphere._RadiationSphere__extrapolated = False
+ try:
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=np.array([0.1, 0.1, 0.1]),
+ beta=np.array([0.2, 0.2, 0.2]))
+ self.fail()
+ except ImportError:
+ pass
+
+ else:
+ self.radiation_sphere._RadiationSphere__extrapolated = False
+ self.radiation_sphere.set_frame(Frame.COM_CORRECTED, alpha=np.array([0.1, 0.1, 0.1]),
+ beta=np.array([0.2, 0.2, 0.2]))
+ with patch.object(RadiationMode, 'get_mode_with_extrapolated_radius',
+ return_value=extrapolated_example_mode) as mock_get_mode_with_extrapolated_radius:
+ extrapolated_radiation_sphere = self.radiation_sphere.get_extrapolated_sphere()
+ self.assertTrue(isinstance(extrapolated_radiation_sphere, RadiationSphere))
+ self.assertTrue(extrapolated_radiation_sphere._RadiationSphere__extrapolated)
+
+ expected_included_modes = [(2, 2), (3, 1), (3, 3)]
+ generated_included_modes = sorted(list(extrapolated_radiation_sphere._RadiationSphere__raw_modes.keys()))
+ self.assertTrue(expected_included_modes == generated_included_modes)
+ for mode in generated_included_modes:
+ self.assertTrue(
+ isinstance(extrapolated_radiation_sphere._RadiationSphere__raw_modes[mode], RadiationMode))
+ self.assertTrue(extrapolated_radiation_sphere._RadiationSphere__raw_modes[mode]._RadiationMode__extrapolated)
+ self.assertEqual(Frame.COM_CORRECTED, extrapolated_radiation_sphere.frame)
+ self.assertTrue(np.all(np.array([0.1, 0.1, 0.1]) == extrapolated_radiation_sphere._RadiationSphere__alpha))
+ self.assertTrue(np.all(np.array([0.2, 0.2, 0.2]) == extrapolated_radiation_sphere._RadiationSphere__beta))
def test__scri_waveform_modes_object(self):
- from spherical_functions import LM_index
- coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
+ 'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
+ test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
+
+ try:
+ scri_waveform_modes_object = test_radiation_sphere._scri_waveform_modes_object()
+ self.fail()
+ except ImportError:
+ self.assertTrue(True)
+
+ else:
+ from spherical_functions import LM_index
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
- test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
-
- scri_waveform_modes_object = test_radiation_sphere._scri_waveform_modes_object()
-
- # go through each mode and see if it has the same data
- for l in range(2, coalescence.l_max + 1):
- for m in range(-l, l + 1):
- data_lm = scri_waveform_modes_object.data[:, LM_index(l, m, scri_waveform_modes_object.ell_min)]
- scri_time = scri_waveform_modes_object.t
- scri_strain_plus = np.real(data_lm)
- scri_strain_cross = -1 * np.imag(data_lm)
- raw_time, raw_strain_plus, raw_strain_cross = coalescence.strain_for_mode(l=l, m=m,
- extraction_radius=75)
- cut_index = np.argmax(raw_time > 150)
- maya_time = raw_time[cut_index:]
- maya_strain_plus = raw_strain_plus[cut_index:]
- maya_strain_cross = raw_strain_cross[cut_index:]
- self.assertTrue(np.allclose(maya_time, scri_time, rtol=1e-6))
- self.assertTrue(np.allclose(maya_strain_plus, scri_strain_plus, rtol=1e-6))
- self.assertTrue(np.allclose(maya_strain_cross, scri_strain_cross, rtol=1e-6))
+ test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
+
+ scri_waveform_modes_object = test_radiation_sphere._scri_waveform_modes_object()
+
+ # go through each mode and see if it has the same data
+ for l in range(2, coalescence.l_max + 1):
+ for m in range(-l, l + 1):
+ data_lm = scri_waveform_modes_object.data[:, LM_index(l, m, scri_waveform_modes_object.ell_min)]
+ scri_time = scri_waveform_modes_object.t
+ scri_strain_plus = np.real(data_lm)
+ scri_strain_cross = -1 * np.imag(data_lm)
+ raw_time, raw_strain_plus, raw_strain_cross = coalescence.strain_for_mode(l=l, m=m,
+ extraction_radius=75)
+ cut_index = np.argmax(raw_time > 150)
+ maya_time = raw_time[cut_index:]
+ maya_strain_plus = raw_strain_plus[cut_index:]
+ maya_strain_cross = raw_strain_cross[cut_index:]
+ self.assertTrue(np.allclose(maya_time, scri_time, rtol=1e-6))
+ self.assertTrue(np.allclose(maya_strain_plus, scri_strain_plus, rtol=1e-6))
+ self.assertTrue(np.allclose(maya_strain_cross, scri_strain_cross, rtol=1e-6))
def test__set_alpha_beta_for_com_transformation(self):
# check if alpha and beta minimize eq 5 of https://arxiv.org/abs/1904.04842
- coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
- time, com = coalescence.center_of_mass
- coalescence.radiationbundle.radiation_spheres[75]._set_alpha_beta_for_com_transformation(time, com)
- computed_alpha = coalescence.radiationbundle.radiation_spheres[75]._RadiationSphere__alpha
- computed_beta = coalescence.radiationbundle.radiation_spheres[75]._RadiationSphere__beta
-
- time = time + 75
- t_max = np.max(time)
- ti = 0.1 * t_max
- tf = 0.9 * t_max
- ti_iter = np.argmax(time > ti)
- tf_iter = np.argmax(time > tf)
- time = time[ti_iter: tf_iter]
- com = com[ti_iter: tf_iter]
-
- def func_of_alpha_beta(x):
- ax, ay, az, bx, by, bz = x
- alpha = np.array([ax, ay, az])
- beta = np.array([bx, by, bz])
- alpha_plus_beta_t = alpha.reshape(1, 3) + beta.reshape(1, 3) * time.reshape(len(time), 1)
- alpha_plus_beta_t = alpha_plus_beta_t.reshape(len(alpha_plus_beta_t), 3)
- integrand = np.linalg.norm(com - alpha_plus_beta_t, axis=1) ** 2
- return np.trapz(integrand, time)
-
- result = scipy.optimize.minimize(func_of_alpha_beta, x0=(0, 0, 0, 0, 0, 0), method='Nelder-Mead')
- minimized_alpha = result.x[:3]
- minimized_beta = result.x[3:]
- self.assertTrue(np.allclose(minimized_alpha, computed_alpha, atol=5e-3))
- self.assertTrue(np.allclose(minimized_beta, computed_beta, atol=1e-3))
+ time, com = coalescence.center_of_mass
+ try:
+ coalescence.radiationbundle.radiation_spheres[75]._set_alpha_beta_for_com_transformation(time, com)
+ self.fail()
+ except ImportError:
+ pass
+
+ else:
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
+ 'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
+ time, com = coalescence.center_of_mass
+ coalescence.radiationbundle.radiation_spheres[75]._set_alpha_beta_for_com_transformation(time, com)
+ computed_alpha = coalescence.radiationbundle.radiation_spheres[75]._RadiationSphere__alpha
+ computed_beta = coalescence.radiationbundle.radiation_spheres[75]._RadiationSphere__beta
+
+ time = time + 75
+ t_max = np.max(time)
+ ti = 0.1 * t_max
+ tf = 0.9 * t_max
+ ti_iter = np.argmax(time > ti)
+ tf_iter = np.argmax(time > tf)
+ time = time[ti_iter: tf_iter]
+ com = com[ti_iter: tf_iter]
+
+ def func_of_alpha_beta(x):
+ ax, ay, az, bx, by, bz = x
+ alpha = np.array([ax, ay, az])
+ beta = np.array([bx, by, bz])
+ alpha_plus_beta_t = alpha.reshape(1, 3) + beta.reshape(1, 3) * time.reshape(len(time), 1)
+ alpha_plus_beta_t = alpha_plus_beta_t.reshape(len(alpha_plus_beta_t), 3)
+ integrand = np.linalg.norm(com - alpha_plus_beta_t, axis=1) ** 2
+ return np.trapz(integrand, time)
+
+ result = scipy.optimize.minimize(func_of_alpha_beta, x0=(0, 0, 0, 0, 0, 0), method='Nelder-Mead')
+ minimized_alpha = result.x[:3]
+ minimized_beta = result.x[3:]
+ self.assertTrue(np.allclose(minimized_alpha, computed_alpha, atol=5e-3))
+ self.assertTrue(np.allclose(minimized_beta, computed_beta, atol=1e-3))
def test__generate_com_corrected_modes(self):
- coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
- 'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
- incl_modes = coalescence.included_modes
- test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
- time, center_of_mass = coalescence.center_of_mass
- test_radiation_sphere._set_alpha_beta_for_com_transformation(time, center_of_mass)
- test_radiation_sphere._generate_com_corrected_modes()
-
- # com corrected time set and starts close to but greater than 75
- generated_com_corrected_time = test_radiation_sphere._RadiationSphere__com_corrected_time
- self.assertIsNotNone(generated_com_corrected_time)
- self.assertTrue(generated_com_corrected_time[0] >= 150)
- self.assertTrue(np.isclose(generated_com_corrected_time[0], 150, atol=1))
-
- # com corrected modes set
- com_corrected_modes = test_radiation_sphere._RadiationSphere__com_corrected_modes
- self.assertIsNotNone(com_corrected_modes)
-
- # all the modes from raw are represented
- self.assertEqual(sorted(incl_modes), sorted(list(com_corrected_modes.keys())))
-
- max_22_amp = max(test_radiation_sphere._RadiationSphere__raw_modes[(2, 2)].strain_amplitude)
-
- # strains are within ~10 percent of each other but not identical
- for mode_key in incl_modes:
- raw_mode = test_radiation_sphere._RadiationSphere__raw_modes[mode_key]
- com_corrected_mode = com_corrected_modes[mode_key]
- raw_time = raw_mode.time
- raw_strain_plus = raw_mode.strain_plus
- com_time = com_corrected_mode.time
- com_strain_plus = com_corrected_mode.strain_plus
-
- time_array = np.linspace(max(raw_time[0], com_time[0]), min(raw_time[-1], com_time[-1]), 1000)
-
- interpolated_raw_strain_plus = np.interp(time_array, raw_time, raw_strain_plus)
- interpolated_com_strain_plus = np.interp(time_array, com_time, com_strain_plus)
-
- self.assertFalse(np.all(interpolated_raw_strain_plus == interpolated_com_strain_plus))
-
- max_amp = max(raw_mode.strain_amplitude)
- if max_amp > 1e-2 * max_22_amp:
- tol = 0.1 * max_amp
- self.assertTrue(np.allclose(interpolated_raw_strain_plus, interpolated_com_strain_plus, atol=tol))
+ import sys
+ if sys.version_info.major == 3 and sys.version_info.minor > 10:
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR,
+ 'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
+ incl_modes = coalescence.included_modes
+ test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
+ time, center_of_mass = coalescence.center_of_mass
+ try:
+ test_radiation_sphere._set_alpha_beta_for_com_transformation(time, center_of_mass)
+ self.fail()
+ except ImportError:
+ pass
+ try:
+ test_radiation_sphere._generate_com_corrected_modes()
+ self.fail()
+ except ImportError:
+ pass
+
+ else:
+ coalescence = Coalescence(os.path.join(TestRadiationSphere.CURR_DIR, 'resources/radiative_quantities_resources/D11_q2_a1_0.0_0.0_0.4_a2_0.0_0.0_0.4_m282.35.h5'))
+ incl_modes = coalescence.included_modes
+ test_radiation_sphere = coalescence.radiationbundle.radiation_spheres[75]
+ time, center_of_mass = coalescence.center_of_mass
+ test_radiation_sphere._set_alpha_beta_for_com_transformation(time, center_of_mass)
+ test_radiation_sphere._generate_com_corrected_modes()
+
+ # com corrected time set and starts close to but greater than 75
+ generated_com_corrected_time = test_radiation_sphere._RadiationSphere__com_corrected_time
+ self.assertIsNotNone(generated_com_corrected_time)
+ self.assertTrue(generated_com_corrected_time[0] >= 150)
+ self.assertTrue(np.isclose(generated_com_corrected_time[0], 150, atol=1))
+
+ # com corrected modes set
+ com_corrected_modes = test_radiation_sphere._RadiationSphere__com_corrected_modes
+ self.assertIsNotNone(com_corrected_modes)
+
+ # all the modes from raw are represented
+ self.assertEqual(sorted(incl_modes), sorted(list(com_corrected_modes.keys())))
+
+ max_22_amp = max(test_radiation_sphere._RadiationSphere__raw_modes[(2, 2)].strain_amplitude)
+
+ # strains are within ~10 percent of each other but not identical
+ for mode_key in incl_modes:
+ raw_mode = test_radiation_sphere._RadiationSphere__raw_modes[mode_key]
+ com_corrected_mode = com_corrected_modes[mode_key]
+ raw_time = raw_mode.time
+ raw_strain_plus = raw_mode.strain_plus
+ com_time = com_corrected_mode.time
+ com_strain_plus = com_corrected_mode.strain_plus
+
+ time_array = np.linspace(max(raw_time[0], com_time[0]), min(raw_time[-1], com_time[-1]), 1000)
+
+ interpolated_raw_strain_plus = np.interp(time_array, raw_time, raw_strain_plus)
+ interpolated_com_strain_plus = np.interp(time_array, com_time, com_strain_plus)
+
+ self.assertFalse(np.all(interpolated_raw_strain_plus == interpolated_com_strain_plus))
+
+ max_amp = max(raw_mode.strain_amplitude)
+ if max_amp > 1e-2 * max_22_amp:
+ tol = 0.1 * max_amp
+ self.assertTrue(np.allclose(interpolated_raw_strain_plus, interpolated_com_strain_plus, atol=tol))