There are the following discrepancies between inspiral-only and IMR waveform generation functions:
-
Data Return Options:
- Inspiral modes/polarizations can be returned as
NumPy arrays or PyCBC TimeSeries objects, but IMR modes currently only return PyCBC TimeSeries objects.
- Packaging the intermediate NumPy arrays into
PyCBC TimeSeries objects adds performance overhead, especially during repeated waveform evaluations (e.g. during parameter estimation).
- Request: The IMR functions should support output as NumPy arrays as well (with a
return_pycbc_timeseries flag, as in inspiral functions).
-
Output Format Consistency:
- Inspiral functions return results as
(time, other stuff [orbital variables], modes/polarizations).
- IMR functions return as
(modes/polarizations, other stuff [orbital variables, hybridization info]) (the opposite order).
- Request: Change IMR return value order to follow inspiral functions, i.e. put modes/polarizations last in the tuple. Doing it the other way by changing the inspiral order to follow the IMR order would need more tweaks. This is because we have statements like
retval[-1] inside the IMR functions which hinge on inspiral modes being the last returned elements.
Both changes will improve consistency, code flexibility, and usability.
There are the following discrepancies between inspiral-only and IMR waveform generation functions:
Data Return Options:
NumPyarrays orPyCBCTimeSeriesobjects, but IMR modes currently only returnPyCBCTimeSeriesobjects.PyCBCTimeSeriesobjects adds performance overhead, especially during repeated waveform evaluations (e.g. during parameter estimation).return_pycbc_timeseriesflag, as in inspiral functions).Output Format Consistency:
(time, other stuff [orbital variables], modes/polarizations).(modes/polarizations, other stuff [orbital variables, hybridization info])(the opposite order).retval[-1]inside the IMR functions which hinge on inspiral modes being the last returned elements.Both changes will improve consistency, code flexibility, and usability.